Eğitim

Kantitatif Finans için Top Quant C ++ kütüphanesi

Chrystia Freeland: The rise of the new global super-rich (Mart 2019).

Anonim

Algoritmik alım satımdan Finans Mühendisliği problemlerine kadar, C ++ kütüphaneleri, esas olarak Finans, Matematik ve istatistik alanlarında yüksek düzeyde uzmanlık gerektiren hesaplama yoğunluklu kısımlarda kilit bir rol oynamaktadır. C ++ kütüphanelerinin birincil avantajlarından biri, son derece hızlı ve sağlamdır ve yüksek performanslı bilgi işlem uygulamalarında yaygın olarak kullanılır. Yüksek Frekanslı Ticaret firmalarının ve hatta profesyonel (HFT olmayan) algoritmik ticaret firmalarının çoğu, strateji geri testi ve oluşturulması için C ++ / C kullanıyor.

En popüler Quant C ++ Kütüphanelerinin bazılarına bakalım.

QuantLib - finansal kantitatif analistler ve geliştiriciler için bir C ++ kütüphanesidir. QuantLib açık kaynak projesi, 2000 yılında İtalyan butik risk yönetimi firması olan RiskMap (şimdi StatPro Italia) olarak başlatıldı. İlk QuantLib paketi, 2000 yılının Aralık ayında bir liberal BSD lisansı altında piyasaya sürüldü. Bu, bankaların ve yazılım şirketlerinin, kodu geri yüklemeye gerek kalmadan kodun genişletilmesine ve değiştirilmesine izin vermiştir. Projenin bugün, bazılarının önemli katkılarda bulunarak, 150'den fazla katkıda bulunanları var. QuantLib, bir önkoşul olarak Boost C ++ kütüphanelerini gerektirir ve hem Ubuntu hem de Windows için ayrı olarak kurulmalıdır.

Geniş çeşitlilikteki modüller Quantlib tarafından desteklenmektedir. Bazı büyük modüller Sayısal türleri, Quantlib makroları, yardımcı programlar, Kurlar ve Döviz kurları, Tasarım Kalıpları, Tarih ve Zaman Hesaplamaları, Matematik araçları (Sözde rasgele sayı üreteçleri, kök bulma algoritmaları ve optimizasyon yöntemleri), Sonlu farklar çerçevesi, Kafes Metotlar, Monte-Carlo Çerçevesi, Nakit Akışları, Vadeli Yapılar, Endeksler, Tırnaklar, Fiyatlandırma Motorları, Finansal Araçlar, Sermaye Modelleri, Piyasa Modelleri, Kısa Modelleme Çerçevesi, Uçuculuk Modelleri, Stokastik Süreçler.

Quantlib ayrıca Quantlib Excel Addin olarak gelir ve QuantLib C ++ analitik kütüphanesinin işlevselliğini Microsoft Excel'e aktarır. QuantLib, SWIG aracılığıyla bir C #, Guile, Java, MzScheme, Perl, Python ve Ruby modülü olarak kullanılabilir. GNU R ve Objective Caml için deneysel bağlamalar da mevcuttur.

Armadillo - Armadillo, C ++ dili için, hız ve kullanım kolaylığı arasında iyi bir dengeyi hedefleyen, yüksek kaliteli bir lineer cebir kitaplığıdır (matris matematiği). Sözdizimi Matlab / Octave'ye oldukça benzer. Bu makine öğrenme, desen tanıma, bilgisayar vizyonu, sinyal işleme, biyoinformatik, istatistik, finans, vb doğrudan uygulamalarda kullanılabilir. Çeşitli matris ayrıştırmaları ve vektörler, matrisler, küpler, tamsayı, kayan nokta ve karmaşık sayılar için verimli sınıflar sağlar operasyonlar.

Armadillo, eski C ++ 98 ve C ++ 03 standartlarının yanı sıra yeni C ++ 11 ve C ++ 14 standartlarını destekleyen derleyicilerle çalışacak. Armadillo ayrıca python (armanpy) ve R (RcppArmadillo uzantısı) için bağlamalar / arayüz sağlar.

Eigen - Eigen doğrusal cebir için bir C ++ şablon kütüphanesi: matrisler, vektörler, sayısal çözücüler ve ilgili algoritmalar. Ayrıca Armadillo kütüphanesine alternatif olarak kabul edilir. Öz, küçük sabit boyutlu matrislerden rasgele büyük yoğun matrislere ve hatta seyrek matrislere kadar tüm matris boyutlarını destekler. Karmaşık, tamsayılar dahil olmak üzere çeşitli matris ayrıştırmalarını, geometri özelliklerini, standart sayısal türlerini destekler ve özel sayısal türlere kolayca genişletilebilir. Eigen, C ++ standart kütüphanesi dışında herhangi bir bağımlılığa sahip değildir. Eigen standart C ++ 98'dir ve teorik olarak herhangi bir uyumlu derleyici ile uyumlu olmalıdır.

Boost - geniş bir alan yelpazesini kapsayan çok sayıda hakemli bir kod koleksiyonudur. Doğrusal cebir, pseudorandom sayı üretimi, çoklu okuma, görüntü işleme gibi görevler ve yapılar için destek sağlayan C ++ programlama dili kütüphaneleri kümesidir. düzenli ifadeler ve birim testi. Seksen bireysel kütüphaneler içerir. Boost Kütüphanesi, hesaplamalı finans alanında geniş bir uygulamaya sahiptir.

