Švietimas

Top Quant C ++ biblioteka kiekybiniams finansams

C++Now 2018: Bob Steagall “If I Had My 'Druthers: A Proposal for Improving the Containers in C++2x” (Liepa 2019).

Anonim

Nuo algoritminės prekybos iki finansų inžinerijos problemų bibliotekos C + + atlieka svarbų vaidmenį skaičiavimo intensyvių dalių, kurios iš esmės reikalauja aukštos kvalifikacijos žinių finansų, matematikos ir statistikos srityse. Vienas svarbiausių C + + bibliotekų pranašumų - jie yra labai greiti ir patikimi ir dažniausiai naudojami aukštos kokybės skaičiavimo programose. Dauguma "High Frequency Trading" firmų ir net profesionalių (ne HFT) algoritminių prekybos įmonių naudoja C ++ / C strategijos grįžtamojo testavimo ir kūrimo procesui.

Leidžia pažvelgti į keletą populiariausių "Quant C ++" bibliotekų.

QuantLib - tai C ++ biblioteka finansiniams kiekybiniams analitikams ir kūrėjams. "QuantLib" atvirojo kodo projektas buvo pradėtas 2000 m. Italijos boutique rizikos valdymo firmoje RiskMap (dabar vadinama "StatPro Italia"). Pirmasis "QuantLib" paketas buvo paleistas 2000 m. Gruodžio mėn. Pagal liberalią BSD licenciją. Tai leido bankams ir programinės įrangos kompanijoms išplėsti ir keisti kodą be jo grąžinimo. Šiandien projekte dalyvauja daugiau kaip 150 dalyvių, iš kurių dalis yra labai prisidedanti. "QuantLib" reikalauja "Boost C ++" bibliotekų kaip būtiną ir turi būti atskirai įdiegtas tiek "Ubuntu", tiek "Windows"

"Quantlib" palaiko daugybę modulių. Kai kurie pagrindiniai moduliai yra skaitiniai tipai, "Quantlib" makrokomandos, komunalinės paslaugos, valiutos ir FX kursai, dizaino modeliai, datos ir laiko skaičiavimai, Matematikos įrankiai (pseudo atsitiktinių skaičių generatoriai, šaknies paieškos algoritmai ir optimizavimo metodai), baigtinių skirtumų sistema, tinklelis Metodai, "Monte-Carlo Framework", pinigų srautai, terminės struktūros, indeksai, kainų pasiūlymai, kainų varikliai, finansinės priemonės, akcijų modeliai, rinkos modeliai, trumpalaikės modeliavimo sistemos, kintamumo modeliai, stochastiniai procesai.

"Quantlib" taip pat ateina kaip "Quantlib Excel Addin" ir eksportuoja "QuantLib C ++" analizės bibliotekos funkcionalumą į "Microsoft Excel". "QuantLib" yra SWIG, kaip C #, Guile, Java, MzScheme, Perl, Python ir Ruby modulis. Eksperimentiniai pririšimai prie GNU R ir Objektyvas Caml taip pat yra.

Armadillo - Armadillo yra aukštos kokybės linijinės algebros biblioteka (matrica matematika), skirta C + + kalbai, siekianti gero greičio ir naudojimo paprastumo pusiausvyros. Jo sintaksė yra gana panaši į Matlab / Octave. Jis gali būti naudojamas tiesiogiai taikant mašinų mokymąsi, modelio atpažinimo, kompiuterio viziją, signalų apdorojimą, bioinformatiką, statistiką, finansavimą ir kt. Ji teikia įvairias matricos skaidymą ir veiksmingas klases, skirtas vektoriams, matricoms, kubeliais, sveikasis skaičius, slankiojo kablelio ir sudėtingų skaičių operacijas.

Armadillo dirbs su kompiliatoriais, palaikančiais senesnius C + + 98 ir C ++ 03 standartus, taip pat naujesnius C + + 11 ir C + + 14 standartus. "Armadillo" taip pat suteikia nuorodas / sąsają su python (armanpy) ir R (RcppArmadillo pratęsimas).

Eigen - Eigen yra C + + šablonų biblioteka linijinei algebrai: matricos, vektoriai, skaitiniai sprendėjai ir susiję algoritmai. Tai taip pat laikoma alternatyva Armadillo bibliotekai. Eigen palaiko visus matricos dydžius, nuo nedidelių fiksuoto dydžio matricų iki savavališkai didelių tankių matricų ir net spragas matricas. Jis palaiko įvairius matricos suskaidymus, geometrijos ypatybes, standartinius skaitmeninius tipus, įskaitant sudėtingus, sveikieji skaičiai, ir yra lengvai išplečiamas pagal įprastus skaitmeninius tipus. Eigen neturi jokių kitų priklausomybių, išskyrus C ++ standartinę biblioteką. Eigen yra standartinis C + + 98, todėl teoriškai turėtų būti suderinamas su bet kokiu suderinamu kompiliatoriumi.

"Boost" - tai didelė kolekcija peržiūrėto kodo, apimančio platų sričių asortimentą. Tai bibliotekų rinkinys, skirtas C + + programavimo kalba, kuris teikia paramą užduotims ir struktūroms, tokioms kaip linijinė algebra, pseudorandominių skaičių generavimas, daugiakryptis atvaizdavimas, vaizdo apdorojimas, reguliarios išraiškos ir vieneto bandymai. Jame yra daugiau kaip aštuoniasdešimt atskirų bibliotekų. "Boost" bibliotekoje yra daugybė skaičiavimų finansavimo programų

