Haridus

Top Quant C ++ raamatukogu kvantitatiivsete rahaliste vahendite jaoks

Writing 2D Games in C using SDL by Thomas Lively (Juuni 2019).

Anonim

Algorithmiline kauplemine finantskorraldusprobleemidega on C ++ -raamatukogudel võtmeroll arvutuslikult intensiivsetel osadel, mis nõuab peamiselt kõrgelt kvalifitseeritud ekspertiisi rahandus-, matemaatika- ja statistikateadustes. Üks C + + raamatukogude peamine eelis on see, et need on väga kiire ja jõuline ning neid kasutatakse suure jõudlusega arvutusrakendustes. Enamik kõrge sagedusega kauplemise ettevõtted ja isegi professionaalsed (mitte-HFT) algoritmilised kaubandusettevõtted kasutavad strateegiate tagasiulatuva testimise ja loomise jaoks C ++ / C-d.

Võimaldab tutvuda mõne kõige populaarsema Quant C ++ raamatukoguga.

QuantLib - on C ++ raamatukogu rahaliste kvantitatiivsete analüütikute ja arendajatele. QuantLib'i avatud lähtekoodiga projekt algas 2000. aastal Itaalia boutique riskijuhtimise firmas RiskMap (nüüd nimega StatPro Italia). Esimene QuantLib-i pakett ilmus detsembris 2000 liberaalse BSD-litsentsi alusel. See on võimaldanud pankadel ja tarkvarafirmadel laiendada ja muuta koodi, ilma et peaks seda tagasi lükkama. Täna on projektis rohkem kui 150 toetajat, millest osa on oluliselt panustanud. QuantLib vajab eeltingimuseks Boost C ++ -i lingid ja peab olema eraldi paigaldatud nii Ubuntu kui ka Windowsile

Quantlib toetab suuri sorte mooduleid. Mõned peamised moodulid on Numbrilised tüübid, Quantlib-makrod, kommunaalkulud, Valuuta ja FX-määrad, Disainimasinad, Kuupäeva- ja ajaarvutused, Matemaatilised tööriistad (Pseudo juhuslike arvude generaatorid, juurte leidmise algoritmid ja optimeerimismeetodid), Finite-differences framework, Lattice Meetodid, Monte-Carlo raamistik, rahakäive, termonstruktsioonid, indeksid, hinnapakkumised, hinnakujundus mootorid, finantsinstrumendid, aktsia mudelid, turumudelid, lühimääraga modelleerimisraamistik, volatiilsusmudelid, stokhastilised protsessid.

Quantlib on ka Quantlib Exceli Addin ja ekspordib QuantLib C ++ analüüsikogu funktsionaalsust Microsoft Excelile. QuantLib on saadaval SWIG-i vahendusel C #, Guile, Java, MzScheme, Perl, Python ja Ruby moodulina. Samuti on saadaval eksperimentaalsed sidemed GNU R ja Objective Camliga.

Armadillo - Armadillo on C ++ keele jaoks kvaliteetne lineaarse algebra raamatukogu (maatriksmatemaatika), mille eesmärk on saavutada hea tasakaalu kiiruse ja kasutusmugavuse vahel. Selle süntaks on üsna sarnane Matlab / Octave'ga. Seda saab kasutada otsestel rakendustel masinaõppes, mustrilisel tuvastamisel, arvuti visioonil, signaalitöötlusel, bioinformaatika, statistikas, rahanduses jm. See pakub erinevaid vektorite lagunemisi ja efektiivseid klasse vektoreid, maatrikseid, kuubikuid, täisarvu, ujuva punkti ja keerukaid numbreid. toimingud.

Armadillo töötab koos vanemate C ++ 98 ja C ++ 03 standardite ning uuemate C + + 11 ja C ++ 14 standardite toetamisega loodud kompileerijatega. Armadillo pakub ka pythoni (armanpy) ja R (RcppArmadillo pikenduse) sidumist / liidest.

Eigen - Eigen on lineaarse algebra C + + mallide raamatukogu: maatriksid, vektorid, arvulised lahendajad ja nendega seotud algoritmid. Seda peetakse ka Armadillo raamatukogu alternatiiviks. Eigen toetab kõiki maatriksi suurusi, alates väikestest fikseeritud suurusega maatriksitest kuni suvaliselt suured tihedad maatriksid ja isegi hõredad maatriksid. See toetab mitmesuguseid maatriksi lagunemist, geomeetrilisi funktsioone, standardseid numbrilisi tüüpe, sealhulgas kompleksseid täisarvu ja on hõlpsasti laiendatav kohandatud numbriliikidele. Eigenil ei ole muud sõltuvust peale standardse raamatukogu C ++. Eigen on standardne C ++ 98 ja peaks seega teoreetiliselt ühilduma mis tahes nõuetele vastava kompilaatoriga.

Boost - on suur kogum peer-reviewed koodi, mis hõlmab mitmesuguseid valdkondi. See on C + + programmeerimiskeele kogum, mis toetab ülesandeid ja struktuure, nagu lineaarne algebra, pseudorandom-arvu genereerimine, multitegraanimine, pilditöötlus, regulaaravaldised ja üksuse testimine. See sisaldab üle kaheksakümmend eraldi raamatukogusid. Boost Library'il on ulatuslikud rakendused arvutuslikus rahastamises

