Pendidikan

Top Quant C ++ library untuk Kuantitatif Keuangan

Week 2 (Maret 2019).

Anonim

Mulai dari perdagangan Algoritma untuk masalah Teknik Keuangan, C + + perpustakaan memainkan peran kunci dalam bagian intensif komputasi yang pada dasarnya membutuhkan keahlian yang sangat terampil dalam Keuangan, Matematika dan statistik. Salah satu keunggulan Primer dari pustaka C + + adalah mereka sangat cepat dan kuat dan paling banyak digunakan dalam aplikasi komputasi kinerja tinggi. Sebagian besar perusahaan Perdagangan Frekuensi Tinggi dan bahkan perusahaan perdagangan algoritmik (non-HFT) profesional menggunakan C ++ / C untuk pengujian dan kreasi strategi.

Mari lihat ke beberapa Perpustakaan C ++ yang paling populer.

QuantLib - adalah pustaka C ++ untuk analis dan pengembang kuantitatif keuangan. Proyek open-source QuantLib dimulai pada tahun 2000 di perusahaan risk-management RiskMap (sekarang disebut StatPro Italia). Paket QuantLib pertama dirilis pada Desember 2000 di bawah lisensi BSD liberal. Ini telah memungkinkan bank dan perusahaan perangkat lunak untuk memperpanjang dan memodifikasi kode tanpa harus mengembalikannya kembali. Proyek saat ini memiliki lebih dari 150 kontributor, dengan beberapa dari mereka memberikan kontribusi substansial. QuantLib membutuhkan peningkatan C ++ library sebagai prasyarat dan perlu diinstal secara terpisah untuk Ubuntu dan Windows

Berbagai macam modul didukung oleh Quantlib. Beberapa modul utama adalah jenis Numeric, makro Quantlib, utilitas, Mata Uang dan kurs FX, Pola Desain, Perhitungan Tanggal dan Waktu, Alat-alat matematika (generator nomor acak Pseudo, algoritma pencarian akar, dan metode optimasi), kerangka Finite-differences, Lattice Metode, Kerangka Monte-Carlo, Arus Kas, Struktur Jangka, Indeks, kutipan, Mesin Penentuan Harga, Instrumen Keuangan, Model Ekuitas, Model Pasar, kerangka pemodelan tingkat-pendek, Model Volatilitas, proses Stokastik.

Quantlib juga hadir sebagai Excel Excel Excel dan mengekspor fungsionalitas dari perpustakaan analitik QuantLib C ++ ke Microsoft Excel. QuantLib tersedia dalam modul C #, Guile, Java, MzScheme, Perl, Python, dan Ruby dengan menggunakan SWIG. Binding eksperimental ke GNU R dan Objective Caml juga tersedia.

Armadillo - Armadillo adalah perpustakaan aljabar linear berkualitas tinggi (matriks matematika) untuk bahasa C ++, yang bertujuan menuju keseimbangan yang baik antara kecepatan dan kemudahan penggunaan. Sintaksnya sangat mirip dengan Matlab / Octave. Dapat digunakan untuk aplikasi langsung dalam pembelajaran mesin, pengenalan pola, visi komputer, pemrosesan sinyal, bioinformatika, statistik, keuangan, dll. Menyediakan berbagai dekomposisi matriks dan kelas yang efisien untuk vektor, matriks, kubus, bilangan bulat, floating point dan bilangan kompleks operasi.

Armadillo akan bekerja dengan kompiler yang mendukung standar C ++ 98 dan C ++ 03 yang lebih lama, serta standar C ++ 11 dan C ++ 14 yang lebih baru. Armadillo juga menyediakan bindings / interface ke python (armanpy) dan R (RcppArmadillo extension).

Eigen - Eigen adalah pustaka template C ++ untuk aljabar linier: matriks, vektor, pemecah angka, dan algoritma terkait. Ini juga dianggap sebagai alternatif untuk perpustakaan Armadillo. Eigen mendukung semua ukuran matriks, dari matriks ukuran tetap yang kecil hingga matriks padat yang besar, dan bahkan matriks yang jarang. Ini mendukung berbagai dekomposisi matriks, fitur geometri, tipe numerik standar, termasuk kompleks, bilangan bulat, dan mudah diperluas ke jenis angka kustom. Eigen tidak memiliki ketergantungan selain dari pustaka standar C ++. Eigen adalah standar C ++ 98 dan harus secara teoritis kompatibel dengan compiler yang sesuai.

Boost - adalah kumpulan kode peer-review yang mencakup berbagai domain. Ini adalah satu set pustaka untuk bahasa pemrograman C ++ yang menyediakan dukungan untuk tugas dan struktur seperti aljabar linear, pembuatan nomor pseudorandom, multithreading, pemrosesan gambar, ekspresi reguler, dan pengujian unit. Ini berisi lebih dari delapan puluh perpustakaan individu. Boost Library memiliki aplikasi luas dalam bidang keuangan komputasi

