Koulutus

Top Quant C ++ -kirjasto kvantitatiiviselle rahoitukselle

Advanced C++ in Quant Finance by Nick Webber - Introduction (Maaliskuu 2019).

Anonim

Algoritmisesta kaupankäynnistä rahoitusinstrumenttien ongelmiin vaihtuvilla C ++ -kirjastoilla on keskeinen rooli laskennallisesti intensiivisissä osissa, jotka edellyttävät olennaisesti korkeatasoista osaamista taloushallinnosta, matematiikasta ja tilastoista. Yksi C ++ -kirjastojen ensisijaisesta eduista ovat ne, jotka ovat erittäin nopeita ja kestäviä ja ovat laajalti käytössä suurteholaskennan sovelluksissa. Suurin osa High Frequency Trading -yrityksistä ja jopa ammattimaisista (ei-HFT) algoritmisista kaupankäynnistä yrityksistä käyttävät C ++ / C -strategian takaisintestausta ja luomista.

Lets tarkastelee joitakin suosituimpia Quant C ++ -kirjastoja.

QuantLib - on C ++ -kirjasto rahoituksellisille kvantitatiivisille analyytikoille ja kehittäjille. QuantLib-avoimen lähdekoodin projekti aloitettiin vuonna 2000 Italian riskipääomarahoitusyrityksellä RiskMap (nykyään StatPro Italia). Ensimmäinen QuantLib-paketti julkaistiin joulukuussa 2000 vapaassa BSD-lisenssissä. Tämä on antanut pankit ja ohjelmistotalot laajentamaan ja muokkaamaan koodia joutumatta julkaisemaan sitä takaisin. Projektissa on nykyään yli 150 osallistujaa, joista osa on merkittävästi mukana. QuantLib vaatii Boost C ++ -kirjastoja ennakkoedellytyksenä, ja se on asennettava erikseen sekä Ubuntulle että Windowsille

Quantlib tukee monimutkaisia ​​moduuleja. Jotkut tärkeimmistä moduuleista ovat numeeriset tyypit, Quantlib-makrot, apuohjelmat, Valuutat ja FX-kurssit, Suunnittelumallit, Päivämäärät ja Aika-laskelmat, Matemaattiset työkalut (Pseudo-satunnaislukugeneraattorit, juurien etsintäalgoritmit ja optimointimenetelmät), Finite-Differences-kehys, Lattice Menetelmät, Monte-Carlo-puitteet, rahavirrat, termirakenteet, indeksit, lainausmerkit, hinnoittelumoottorit, rahoitusinstrumentit, osakemallit, markkinamallit, lyhytnopeusmallinnuskehys, volatiliteettimallit, stokastiset prosessit.

Quantlib tulee myös Quantlib Excel Addiniksi ja vie QuantLib C ++ analyysikirjaston toiminnot Microsoft Exceliin. QuantLib on saatavana CIG, Guile, Java, MzScheme, Perl, Python ja Ruby-moduulina SWIG: n avulla. Myös kokeellisia sidoksia GNU R ja Objective Caml ovat saatavilla.

Armadillo - Armadillo on laadukas lineaarinen algebrakirjasto (matriisimatematiikka) C ++ -kielelle, joka pyrkii tasapainoon nopeuden ja helppokäyttöisyyden välillä. Sen syntaksi on melko samanlainen kuin Matlab / Octave. Sitä voidaan käyttää suoriin sovelluksiin koneenoppimisessa, kuvien tunnistuksessa, tietokoneen visioinnissa, signaalinkäsittelyssä, bioinformatiikassa, tilastoissa, rahoituksessa jne. Se tarjoaa erilaisia ​​matriisipoikkeamia ja tehokkaita luokkia vektoreita, matriiseja, kuutiota, kokonaislukuja, kelluvia pisteitä ja monimutkaisia ​​numeroita toimintaa.

