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.

Comments (3)

  • Yanick says:

    Hi,

    thanks for these free libraries and this blog. Have you tried to use these directly in Multicharts .NET? For example, could it be possible to create an autotrading script that will act differently on important dates with RLNet? Or maybe use Accord to monitor live tick data?

    Sorry if my question may look simple but I’m still in my learning phase of C# and .NET and so far, it seems to me that Multicharts doesn’t allow reference to external libraries. Yet I haven’t found a way to do it with Accord.NET…

    Thanks again!

  • mohammadpouya says:

    This result is very good ….لامپ کم مصرفکرکره برقی


Leave a Reply

Your email address will not be published. Required fields are marked *