Pendidikan

Perpustakaan Quant C ++ teratas untuk Kewangan Kuantitatif

Privacy, Security, Society - Computer Science for Business Leaders 2016 (Jun 2019).

Anonim

Bermula dari perdagangan Algoritma kepada masalah Kejuruteraan Kewangan, perpustakaan C ++ memainkan peranan utama dalam bahagian-bahagian pengkomputeran intensif yang pada dasarnya memerlukan kepakaran yang mahir dalam Kewangan, Matematik dan statistik. Salah satu kelebihan utama perpustakaan C ++ adalah mereka sangat cepat dan teguh dan paling banyak digunakan dalam aplikasi pengkomputeran prestasi tinggi. Kebanyakan firma Perdagangan Frekuensi Tinggi dan firma perdagangan algoritma profesional (bukan HFT) menggunakan C ++ / C untuk ujian dan penciptaan semula strategi.

Mari kita lihat beberapa C ++ Perpustakaan yang paling popular.

QuantLib - adalah perpustakaan C ++ untuk penganalisis kuantitatif kewangan dan pemaju. Projek sumber terbuka QuantLib telah dimulakan pada tahun 2000 di syarikat pengurusan risiko butik Itali RiskMap (sekarang dipanggil StatPro Italia). Pakej QuantLib pertama dikeluarkan pada bulan Disember, 2000 di bawah lesen BSD liberal. Ini telah membolehkan bank dan syarikat perisian untuk memperluaskan dan mengubah kod tanpa perlu melepaskannya. Projek hari ini mempunyai lebih daripada 150 penyumbang, dengan sebahagian daripadanya membuat sumbangan besar. QuantLib memerlukan perpustakaan Boost C ++ sebagai prasyarat dan perlu dipasang secara berasingan untuk Ubuntu dan Windows

Pelbagai jenis modul disokong oleh Quantlib. Beberapa modul utama adalah jenis Numerik, makro Quantask, utiliti, Mata Wang dan FX, Corak Reka Bentuk, Pengiraan Tarikh dan Masa, Alat matematik (penjana nombor pseudo random, algoritma mencari akar, dan kaedah pengoptimuman) Kaedah, Rangka Kerja Monte-Carlo, Aliran Tunai, Struktur Terma, Indeks, sebut harga, Enjin Harga, Instrumen Kewangan, Model Ekuiti, Model Pasaran, rangka kerja pemodelan kadar pendek, Model Volatilitas, proses Stokastik.

Quantlib juga datang sebagai Quantlib Excel Addin dan mengeksport ke fungsi perpustakaan analytics QuantLib C ++ ke Microsoft Excel. QuantLib boleh didapati sebagai modul C #, Guile, Java, MzScheme, Perl, Python, dan Ruby dengan cara SWIG. Penyambungan eksperimen ke GNU R dan Objektif Caml juga tersedia.

Armadillo - Armadillo adalah perpustakaan aljabar linear berkualiti tinggi (matriks matriks) untuk bahasa C ++, yang bertujuan untuk mengimbangi antara kelajuan dan kemudahan penggunaan. Sintaksnya agak serupa dengan Matlab / Octave. Ia boleh digunakan untuk aplikasi langsung dalam pembelajaran mesin, pengiktirafan corak, penglihatan komputer, pemprosesan isyarat, bioinformatik, statistik, kewangan, dll. Ia menyediakan Penguraian matriks yang pelbagai dan kelas yang efisien untuk vektor, matriks, kiub, integer, titik terapung dan nombor kompleks operasi.

Armadillo akan bekerjasama dengan penyusun yang menyokong piawaian C ++ 98 dan C ++ 03 yang lebih lama, serta piawaian C ++ 11 dan C ++ 14 yang lebih baru. Armadillo juga menyediakan binding / antara muka untuk python (armanpy) dan R (RcppArmadillo sambungan).

Eigen - Eigen adalah perpustakaan templat C ++ untuk aljabar linear: matriks, vektor, pemecah berangka, dan algoritma yang berkaitan. Ia juga dianggap sebagai alternatif kepada perpustakaan Armadillo. Eigen menyokong semua saiz matriks, dari matriks saiz tetap kecil hingga matriks padat sewenang-wenangnya yang besar, dan bahkan matriks jarang. Ia menyokong pelbagai penguraian matriks, ciri geometri, jenis numerik standard, termasuk kompleks, bulat, dan mudah diperluaskan kepada jenis numerik tersuai. Eigen tidak mempunyai sebarang kebergantungan selain daripada perpustakaan standard C ++. Eigen adalah standard C ++ 98 dan oleh itu secara teorinya akan serasi dengan mana-mana compiler yang patuh.

Boost - adalah kumpulan besar peer-reviewed code yang meliputi pelbagai domain.Ia adalah satu set perpustakaan untuk bahasa pengaturcaraan C ++ yang menyediakan sokongan untuk tugas dan struktur seperti aljabar linear, generasi nombor pseudorandom, multithreading, pemprosesan imej, ungkapan biasa, dan ujian unit. Ia mengandungi lebih dari lapan puluh perpustakaan individu. Perpustakaan Boost mempunyai aplikasi yang luas dalam kewangan komputasi

