Educazione

Top libreria Quant C ++ per finanza quantitativa

Building Dynamic Web Apps with Laravel by Eric Ouyang (Luglio 2019).

Anonim

Dal trading algoritmico ai problemi di ingegneria finanziaria, le librerie C ++ giocano un ruolo chiave nelle parti ad alta intensità di calcolo che essenzialmente richiedono competenze altamente specializzate in finanza, matematica e statistica. Uno dei vantaggi principali delle librerie C ++ è che sono estremamente veloci e robusti e ampiamente usati nelle applicazioni di calcolo ad alte prestazioni. La maggior parte delle aziende di trading ad alta frequenza e anche le società di trading algoritmico professionali (non HFT) usano C ++ / C per il back-testing e la creazione di strategie.

Consente di esaminare alcune delle librerie Quant C ++ più popolari.

QuantLib - è una libreria C ++ per analisti e sviluppatori finanziari quantitativi. Il progetto open source QuantLib è stato avviato nel 2000 presso la società di gestione del rischio italiana RiskMap (ora denominata StatPro Italia). Il primo pacchetto QuantLib è stato rilasciato nel dicembre 2000 con una licenza BSD liberale. Ciò ha permesso alle banche e alle società di software di estendere e modificare il codice senza doverlo restituire. Il progetto ha oggi più di 150 contributori, alcuni dei quali forniscono contributi sostanziali. QuantLib richiede le librerie Boost C ++ come pre-requisito e deve essere installato separatamente sia per Ubuntu che per Windows

Vasta varietà di moduli sono supportati da Quantlib. Alcuni dei principali moduli sono i tipi numerici, le macro Quantlib, le utilità, le valute e le frequenze FX, i modelli di progettazione, i calcoli di data e ora, gli strumenti matematici (generatori di numeri casuali, algoritmi di ricerca delle radici e metodi di ottimizzazione), il framework delle differenze finite, il reticolo Metodi, Quadro Monte-Carlo, Flussi di cassa, Strutture a termine, Indici, preventivi, Motori di prezzi, Strumenti finanziari, Modelli azionari, Modelli di mercato, Quadro di modellizzazione a breve termine, Modelli di volatilità, Processi stocastici.

Quantlib si presenta anche come add-in Quantlib Excel ed esporta la funzionalità della libreria di analisi QuantLib C ++ in Microsoft Excel. QuantLib è disponibile come modulo C #, Guile, Java, MzScheme, Perl, Python e Ruby tramite SWIG. Sono inoltre disponibili collegamenti sperimentali a GNU R e Objective Caml.

Armadillo - Armadillo è una libreria di algebra lineare di alta qualità (Matrix Matematica) per il linguaggio C ++, che mira a un buon equilibrio tra velocità e facilità d'uso. La sua sintassi è abbastanza simile a Matlab / Octave. Può essere utilizzato per applicazioni dirette in machine learning, riconoscimento di pattern, computer vision, elaborazione di segnali, bioinformatica, statistica, finanza, ecc. Fornisce varie scomposizioni di matrici e classi efficienti per vettori, matrici, cubi, numeri interi, virgola mobile e numeri complessi operazioni.

Armadillo lavorerà con i compilatori che supportano i vecchi standard C ++ 98 e C ++ 03, nonché i più recenti standard C ++ 11 e C ++ 14. Armadillo fornisce anche collegamenti / interfaccia a python (armanpy) e R (estensione RcppArmadillo).

Eigen - Eigen è una libreria di template C ++ per algebra lineare: matrici, vettori, solutori numerici e algoritmi correlati. È anche considerato un'alternativa alla biblioteca di Armadillo. Eigen supporta tutte le dimensioni della matrice, da piccole matrici a dimensione fissa a matrici densamente arbitrarie e persino matrici sparse. Supporta varie scomposizioni di matrici, funzioni di geometria, tipi numerici standard, compresi complessi, numeri interi ed è facilmente estendibile ai tipi numerici personalizzati. Eigen non ha dipendenze diverse dalla libreria standard C ++. Eigen è standard C ++ 98 e quindi dovrebbe teoricamente essere compatibile con qualsiasi compilatore conforme.

Boost - è una vasta raccolta di codice peer-reviewed che copre una vasta gamma di domini. È un set di librerie per il linguaggio di programmazione C ++ che fornisce supporto per compiti e strutture come algebra lineare, generazione di numeri pseudocasuali, multithreading, elaborazione di immagini, espressioni regolari e test unitari. Contiene oltre ottanta librerie individuali. Boost Library ha una vasta applicazione nella finanza computazionale

GSL - La GNU Scientific Library (GSL) è una libreria numerica per programmatori C e C ++. È un software libero sotto la GNU General Public License. La libreria offre una vasta gamma di routine matematiche come generatore di numeri casuali, algebra lineare, equazioni differenziali, integrazione Monte-Carlo, numeri complessi, funzioni Eigen, radici di polinomi, vettori e matrici, supporto BLAS e altro. GSL è sviluppato su GNU / Linux con gcc, tuttavia supporta piattaforme importanti come Microsoft Windows.

