Useful and Free C#/.NET Libraries for Traders
The .NET ecosystem is rich with excellent, free libraries that cover pretty much everything you need when writing trading software. So here’s a collection of libraries I use in my applications, mostly focused on stats, math, and machine learning but also including time handling, data structures, and calendars:
Accord.NET
Based on the Aforge.NET library, it offers tons of useful stuff for traders: matrices, descriptive statistics, probability distributions, optimization methods, regression, PCA, as well as a wide array of machine learning algorithms. I use it all the time.
ILNumerics
Tons of useful math and stats functions, matrices & linear algebra (very fast), PCA, regression, unsupervised machine learning.
Math.NET Numerics
Probability distributions & random number generation, linear algebra, simple statistical analysis, various useful math functions.
Wintellect Power Collections
Various extremely useful data structures: double ended queue, dictionary with multiple values per key, red-black tree, ordered dictionary/list.
QLNet
A port of quantlib to C#. Not just derivatives, there’s a lot of useful stuff in here such as calendars with holidays for a very wide array of markets. There’s also NQuantLib which I haven’t tried.
Noda Time
Time handling done right. You need this.
R.NET
Lets you use R from your .NET applications. Slow, buggy as hell, hard to work with, but some times it’s very useful to have access to some of the more obscure/specialized R libraries.
ALGLIB
Regression, some machine learning, PCA, optimization, and linear algebra, simple hypothesis testing.
There are several commercial options available as well, such as Extreme Optimization and NMath. I haven’t used either of them so I can’t comment on their quality.