GSL - Perpustakaan Saintifik GNU (GSL) adalah perpustakaan berangka untuk pengaturcara C dan C ++. Ia adalah perisian percuma di bawah GNU General Public License. Perpustakaan menyediakan pelbagai ragam matematik seperti Generator Nombor Rawak, Algebra Linear, Persamaan Pembezaan, Integrasi Monte-Carlo, Nombor Kompleks, Fungsi Eigen, Aksara Polynomial, Vektor dan Matriks, Sokongan BLAS dan banyak lagi. GSL dibangunkan pada GNU / Linux dengan gcc, namun ia menyokong platform utama termasuk tingkap Microsoft.

GLPK - pakej pengaturcara (GNU Linear Kit) bertujuan untuk menyelesaikan pengaturcaraan linear berskala besar (LP), pengaturcaraan campuran campuran (MIP), dan masalah lain yang berkaitan. Ia adalah satu set rutin yang ditulis dalam ANSI C dan dianjurkan dalam bentuk perpustakaan yang boleh dipanggil.

BLAS - BLAS (Program Subjir Aljabar Asas) adalah rutin yang menyediakan blok bangunan standard untuk menjalankan operasi vektor asas dan matriks. Level 1 BLAS melaksanakan operasi skalar, vektor dan vektor, Level 2 BLAS melaksanakan operasi vektor-matriks, dan tahap 3 BLAS melaksanakan operasi matriks-matriks. Kerana BLAS adalah cekap, mudah alih, dan tersedia secara meluas, mereka biasanya digunakan dalam pembangunan perisian aljabar linear berkualiti tinggi

LAPACK ++ - Sambungan PAKET Algebra Linear (LAPACK) untuk pengiraan aljabar linear prestasi tinggi. Versi ini termasuk sokongan untuk menyelesaikan sistem linear menggunakan factorisasi matriks LU, Cholesky, dan QR.

Intel MKL - Intel Math Kernel Library (dalam C ++), perpustakaan rutin matematik yang dioptimumkan untuk sains, kejuruteraan, dan aplikasi kewangan. Perpustakaan Intel Kernel Intel (IntelĀ® MKL) mempercepatkan pemprosesan matematik dan rutin rangkaian saraf yang meningkatkan prestasi aplikasi dan mengurangkan masa pembangunan. Ia termasuk sangat vektor dan garis lurus Aljabar Linear, Fast Fourier Transforms (FFT), Rangkaian Neural, Matematik Vektor dan Statistik.

Blitz ++ - Blitz ++ adalah perpustakaan kelas C ++ untuk pengkomputeran saintifik yang memberikan prestasi setanding dengan Fortran 77/90. Ia menggunakan teknik template untuk mencapai prestasi tinggi. Blitz ++ menyediakan tatasusunan dan vektor yang padat, penjana nombor rawak, dan vektor kecil (berguna untuk mewakili pelbagai bidang atau vektor).

Dlib -Dlib adalah toolkit C + + moden yang mengandungi algoritma pembelajaran alat dan alat untuk membuat perisian kompleks dalam C ++ untuk menyelesaikan masalah dunia sebenar. Ia digunakan dalam kedua-dua industri dan akademik dalam pelbagai domain termasuk robotik, peranti terbenam, telefon bimbit, dan persekitaran pengkomputeran prestasi tinggi yang besar.

Shark - Shark adalah perpustakaan pembelajaran mesin C ++ sumber terbuka yang kaya, modular dan kaya. Ia menyediakan kaedah untuk pengoptimuman linier dan bukan linear, algoritma pembelajaran berasaskan kernel, rangkaian saraf, dan pelbagai teknik pembelajaran mesin lain. Shark bergantung kepada Boost dan CMake. Ia serasi dengan Windows, Solaris, MacOS X, dan Linux

Mlpack adalah perpustakaan pembelajaran mesin C ++ dengan penekanan pada skala, kelajuan, dan kemudahan penggunaan. MLPack menyediakan fungsi seperti penapisan Kolaboratif, pokok-pokok anggaran ketumpatan, k-Means clustering, Analisis Komponen Utama, model campuran Gaussian, Model Markov Tersembunyi, Perceptif, Regresi Linear dan banyak lagi algoritma pembelajaran Mesin.

ALGLIB - adalah analisis numerical cross-platform dan pemprosesan data perpustakaan. Ia menyokong beberapa bahasa pengaturcaraan (C ++, C #, Pascal, VBA) dan beberapa sistem operasi (Windows, Linux, Solaris). Ciri-ciri ALGLIB termasuk:

Analisis data (klasifikasi / regresi, termasuk rangkaian saraf)
Pengoptimuman dan pemecah tak linear
Interpolasi dan linear / tidak linear paling kurang segi empat tepat
Aljabar linear (algoritma langsung, EVD / SVD), pengalihan linear langsung dan berulang, Fast Fourier Transform dan banyak algoritma lain (integrasi berangka, ODE, statistik, fungsi khas)

Alglib berada di bawah edisi bebas dan komersial.

TA-Lib - TA-Lib digunakan secara meluas oleh pembangun perisian perdagangan yang memerlukan analisa teknikal data pasaran kewangan. Termasuk 200 indikator seperti ADX, MACD, RSI, Stochastic, Bollinger Band dan lain-lain pengiktirafan pola Candlestick. Ia datang sebagai API sumber terbuka untuk C / C ++, Java, Perl, Python dan 100% Managed .NET dan juga Excel Add-in tersedia

Sekiranya saya terlepas apa-apa c ++ perpustakaan yang popular, komenlah di sini untuk memberitahu kami perkara yang lebih baik.