GSL - GNU Mokslinė biblioteka (GSL) yra skaitmeninė biblioteka C ir C ++ programuotojams. Tai yra nemokama programinė įranga pagal GNU General Public License. Biblioteka teikia platų matematinių papročių, tokių kaip atsitiktinių skaičių generatorius, linijinė algebra, diferencialinės lygtys, Monte-Carlo integracija, kompleksiniai skaičiai, Eigen funkcijos, daugiakampių šaknys, vektoriai ir matricos, BLAS palaikymas ir dar daugiau. GSL sukurta GNU / Linux su gcc, tačiau palaiko pagrindines platformas, įskaitant "Microsoft" langus.

GLPK - (GNU Linear Programming Kit) paketas skirtas spręsti didelio masto linijinio programavimo (LP), mišrių skaičių programavimo (MIP) ir kitų susijusių problemų. Tai yra įprastų darbų rinkinys, parašytas ANSI C ir organizuojamas iškviečiamos bibliotekos forma.

BLAS - "BLAS" (pagrindinės linijinės algebros paprogramės) yra įprastos, kurios pateikia standartinius elementus pagrindiniams vektoriniams ir matriciniams operacijoms atlikti. Lygis 1 BLAS atlieka skalarinių, vektorinių ir vektorinių vektorių operacijas, Level 2 BLAS vykdo matricos-vektoriaus operacijas ir Level 3 BLAS atlieka matricos-matricos operacijas. Kadangi "BLAS" yra veiksmingi, nešiojami ir plačiai prieinami, jie dažniausiai naudojami aukštos kokybės linijinės algebros programinės įrangos kūrimui.

LAPACK ++ - linijinės Algebra PACKAGE (LAPACK) pratybos aukšto efektyvumo linijinės algebrinės skaičiavimams. Ši versija apima paramą sprendžiant tiesines sistemas, naudojant LU, Cholesky ir QR matricos faktorizacijas.

"Intel MKL" - "Intel Math Kernel Library" (C + +) - optimizuotos matematikos tvarkos biblioteka, skirta mokslo, inžinerijos ir finansinėms programoms. "Intel Math Kernel Library" ("Intel® MKL") pagreitina matematikos apdorojimą ir neuronų tinklus, kurie padidina programų našumą ir mažina kūrimo laiką. Tai apima labai vektorizuotą ir sriegiuotą tiesinę algebūrą, greitą Furjė transformaciją (FFT), neuroninį tinklą, vektorinę matematiką ir statistiką.

Blitz ++ - Blitz ++ yra C ++ biblioteka, skirta moksliniams skaičiavimams, kuri užtikrina našumą lyginant su "Fortran 77/90". Jis naudoja šablonines technologijas, kad pasiektų aukštą našumą. "Blitz ++" teikia tankius masyvus ir vektorius, atsitiktinių skaičių generatorius ir mažus vektorius (naudinga daugiakomponenčių ar vektorinių laukų atstovavimui).

Dlib -Dlib yra modernus C + + priemonių rinkinys, kuriame yra mašinų mokymosi algoritmai ir įrankiai kuriant sudėtingą programinę įrangą C + + sprendžiant realias pasaulio problemas. Jis naudojamas tiek pramonės, tiek akademinėse srityse įvairiose srityse, įskaitant robotus, įtaisytus įrenginius, mobiliuosius telefonus ir didelės našios kompiuterių aplinką.

"Shark -Shark" yra greita, modulinė, funkcionalus atviro kodo C + + mašinų mokymosi biblioteka. Jame pateikiami linijinės ir netiesinės optimizacijos, branduolio mokymosi algoritmų, neuroninių tinklų ir įvairių kitų mašinų mokymosi metodų metodai. Ryklys priklauso nuo "Boost" ir "CMake". Jis suderinamas su "Windows", "Solaris", "MacOS X" ir "Linux"

Mlpack yra C + + mašininio mokymosi biblioteka, kurioje akcentuojama mastelio, greitis ir patogumas. MLPack teikia tokias funkcijas kaip "Bendroji filtravimas", "Tanklių įvertinimo medžiai", "K-priemonių grupavimas", "Pagrindinių komponentų analizė", "Gauso mišinių modeliai", "Slėptuoju Markovo modeliai", "Percepteriai", "Linijinė regresija" ir daugelis kitų mašinų mokymosi algoritmų.

ALGLIB - tai kryžminis platformos skaitinė analizė ir duomenų apdorojimo biblioteka. Jis palaiko keletą programavimo kalbų (C + +, C #, Pascal, VBA) ir keletą operacinių sistemų (Windows, Linux, Solaris). ALGLIB funkcijos apima:

Duomenų analizė (klasifikacija / regresija, įskaitant neuroninius tinklus)
Optimizavimas ir netiesiniai sprendėjai
Interpoliacija ir linijinis / nelinijinis mažiausiai kvadratų įrengimas
Linijinė algebra (tiesioginiai algoritmai, EVD / SVD), tiesioginiai ir iteraciniai tiesiniai sprendėjai, greitas Furjė transformavimas ir daugelis kitų algoritmų (skaitinė integracija, ODE, statistika, specialios funkcijos)

"Alglib" tiekia tiek nemokamus, tiek komercinius leidimus.

TA-Lib -TA-Lib yra plačiai naudojamas prekybos programinės įrangos kūrėjams, kuriems reikalinga atlikti finansinės rinkos duomenų techninę analizę. Apima 200 rodiklių, tokių kaip ADX, MACD, RSI, Stochastic, Bollinger Bands ir kt. Žvakių modelio atpažinimas. Tai yra kaip atvirojo kodo API C / C + +, Java, Perl, Python ir 100% valdomas. NET ir net Excel papildiniai.

Jei aš praleidau bet kurią populiarią cant bibliotekos c + + biblioteką, komentuokite čia, kad praneštumėte apie tai dar geriau.