Armadillo toimii työkoneiden kanssa, jotka tukevat vanhempia C ++ 98- ja C ++ 03 -standardeja sekä uudempia C ++ 11- ja C ++ 14 -standardeja. Armadillo tarjoaa myös siteet / käyttöliittymän pythonille (armanpy) ja R (RcppArmadillo-laajennukselle).

Eigen - Eigen on C ++ -mallikirjasto lineaariselle algebralle: matriisit, vektorit, numeeriset solversit ja niihin liittyvät algoritmit. Sitä pidetään myös vaihtoehtoisena Armadillo-kirjastolle. Eigen tukee kaikkia matriisikokoja, pienistä kiinteistä koon matriisista mielivaltaisesti suurille tiheille matriiseille ja jopa harvaan matriisiin. Se tukee erilaisia ​​matriisin hajoamisia, geometriaominaisuuksia, vakioluvutyyppejä, mukaan lukien monimutkaisia ​​kokonaislukuja, ja se on helposti laajennettavissa mukautettuihin numeerisiin tyyppeihin. Eigenillä ei ole muita riippuvuuksia kuin C ++ -standardikirjasto. Eigen on standardi C ++ 98 ja sen pitäisi teoriassa olla yhteensopiva minkä tahansa yhteensopivan kääntäjän kanssa.

Boost - on suuri kokoelma vertaisarvioitua koodia, joka kattaa laajan valikoiman verkkotunnuksia. Se on joukko kirjastoja C ++ -ohjelmointikieltä, jotka tukevat tehtäviä ja rakenteita, kuten lineaarinen algebra, pseudosatunnaisen numeron luominen, monisäikeinen, kuvankäsittely, säännölliset lausekkeet ja yksikkötestaukset. Se sisältää yli kahdeksankymmentä yksittäistä kirjastoa. Boost Library on laaja sovellus laskennallisessa rahoituksessa

GSL - GNU Scientific Library (GSL) on numeerinen kirjasto C- ja C ++ -ohjelmoijille. Se on ilmaista ohjelmistoa GNU General Public Licence -ohjelmassa. Kirjasto tarjoaa laajan valikoiman matemaattisia rutiineja, kuten satunnaislukugeneraattori, lineaarinen algebra, differentiaaliyhtälöt, Monte-Carlo-integraatio, kompleksiluvut, Eigen-funktiot, polynomien juuret, vektorit ja matriisit, BLAS-tuki ja paljon muuta. GSL on kehitetty GNU / Linuxilla gcc: llä, mutta se tukee isoja alustoja, kuten Microsoft-ikkunoita.

GLPK - (GNU Linear Programming Kit) -paketti on tarkoitettu laajamittaisen lineaarisen ohjelmoinnin (LP), sekamuotoisen kokonaislukiohjelmoinnin (MIP) ja muiden siihen liittyvien ongelmien ratkaisemiseen. Se on joukko rutiineja, jotka on kirjoitettu ANSI C: ssä ja jotka on järjestetty kutsuttavan kirjaston muodossa.

BLAS - BLAS (Basic Linear Algebra Subprograms) ovat rutiineja, jotka tarjoavat vakiorakenteita perusvektori- ja matriisitoimintojen suorittamiseen. Taso 1 BLAS suorittaa skalaari-, vektori- ja vektori-vektorioperaatioita, taso 2 BLAS suorittaa matriisi-vektorioperaatiot ja taso 3 BLAS suorittaa matriisimatriisin operaatiot. Koska BLAS on tehokas, kannettava ja laajalti saatavilla, niitä käytetään yleisesti laadukkaiden lineaaristen algebraohjelmistojen kehittämisessä

LAPACK ++ - Lineaarinen algebrapaketti (LAPACK) laajennuksia korkean suorituskyvyn lineaarisen algebra-laskentaan. Tämä versio sisältää tukea lineaaristen järjestelmien ratkaisemiseen käyttäen LU-, Cholesky- ja QR-matriisin tekijöitä.