GSL - GNU Scientific Library (GSL) adalah pustaka numerik untuk pemrogram C dan C ++. Ini adalah perangkat lunak gratis di bawah Lisensi Publik Umum GNU. Perpustakaan menyediakan berbagai rutinitas matematika seperti Random Number Generator, Aljabar Linear, Persamaan Diferensial, Integrasi Monte-Carlo, Bilangan Kompleks, Fungsi Eigen, Akar Polinomial, Vektor dan Matriks, Dukungan BLAS dan banyak lagi. GSL dikembangkan pada GNU / Linux dengan gcc, tetapi mendukung platform utama termasuk Microsoft windows.

Paket GLPK - (GNU Linear Programming Kit) ditujukan untuk menyelesaikan pemrograman linier skala besar (LP), pemrograman integer campuran (MIP), dan masalah terkait lainnya. Ini adalah seperangkat rutinitas yang ditulis dalam ANSI C dan diorganisasikan dalam bentuk perpustakaan yang dapat dipanggil.

BLAS - BLAS (Program Aljabar Linear Linier Dasar) adalah rutinitas yang menyediakan blok bangunan standar untuk melakukan operasi vektor dan matriks dasar. Level 1 BLAS melakukan operasi skalar, vektor dan vektor-vektor, Level 2 BLAS melakukan operasi matriks-vektor, dan Level 3 BLAS melakukan operasi matriks-matriks. Karena BLAS efisien, portabel, dan tersedia secara luas, mereka umumnya digunakan dalam pengembangan perangkat lunak aljabar linear berkualitas tinggi

LAPACK ++ - Linear Algebra PACKAGE (LAPACK) ekstensi untuk perhitungan aljabar linear kinerja tinggi. Versi ini termasuk dukungan untuk menyelesaikan sistem linear menggunakan LU, Cholesky, dan faktorisasi matriks QR.

Intel MKL - Perpustakaan Kernel Matematika Intel (dalam C ++), perpustakaan rutin matematika yang dioptimalkan untuk sains, teknik, dan aplikasi keuangan. Perpustakaan Intel Math Kernel (IntelĀ® MKL) mempercepat proses matematika dan rutinitas jaringan syaraf yang meningkatkan kinerja aplikasi dan mengurangi waktu pengembangan. Ini termasuk Algoritma Linear yang sangat vectorized dan berulir, Fast Fourier Transforms (FFT), Neural Network, Vector Math dan Statistik fungsi.

Blitz ++ - Blitz ++ adalah pustaka kelas C ++ untuk komputasi ilmiah yang memberikan kinerja setara dengan Fortran 77/90. Ini menggunakan teknik template untuk mencapai kinerja tinggi. Blitz ++ menyediakan array dan vektor yang padat, generator nomor acak, dan vektor kecil (berguna untuk mewakili bidang multikomponen atau vektor).

Dlib -Dlib adalah toolkit C ++ modern yang berisi algoritma pembelajaran mesin dan alat untuk membuat perangkat lunak yang kompleks di C ++ untuk memecahkan masalah dunia nyata. Ini digunakan baik di industri dan akademisi dalam berbagai domain termasuk robotika, perangkat embedded, ponsel, dan lingkungan komputasi kinerja tinggi yang besar.

Shark - Shark adalah perpustakaan pembelajaran mesin C ++ yang cepat, modular, dan kaya fitur. Ini menyediakan metode untuk optimasi linier dan nonlinier, algoritma pembelajaran berbasis kernel, jaringan syaraf, dan berbagai teknik pembelajaran mesin lainnya. Hiu tergantung pada Boost dan CMake. Ini kompatibel dengan Windows, Solaris, MacOS X, dan Linux

Mlpack adalah perpustakaan pembelajaran mesin C ++ dengan penekanan pada skalabilitas, kecepatan, dan kemudahan penggunaan. MLPack menyediakan fungsionalitas seperti penyaringan kolaboratif, pohon perkiraan Densitas, pengelompokan K-Means, Analisis Komponen Utama, model campuran Gauss, model Markov Tersembunyi, Perceptrons, regresi Linear, dan banyak lagi algoritma pembelajaran Mesin.

ALGLIB - adalah analisis cross-platform numerik dan pustaka pemrosesan data. Ini mendukung beberapa bahasa pemrograman (C ++, C #, Pascal, VBA) dan beberapa sistem operasi (Windows, Linux, Solaris). Fitur ALGLIB termasuk:

Analisis data (klasifikasi / regresi, termasuk jaringan saraf)
Optimasi dan pemecah nonlinier
Interpolasi dan linear / nonlinier sesuai kuadrat terkecil
Aljabar linier (algoritme langsung, EVD / SVD), pemecah linear langsung dan berulang, Fast Fourier Transform, dan banyak algoritme lainnya (integrasi numerik, ODE, statistik, fungsi khusus)

Alglib hadir dalam edisi gratis dan komersial.

TA-Lib - TA-Lib secara luas digunakan oleh pengembang perangkat lunak perdagangan yang membutuhkan untuk melakukan analisis teknis dari data pasar keuangan. Termasuk 200 indikator seperti ADX, MACD, RSI, Stochastic, Bollinger Bands dll. Pengenalan pola Candlestick. Itu datang sebagai Open-source API untuk C / C ++, Java, Perl, Python dan 100% Managed .NET dan bahkan Excel Add-in tersedia

Dalam hal jika saya melewatkan salah satu perpustakaan quant ++ yang populer, beri komentar di sini untuk memberi tahu kami hal-hal yang lebih baik.