I am about to implement a variation of the LIBOR-Market-Model (complete with Least-Square-Montecarlo, calibration, pricing etc.) and decided to implement it in C#.
The implementation will involve working with statistical data, numerical optimisation and monte carlo. Being fluent in R, C++, C# and Mathematica I usually distribute the workload among the platforms according to their strengths. Thus: Mathematica for optimization, R for statisical analysis and C#/C++ for brutforce montecarlo etc.
Last week I was given the task to create a distributable pricing-/risk-management-environment for the Libor-Market-Model that can be accessed via MS-Excel.
I opted for C# because it is very easy to interface with Excel via Excel-DNA (I did the interface with C++ once but it is no where as convenient as C#)
Thus I am looking for well documented solutions for:
- statistics (for the estimation of a convariance matrix) - perhaps linking to R ?
- numerics (rank reduction, matrix decomposition) - ALGLIB - is there an alternative ?
- optimization ( for calibration - above all I need non-gradient methods)
- visualisation (people from risk management usually like pretty graphs :) - C# has a charting environment. I have never used it before and do not know whether it is any good.
Also note: I am allowed to make a somewhat altered version of the code avaliable to the public. Thus it would be nice for the packages/add-ins to be avaliable for free for non commercial usage.