Il pacchetto GLPK - (GNU Linear Programming Kit) è concepito per risolvere la programmazione lineare su grande scala (LP), la programmazione di interi misti (MIP) e altri problemi correlati. È un insieme di routine scritte in ANSI C e organizzato sotto forma di libreria richiamabile.

BLAS - I sottoprogrammi di algebra lineare di base BLAS sono routine che forniscono blocchi predefiniti standard per l'esecuzione di operazioni vettoriali e di matrice di base. Il BLAS di Livello 1 esegue operazioni scalari, vettoriali e vettoriali, il BLAS di Livello 2 esegue operazioni a matrice e il BLAS di Livello 3 esegue operazioni matrice-matrice. Poiché i BLAS sono efficienti, portatili e ampiamente disponibili, sono comunemente usati nello sviluppo di software di algebra lineare di alta qualità

LAPACK ++ - Estensioni di algebra lineare PACKAGE (LAPACK) per calcoli di algebra lineare ad alte prestazioni. Questa versione include il supporto per la risoluzione di sistemi lineari con fatture di matrice LU, Cholesky e QR.

Intel MKL - Intel Math Kernel Library (in C ++), una libreria di routine matematiche ottimizzate per applicazioni scientifiche, ingegneristiche e finanziarie. Intel Math Kernel Library (Intel® MKL) accelera l'elaborazione matematica e le routine di rete neurale che aumentano le prestazioni delle applicazioni e riducono i tempi di sviluppo. Comprende funzioni Algebra lineare altamente vettoriale e filettate, FFT (Fast Fourier Transforms), Rete neurale, Matematica vettoriale e Statistiche.

Blitz ++ - Blitz ++ è una libreria di classi C ++ per il calcolo scientifico che offre prestazioni alla pari con Fortran 77/90. Usa le tecniche dei modelli per ottenere alte prestazioni. Blitz ++ fornisce array e vettori densi, generatori di numeri casuali e piccoli vettori (utili per rappresentare campi multicomponenti o vettoriali).

Dlib -Dlib è un moderno toolkit C ++ che contiene algoritmi e strumenti di machine learning per creare software complessi in C ++ per risolvere problemi del mondo reale. È utilizzato sia nell'industria che nel mondo accademico in una vasta gamma di settori, tra cui la robotica, i dispositivi embedded, i telefoni cellulari e gli ambienti di elaborazione ad alte prestazioni di grandi dimensioni.

Shark - Shark è una libreria di apprendimento automatico C ++ open source, veloce, modulare e ricca di funzionalità. Fornisce metodi per l'ottimizzazione lineare e non lineare, algoritmi di apprendimento basati sul kernel, reti neurali e varie altre tecniche di apprendimento automatico. Lo squalo dipende da Boost e CMake. È compatibile con Windows, Solaris, MacOS X e Linux

Mlpack è una libreria di apprendimento automatico C ++ con enfasi su scalabilità, velocità e facilità d'uso. MLPack offre funzionalità come il filtraggio collaborativo, gli alberi di stima della densità, il cluster di k-medie, l'analisi delle componenti principali, i modelli di miscela gaussiana, i modelli di Markov nascosti, le perceptroni, la regressione lineare e molti altri algoritmi di apprendimento automatico.

ALGLIB - è una libreria di analisi numerica e di elaborazione dati multipiattaforma. Supporta diversi linguaggi di programmazione (C ++, C #, Pascal, VBA) e diversi sistemi operativi (Windows, Linux, Solaris). Le caratteristiche di ALGLIB includono:

Analisi dei dati (classificazione / regressione, comprese le reti neurali)
Ottimizzazione e solutori non lineari
Interpolazione e raccordo dei minimi quadrati lineare / non lineare
Algebra lineare (algoritmi diretti, EVD / SVD), risolutori lineari diretti ed iterativi, trasformata di Fourier veloce e molti altri algoritmi (integrazione numerica, ODE, statistiche, funzioni speciali)

Alglib rientra in entrambe le edizioni gratuite e commerciali.

TA-Lib - TA-Lib è ampiamente utilizzato dagli sviluppatori di software che richiedono l'esecuzione di analisi tecniche dei dati del mercato finanziario. Include 200 indicatori come ADX, MACD, RSI, Stochastic, Bollinger Bands, ecc. Candlestick pattern recognition. È disponibile come API Open-source per C / C ++, Java, Perl, Python e 100% Managed .NET e sono disponibili anche i componenti aggiuntivi di Excel

Nel caso in cui mi mancasse qualcuno della famosa libreria quant c ++, commenta qui per farci sapere le cose più meglio.