定價

免費且經過測試的 C# 優化、統計和視覺化包

  • March 3, 2014

我即將實現 LIBOR 市場模型的一個變體(包括最小二乘蒙特卡羅、校準、定價等),並決定在 C# 中實現它。

實施將涉及使用統計數據、數值優化和蒙特卡羅。我精通 R、C++、C# 和 Mathematica,我通常根據平台的優勢在平台之間分配工作量。因此:Mathematica 用於優化,R 用於統計分析,C#/C++ 用於 brutforce montecarlo 等。

上週,我的任務是為可以通過 MS-Excel 訪問的 Libor-Market-Model 創建一個可分配的定價/風險管理環境。

我選擇了 C#,因為它很容易通過 Excel-DNA 與 Excel 互動*(我用 C++ 做過一次介面,但它沒有 C# 方便)*

因此,我正在尋找有據可查的解決方案:

  • 統計*(用於估計共變異數矩陣)* - 可能連結到 R ?
  • 數字*(降秩,矩陣分解)* - ALGLIB - 有替代方案嗎?
  • 優化*(用於校準 -最重要的是我需要非梯度方法)*
  • 視覺化*(風險管理人員通常喜歡漂亮的圖表 :)* - C# 有一個圖表環境。以前沒用過,不知道好不好用。

另請注意:我被允許製作對公眾可用的程式碼的一些修改版本。因此,對於非商業用途免費提供包/外掛會很好。

.NET 中數字的一個流行的開源選項是 Math.NET ( https://github.com/mathnet/mathnet-numerics )。它既有託管實現,也允許您使用優化的 MKL 本機庫。這種將 .NET 用作優化本機庫的前端的做法非常普遍。

Meta.Numerics ( http://www.meta-numerics.net ) 是一個替代的開源庫,它在各種統計分佈上都非常強大。

ILNumerics ( http://ilnumerics.net/ ) 是免費或付費的,它提供了一個高度優化的託管數字庫 - 性能可與 C 或 Fortran 相媲美,但不如 MKL 快。它還具有豐富的視覺化工具。

Extreme Optimization ( http://www.extremeoptimization.com/ ) 是一個豐富的商業庫。

要連結到 R,您可以使用 R.NET ( https://rdotnet.codeplex.com/ )。

對於圖表(WinForms 或 WPF),OxyPlot(https://oxyplot.codeplex.com/)是一個很棒的開源項目。如果您已經使用 Excel 作為您的基板,您可能更願意使用 Excel 的圖表 - 您可能會有一個更連貫的解決方案。

對於優化(以及機器學習之類的東西),您可以考慮 Accord.NET ( http://accord-framework.net/ ) (LGPL 許可證)。但是,如果您的問題適合,Excel 中內置的 GRG 求解器非常出色。此處討論了受約束的、非線性的、無導數的優化程式碼(一些合併到 Accord.NET):http: //cureos.blogspot.com/2012/05/derivative-free-nonlinear-optimization.html

另一個優化庫來自 Microsoft - Microsoft Solver Foundation 3.1現在有一個用於非線性規劃問題的 Nelder-Mead 求解器。雖然有一個匹配的 Excel 載入項用於驅動 Solver Foundation,但您也可以使用 Excel-DNA 將其集成為工作表函式。不過,許可有點令人困惑,我不確定它是否正在被積極開發。

作為最後一個連結,我將添加 Dodoni.net ( https://dodoni.codeplex.com/):“Dodoni.net一個免費/開源庫,旨在為量化金融(定價和“ 它包括本機後端綁定,並通過Excel-DNA集成到 Excel 中。

引用自:https://quant.stackexchange.com/questions/10429