GSL - GNU Bilimsel Kütüphanesi (GSL) C ve C ++ programcıları için sayısal bir kütüphanedir. GNU Genel Kamu Lisansı kapsamında ücretsiz bir yazılımdır. Kütüphane, Rasgele Sayı Üreticisi, Doğrusal Cebir, Diferansiyel Denklemler, Monte-Carlo Entegrasyonu, Kompleks Sayılar, Öz Fonksiyonlar, Polinomların Kökleri, Vektörler ve Matrisler, BLAS Desteği ve daha fazlası gibi çok çeşitli matematiksel rutinler sunar. GSL, gcc ile GNU / Linux üzerinde geliştirilmiştir, ancak Microsoft pencereleri dahil olmak üzere büyük platformları desteklemektedir.

GLPK - (GNU Doğrusal Programlama Kiti) paketi, büyük ölçekli doğrusal programlama (LP), karma tamsayı programlama (MIP) ve diğer ilgili problemleri çözmek için tasarlanmıştır. ANSI C'de yazılmış ve heceli bir kütüphane şeklinde düzenlenmiş bir dizi rutindir.

BLAS - BLAS (Temel Doğrusal Cebir Alt Programları), temel vektör ve matris işlemlerini gerçekleştirmek için standart yapı taşları sağlayan rutinlerdir. Seviye 1 BLAS skaler, vektör ve vektör-vektör işlemleri gerçekleştirir, Seviye 2 BLAS matris-vektör işlemlerini gerçekleştirir ve Seviye 3 BLAS matris-matris işlemlerini gerçekleştirir. BLAS verimli, taşınabilir ve yaygın olarak mevcut olduğundan, yüksek kaliteli lineer cebir yazılımının geliştirilmesinde yaygın olarak kullanılırlar.

LAPACK ++ - Yüksek performanslı doğrusal cebir hesaplamaları için Lineer Cebir PACKage (LAPACK) uzantıları. Bu sürüm, LU, Cholesky ve QR matris faktörlerini kullanarak doğrusal sistemlerin çözümü için destek içerir.

Intel MKL - Intel Math Kernel Kütüphanesi (C ++), bilim, mühendislik ve finansal uygulamalar için optimize edilmiş matematik rutinleri kütüphanesi. Intel Math Kernel Kütüphanesi (Intel® MKL), uygulama performansını artıran ve geliştirme süresini azaltan matematik işlemeyi ve sinir ağı ağ rutinlerini hızlandırır. Son derece vektörize ve dişli Lineer Cebir, Hızlı Fourier Dönüşümleri (FFT), Sinir Ağı, Vektör Matematik ve İstatistik fonksiyonları içerir.

Blitz ++ - Blitz ++, Fortran 77/90 ile eşit performans sağlayan bilimsel hesaplama için bir C ++ sınıf kütüphanesidir. Yüksek performans elde etmek için şablon teknikleri kullanır. Blitz ++, yoğun diziler ve vektörler, rasgele sayı üreteçleri ve küçük vektörler sağlar (çoklu bileşen veya vektör alanlarını temsil etmek için yararlıdır).

Dlib -Dlib, gerçek dünya sorunlarını çözmek için C ++ 'da karmaşık yazılımlar oluşturmak için makine öğrenimi algoritmalarını ve araçlarını içeren modern bir C ++ araç takımıdır. Robotik, gömülü cihazlar, cep telefonları ve büyük yüksek performanslı bilgi işlem ortamları gibi çok çeşitli alanlarda endüstri ve akademi alanlarında kullanılır.

Köpekbalığı - Köpekbalığı hızlı, modüler, zengin özelliklere sahip açık kaynaklı bir C ++ makine öğrenme kütüphanesidir. Doğrusal ve doğrusal olmayan optimizasyon, kernel tabanlı öğrenme algoritmaları, sinir ağları ve çeşitli diğer makine öğrenme teknikleri için yöntemler sağlar. Köpekbalığı Boost ve CMake'e bağlıdır. Windows, Solaris, MacOS X ve Linux ile uyumludur

Mlpack, ölçeklenebilirlik, hız ve kullanım kolaylığına önem veren bir C ++ makine öğrenme kütüphanesidir. MLPack, İşbirlikçi filtreleme, Yoğunluk tahmini ağaçları, k-Means kümeleme, Başlıca Bileşenler Analizi, Gauss karışım modelleri, Gizli Markov modelleri, Perceptronlar, Doğrusal regresyon ve daha birçok Makine öğrenme algoritması gibi işlevsellikler sağlar.

ALGLIB - çapraz platform sayısal analiz ve veri işleme kütüphanesidir. Çeşitli programlama dillerini (C ++, C #, Pascal, VBA) ve çeşitli işletim sistemlerini (Windows, Linux, Solaris) destekler. ALGLIB özellikleri şunlardır:

Veri analizi (sinir ağları dahil olmak üzere sınıflandırma / regresyon)
Optimizasyon ve doğrusal olmayan çözücüler
İnterpolasyon ve doğrusal / doğrusal olmayan en küçük kareler uydurma
Doğrusal cebir (doğrudan algoritmalar, EVD / SVD), doğrudan ve yineleyici doğrusal çözücüler, Hızlı Fourier Dönüşümü ve diğer birçok algoritma (sayısal entegrasyon, ODE'ler, istatistikler, özel fonksiyonlar)

Alglib hem serbest hem de ticari sürümler altında geliyor.

TA-Lib - TA-Lib, finansal piyasa verilerinin teknik analizini yapmak isteyen ticari yazılım geliştiricileri tarafından yaygın olarak kullanılmaktadır. ADX, MACD, RSI, Stokastik, Bollinger Bantları vb. Gibi 200 gösterge içermektedir. C / C ++, Java, Perl, Python ve% 100 Managed .NET için Open-source API ve hatta Excel Eklentileri mevcuttur.

Eğer popüler quant c ++ kütüphanesinden herhangi birini kaçırdığımda, daha iyi şeyler bilmemize izin vermek için buraya yorum yapın.