in finēOpen source

InFine.QuantFinance

La finance quantitativeen C#.En open source.

Pricing, risques et calibration, avec du code à lire et à exécuter. Une bibliothèque développée par in finē pour transmettre les méthodes quantitatives et explorer leur exécution sur CPU et GPU.

Un call européen, en C#
using InFine.QuantFinance.ClosedForm;

var call = BlackScholes.Greeks(
    OptionType.Call,
    spot: 100, strike: 100,
    maturity: 1.0, rate: 0.025,
    dividendYield: 0.01,
    volatility: 0.20);

Console.WriteLine(call.Price);
// 8.586530 (rounded)

Données illustratives. Résultat attendu de l’exemple du dépôt.

Ouvrir l’exemple
Environnement
C# / .NET 8
Exécution
CPU · GPU NVIDIA
Licence de la bibliothèque
MIT

Pourquoi ouvrir le code

Née pour transmettre. Ouverte pour aller plus loin.

Ce projet est né de la formation de nos consultants quant et IT-quant : un moyen de relier les modèles financiers, leur implémentation et les réalités du calcul.

Partagée jusqu’ici avec nos clients dans un dépôt privé, la bibliothèque est utilisée dans plusieurs institutions financières. Nous avons retravaillé le code et l’avons publié sous licence MIT pour permettre à chacun de l’étudier, de l’utiliser et d’y contribuer.

Une formation in finē consacrée aux architectures CPU et GPU.
Transmettre les méthodes de calcul à nos consultants.

Partir d’un exemple exécutable

Du modèle au calcul.

Le dépôt propose des exemples .NET avec des données synthétiques et des résultats attendus. Suivez un calcul, examinez ses hypothèses et essayez-le sur votre machine.

Explorer le risque d’un portefeuille

Monte Carlo · VaR / ES · CPU / GPU

VaR et Expected Shortfall par Monte Carlo en revalorisation complète, avec décomposition du risque. Comparez les résultats CPU et GPU lorsque la configuration GPU est disponible.

Ouvrir l’exemple — Explorer le risque d’un portefeuille

Également dans la bibliothèque : courbes de taux, Hull-White, construction de portefeuille, backtesting et complément Excel.

Voir tous les exemples

Des mesures et leurs limites

Les mêmes noyaux C#. Deux modes de calcul.

Les noyaux de calcul s’exécutent sur .NET. Hybridizer peut compiler ces mêmes noyaux en CUDA pour les GPU NVIDIA. Le dépôt compare les résultats GPU à leurs équivalents CPU.

Temps de calcul publiés dans le dépôt
CalculCPU · tous les cœursGPU · bout en bout
VaR Monte Carlo20 M scénarios × 100 options × 101 facteurs12,96 s5,73 s
Backtest par bootstrap1 M trajectoires × 2 520 jours × 10 actifs5,27 s2,62 s
Heston COS2 M options8,67 s3,88 s
Black-Scholes1 M options · limité par les transferts5,9 ms23,9 ms

Ryzen 9 7845HX (24 threads), RTX 4070 Laptop (8 Go), Windows. .NET 8, BenchmarkDotNet 0.15.8, double précision. Les temps GPU incluent les transferts entre hôte et GPU.

Le GPU apporte un gain sur ces calculs lourds. Sur le calcul Black-Scholes plus court, les transferts de données rendent le CPU plus rapide. Le résultat dépend de votre charge de calcul et de votre matériel.

Consulter les mesures et le protocole

Utiliser, étudier, contribuer

Une base ouverte pour vos propres travaux.

Commencez sur CPU avec le SDK .NET 8. Consultez le guide GPU pour la configuration NVIDIA et Hybridizer complémentaire, ou explorez les exemples Excel.

Installer le package de pricing

dotnet add package InFine.QuantFinance.ClosedForm

Bibliothèque MIT. Outillage GPU distinct.

La bibliothèque est publiée sous MIT. Hybridizer est un produit distinct avec ses propres conditions ; son éditeur demande de le contacter pour un usage commercial. Les dépendances tierces conservent leurs licences respectives.

Licence et composants tiers

Une bibliothèque évolutive au périmètre défini.

Le projet est en version pré-1.0 et son API publique peut évoluer entre versions mineures. Les taux multi-courbes, le crédit et le change ne sont pas couverts. Consultez les limites documentées et validez les modèles pour votre usage.

État du projet et limites connues

Les équipes derrière le code

Échangez avec nos équipes quant et IT-quant.

Adapter un modèle, intégrer un calcul ou comprendre un problème de performance : nos consultants accompagnent les institutions financières sur ces sujets.