GSL - GNU Teaduslik Raamatukogu (GSL) on numbriline raamatukogu C ja C ++ programmeerijatele. See on tasuta tarkvara GNU Üldise Avaliku Litsentsi all. Raamatukogu pakub laia valikut matemaatilisi rutiine, nagu juhusliku arvu generaator, lineaaralgebra, diferentsiaalvõrrandid, Monte-Carlo integratsioon, kompleksnumbrid, erigenfunktsioonid, polünoomide juured, vektorid ja matrices, BLAS-tugi ja palju muud. GSL on GNU / Linuxi arendatud koos gcc-ga, kuid see toetab suuri platvorme, sealhulgas Microsoft aknaid.

GLPK - (GNU Linear Programming Kit) pakett on mõeldud laiaulatusliku lineaarse programmeerimise (LP), segatud täisarvuprogrammi (MIP) ja muude sellega seotud probleemide lahendamiseks. See on rida, mis on kirjutatud ANSI C-s ja mida korraldatakse väljakirjutatava teegi vormis.

BLAS - BLAS (põhilised lineaarsed algebra alamprogrammid) on rutiinid, mis pakuvad standardseid ehitusplokke põhivektori ja maatriksitegevuste teostamiseks. Tase 1 BLAS teostab skalaari, vektori ja vektor-vektori toiminguid, Level 2 BLAS teostab maatriks-vektori toiminguid ja Level 3 BLAS täidab maatriks-maatriksi toiminguid. Kuna BLAS on tõhusad, kaasaskantavad ja laialdaselt kättesaadavad, kasutatakse neid sageli kvaliteetse lineaarse algebra tarkvara väljatöötamisel

LAPACK ++ - Linear Algebra PACKAGE (LAPACK) laiendused suure jõudlusega lineaarse algebra arvutamiseks. See versioon sisaldab toetust lineaarsete süsteemide lahendamiseks, kasutades LU, Cholesky ja QR maatriksi teguratsioone.

Intel MKL - Inteli matemaatika kerneli raamatukogu (C ++ keeles), optimeeritud matemaatika rutiinide raamatukogu teaduse, inseneri ja rahaliste rakenduste jaoks. Intel Math Kernel Library (Intel® MKL) kiirendab matemaatika töötlemist ja neuronite võrgustikke, mis suurendavad rakenduste jõudlust ja vähendavad arendusaega. See sisaldab väga vektoriseeritud ja keermestatud lineaarset algebra, kiiret Fourier'i teisendust (FFT), neural võrgustikku, vektori matemaatika ja statistika funktsioone.

Blitz ++ - Blitz ++ on C-klassi raamatukogu teaduslikele arvutustele, mis pakub Fortrani 77/90 jaoks paranemist. Ta kasutab suurema jõudluse saavutamiseks mallimeetodeid. Blitz ++ pakub tihedaid massiive ja vektoreid, juhuslike arvutegeneraatorite ja väikeste vektoreid (kasulik mitmekomponentsete või vektorväljade esitamiseks).

Dlib -Dlib on kaasaegne C + + tööriistakomplekt, mis sisaldab masinloetmisalgoritme ja tööriistu C + + keerulise tarkvara loomiseks reaalmaailma probleemide lahendamiseks. Seda kasutatakse nii tööstuses kui ka akadeemias mitmesugustes valdkondades, sealhulgas robootika, varjatud seadmete, mobiiltelefonide ja suure jõudlusega arvutuskeskkondades.

Shark -Shark on kiire, modulaarne, funktsionaalselt avatud lähtekoodiga C ++ masin õppe raamatukogu. See pakub meetodeid lineaarseks ja mittelineaarseks optimeerimiseks, kernelil põhinevate õpimisalgoritmide, neuralvõrkude ja mitmesuguste muude masinloetustehnikate jaoks. Shark sõltub Boostist ja CMake'ist. See on ühilduv Windows, Solaris, MacOS X ja Linuxiga

Mlpack on C + + masin õppe raamatukogu, rõhuasetusega mastaapsuse, kiiruse ja kasutusmugavus. MLPack pakub selliseid funktsioone nagu Collaborative filtreerimine, tiheduse hindamise puud, k-vahendite klastrite loomine, põhikomponentide analüüs, gaussi segu mudelid, varjatud Markovi mudelid, pertseptroonid, lineaarne regressioon ja palju muud masinate õppe algoritmid.

ALGLIB - on platvormidel põhinev arvulise analüüsi ja andmetöötluse raamatukogu. See toetab mitut programmeerimiskeelt (C ++, C #, Pascal, VBA) ja mitut operatsioonisüsteemi (Windows, Linux, Solaris). ALGLIB funktsioonid on järgmised:

Andmete analüüs (klassifitseerimine / regressioon, sealhulgas neuralvõrgud)
Optimeerimine ja mittelineaarsed lahendajad
Interpoleerimine ja lineaarne / mittelineaarne vähimruutude paigaldamine
Lineaaralgebra (otsed algoritmid, EVD / SVD), otsesed ja iteratiivsed lineaarmähised, Fast Fourieri teisendamine ja paljud teised algoritmid (arvuline integreerimine, ODE-d, statistika, erifunktsioonid)

Alglib kuulub nii vabade kui ka äriliste väljaannete hulka.

TA-Lib - TA-Lib on laialdaselt kasutusel kauplemise tarkvara arendajatel, kes peavad finantsturgude andmete tehnilist analüüsi läbi viima. Sisaldab 200 indikaatorit, nagu ADX, MACD, RSI, Stochastic, Bollinger Bands jne. See on saadaval C / C ++, Java, Perli, Pythoni ja 100% Managed. NET avatud ja lähtekoodiga API-le ja isegi Exceli lisandmoodulid on saadaval

Juhul, kui ma jätaksin ükskõik millise populaarse quant C ++ -i teeki, tehke siin kommenteerida, et teavitada meid paremini.