Intel MKL - Intel Math Kernel -kirjasto (C ++), kirjasto optimoiduista matematiikan rutiineista tieteen, tekniikan ja talouden sovelluksiin. Intel Math Kernel Library (Intel® MKL) nopeuttaa matemaattisen käsittelyn ja hermoratkaisujen rutiineja, jotka lisäävät sovellusten suorituskykyä ja vähentävät kehitysaikaa. Se sisältää erittäin vektoroituja ja kierteisiä Lineaarinen Algebra, Fast Fourier Transforms (FFT), Neural Network, Vector Math ja Statistics funktiot.

Blitz ++ - Blitz ++ on C ++ -luokan kirjasto tieteelliselle laskentajärjestelmälle, joka tarjoaa suorituskyvyn pari Fortran 77/90: n kanssa. Se käyttää mallintatekniikoita korkean suorituskyvyn saavuttamiseksi. Blitz ++ tarjoaa tiheitä ryhmiä ja vektoreita, satunnaislukugeneraattoreita ja pieniä vektoreita (hyödyllisiä edustamaan monikomponenttisia tai vektoreita).

Dlib -Dlib on moderni C ++ työkalupakki, joka sisältää koneen oppimisalgoritmeja ja työkaluja monimutkaisten ohjelmistojen luomiseen C ++ -järjestelmään reaalimaailman ongelmien ratkaisemiseksi. Sitä käytetään sekä teollisuudessa että yliopistossa useilla aloilla, kuten robotiikka, sulautetut laitteet, matkapuhelimet ja suuret suorituskykyiset tietojenkäsittelyympäristöt.

Shark - Shark on nopea, modulaarinen, monipuolinen, avoimen lähdekoodin C ++ -koneiden oppimiskirjasto. Se tarjoaa menetelmiä lineaariselle ja epälineaariselle optimoinnille, ydinperusteisille oppimisalgoritmeille, neuroverkoille ja erilaisille koneen oppimistekniikoille. Shark riippuu Boost ja CMake. Se on yhteensopiva Windows, Solaris, MacOS X ja Linux kanssa

Mlpack on C ++ -tekniikan oppimiskirjasto, joka korostaa skaalautuvuutta, nopeutta ja helppokäyttöisyyttä. MLPack tarjoaa toiminnot kuten Collaborative-suodatus, tiheysarviointi puut, k-Means-klusterointi, pääkomponenttianalyysi, Gaussin sekoitusmallit, Hidden Markov -mallit, Perceptronit, Lineaarinen regressio ja monia muita koneen oppimisalgoritmeja.

ALGLIB - on monialainen foorumi numeerinen analyysi ja tietojenkäsittelykatalogi. Se tukee useita ohjelmointikieliä (C ++, C #, Pascal, VBA) ja useita käyttöjärjestelmiä (Windows, Linux, Solaris). ALGLIB-ominaisuuksia ovat:

Tietojen analysointi (luokittelu / regressio, myös neuroverkot)
Optimointi ja epälineaariset solversit
Interpolointi ja lineaarinen / epälineaarinen pienin neliösumma
Lineaarinen algebra (suorat algoritmit, EVD / SVD), suorat ja iteratiiviset lineaariset solversit, nopea Fourier-muunnos ja monet muut algoritmit (numeerinen integraatio, ODEs, tilastot, erikoistoiminnot)

Alglib on sekä vapaa että kaupallinen.

TA-Lib- TA-Lib käytetään laajalti kaupankäynnin kohteina ohjelmistokehittäjiä, jotka tarvitsevat teknisen analyysin rahoitusmarkkinoista. Sisältää 200 indikaattoria, kuten ADX, MACD, RSI, stokastinen, Bollingerin bändit jne. Se on avoin lähdekoodi API C / C ++, Java, Perl, Python ja 100% Managed. NET ja jopa Excel-lisälaitteet ovat käytettävissä

Siinä tapauksessa, että jos minulla ei ole mitään suosittua quant c ++ -kirjastosta, kommentoi täällä ja kerro meille asiat paremmin.