6 votos

Paquetes de optimización, estadística y visualización gratuitos y probados para C#

Estoy a punto de implementar una variación del modelo de mercado LIBOR (completo con Least-Square-Montecarlo, calibración, precios, etc.) y decidí implementarlo en C#.

La implementación implicará trabajar con datos estadísticos, optimización numérica y monte carlo. Como domino R, C++, C# y Mathematica, suelo distribuir la carga de trabajo entre las plataformas según sus puntos fuertes. Así: Mathematica para la optimización, R para el análisis estadístico y C#/C++ para la fuerza bruta de montecarlo, etc.

La semana pasada se me encomendó la tarea de crear un entorno distribuible de fijación de precios y gestión de riesgos para el modelo de mercado del Libor al que se pueda acceder a través de MS-Excel.

He optado por C# porque es muy fácil interactuar con Excel a través de Excel-DNA (Una vez hice la interfaz con C++ pero no es tan conveniente como C#)

Por lo tanto, estoy buscando soluciones bien documentadas para:

  • estadísticas (para la estimación de una matriz de convarianza) - ¿tal vez enlazando con R?
  • numérico (reducción del rango, descomposición de la matriz) - ALGLIB - ¿hay alguna alternativa?
  • optimización ( para calibración - sobre todo necesito métodos no gradientes )
  • visualización (la gente de la gestión de riesgos suele les gustan los gráficos bonitos.) - C# tiene un entorno de gráficos. Nunca lo he utilizado y no sé si es bueno.

También hay que tener en cuenta: Se me permite hacer una versión algo alterada del código disponible para el público . Por lo tanto, sería bueno que los paquetes/add-ins estuvieran disponibles de forma gratuita para uso no comercial.

3voto

Narek Puntos 184

Como todo el mundo ha mencionado anteriormente, sí: 1. opciones de inversión 2. posibles nuevas tasas.

Algunos de los peores casos que he visto es cuando un empleador había utilizado fondos de inversión de acciones B (¿recuerdan esas desagradables tonterías?) o un producto de renta vitalicia. En estos casos, el empleado tenía que pagar la comisión de rescate para cambiar. Totalmente erróneo, en mi opinión.

1voto

A.Schulz Puntos 264

los sospechosos habituales tienen enlaces o implementaciones .NET/C#: IMSL, NAG

Otra alternativa interesante son los desarrolladores de Complemento Excel Solver . Tienen un paquete avanzado mucho más allá del complemento de Excel. ¿Lo recomiendo? Por supuesto que no, pero es una opción.

Yo me olvidaría de C#, y utilizaría una librería binaria adecuada, probada y comprobada, cualquier cosa desde BLAS hasta GSL. Al final estás usando Excel, es un código binario, así que no tiene sentido usar soluciones basadas en VM.

ACTUALIZACIÓN: Las razones por las que recomiendo la biblioteca binaria:

  • siempre es mejor usar la librería que es popular, porque así tiene menos posibilidades de contener un error. imagina el código de inversión de matrices escrito en Fortran, que estaba en uso desde los años 60. ¿qué posibilidad hay de que haya un error grave en él? todo el mundo sabe cómo se comportan. así que toma el código binario de esta biblioteca, y prácticamente garantiza que no tiene errores. ¿quién escribe código numérico en C#? muy poca gente. básicamente, nadie. ¿qué sentido tiene? sólo funcionará en Windows, y los científicos utilizan todo tipo de hardware, la mayoría en sabores Unix.
  • si estuvieras escribiendo una aplicación .NET pura, entonces tendría sentido al menos considerar una librería escrita en C#, porque sería nativa para su plataforma anfitriona. estás desarrollando una aplicación Excel, que es una aplicación binaria. conectar con código ejecutado en VM no aporta ninguna ventaja, y potencialmente introduce problemas, por ejemplo con el rendimiento

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X