Κορυφαία Βιβλιοθήκη Quant C ++ για Ποσοτικά Οικονομικά

Words at War: Mother America / Log Book / The Ninth Commandment (Ιούνιος 2019).

Anonim

Μεταξύ των προβλημάτων της αλγοριθμικής διαπραγμάτευσης και της χρηματοοικονομικής μηχανικής, οι βιβλιοθήκες C ++ διαδραματίζουν βασικό ρόλο σε κομμάτια που απαιτούν υψηλή υπολογιστική ικανότητα και απαιτούν ουσιαστικά εξειδικευμένη τεχνογνωσία στα οικονομικά, τα μαθηματικά και τις στατιστικές. Ένα από τα βασικά πλεονεκτήματα των βιβλιοθηκών C ++ είναι ότι είναι εξαιρετικά γρήγοροι και ισχυροί και χρησιμοποιούνται ευρύτερα σε εφαρμογές υπολογιστών υψηλής απόδοσης. Οι περισσότερες από τις εταιρίες εμπορίας υψηλής συχνότητας και ακόμη και οι επαγγελματίες αλγοριθμικές εμπορικές επιχειρήσεις (μη HFT) χρησιμοποιούν C ++ / C για back-testing στρατηγική και δημιουργία.

Ας εξετάσουμε μερικές από τις πιο δημοφιλείς Βιβλιοθήκες Quant C ++.

QuantLib - είναι μια βιβλιοθήκη C ++ για οικονομικούς ποσοτικούς αναλυτές και προγραμματιστές. Το πρόγραμμα ανοιχτού κώδικα QuantLib ξεκίνησε το 2000 στην ιταλική μπουτίκ εταιρεία διαχείρισης κινδύνου RiskMap (ονομαζόμενη πλέον StatPro Italia). Το πρώτο πακέτο QuantLib κυκλοφόρησε τον Δεκέμβριο του 2000 υπό μια φιλελεύθερη άδεια BSD. Αυτό επέτρεψε στις τράπεζες και τις εταιρείες λογισμικού να επεκτείνουν και να τροποποιήσουν τον κώδικα χωρίς να χρειάζεται να το απελευθερώσουν. Το έργο έχει σήμερα περισσότερους από 150 συμμετέχοντες, με μερικούς από αυτούς να συνεισφέρουν σημαντικά. Το QuantLib απαιτεί τις βιβλιοθήκες Boost C ++ ως προϋπόθεση και πρέπει να εγκατασταθεί χωριστά για το Ubuntu και τα Windows

Μεγάλες ποικιλίες ενοτήτων υποστηρίζονται από την Quantlib. Μερικές από τις κύριες ενότητες είναι οι αριθμητικοί τύποι, οι μακροεντολές Quantlib, οι βοηθητικές εφαρμογές, τα νομίσματα και τα ποσοστά FX, τα μοτίβα σχεδίασης, οι υπολογισμοί ημερομηνίας και ώρας, τα εργαλεία Math (γεννήτριες τυχαίων αριθμών Pseudo, αλγόριθμοι εντοπισμού ρίζας και μέθοδοι βελτιστοποίησης) Μέθοδοι, Πλαίσιο Monte-Carlo, Ταμειακές ροές, Δομές όρων, Δείκτες, προσφορές, Μηχανές τιμολόγησης, Χρηματοοικονομικά εργαλεία, Μοντέλα μετοχών, Μοντέλα αγοράς, Πλαίσιο μοντελοποίησης βραχυπρόθεσμα, Μοντέλα μεταβλητότητας, Στοχαστικές διαδικασίες.

Το Quantlib έρχεται επίσης ως Quantlib Excel Addin και εξάγει τη λειτουργικότητα της βιβλιοθήκης ανάλυσης QuantLib C ++ στο Microsoft Excel. Το QuantLib είναι διαθέσιμο ως μονάδα C #, Guile, Java, MzScheme, Perl, Python και Ruby μέσω του SWIG. Προσφέρονται επίσης πειραματικές συνδέσεις με το GNU R και το Objective Caml.

Το Armadillo - Armadillo είναι μια υψηλής ποιότητας βιβλιοθήκη αλγεβρικών γραμμών (Matrix maths) για τη γλώσσα C ++, με στόχο μια καλή ισορροπία μεταξύ ταχύτητας και ευκολίας χρήσης. Η σύνταξή του είναι αρκετά παρόμοια με το Matlab / Octave. Μπορεί να χρησιμοποιηθεί για άμεσες εφαρμογές στη μηχανική μάθηση, αναγνώριση προτύπων, όραση υπολογιστή, επεξεργασία σήματος, βιοπληροφορική, στατιστικές, χρηματοοικονομικά κλπ. Παρέχει διάφορες αποσυνθέσεις μήτρας και αποτελεσματικές τάξεις για φορείς, μήτρες, κύβους, ακέραιους αριθμούς, λειτουργίες.

Το Armadillo θα λειτουργήσει με μεταγλωττιστές που υποστηρίζουν τα παλαιότερα πρότυπα C ++ 98 και C ++ 03, καθώς και τα νεότερα πρότυπα C ++ 11 και C ++ 14. Το Armadillo παρέχει επίσης συνδέσεις / διεπαφή με python (armanpy) και R (RcppArmadillo επέκταση).

Eigen - Eigen είναι μια βιβλιοθήκη προτύπων C ++ για γραμμική άλγεβρα: πίνακες, διανύσματα, αριθμητικά solvers και συναφείς αλγόριθμοι. Θεωρείται επίσης ως εναλλακτική λύση στη βιβλιοθήκη Armadillo. Το Eigen υποστηρίζει όλα τα μεγέθη μήτρας, από μικρές μήτρες σταθερού μεγέθους μέχρι αυθαίρετα μεγάλες πυκνές μήτρες και ακόμη και αραιές μήτρες. Υποστηρίζει διάφορες αποσυνθέσεις μήτρας, χαρακτηριστικά γεωμετρίας, τυποποιημένους αριθμητικούς τύπους, συμπεριλαμβανομένων πολύπλοκων, ακέραιων αριθμών και είναι εύκολα επεκτάσιμο σε προσαρμοσμένους αριθμητικούς τύπους. Το Eigen δεν έχει άλλες εξαρτήσεις εκτός από την τυπική βιβλιοθήκη C ++. Το Eigen είναι τυπικό C ++ 98 και έτσι θα πρέπει θεωρητικά να είναι συμβατό με οποιονδήποτε συμβατό μεταγλωττιστή.

Boost - είναι μια μεγάλη συλλογή από αναθεωρημένο κώδικα που καλύπτει ένα ευρύ φάσμα domains.It είναι ένα σύνολο βιβλιοθηκών για τη γλώσσα προγραμματισμού C ++ που παρέχει υποστήριξη για εργασίες και δομές όπως η γραμμική άλγεβρα, η δημιουργία ψευδοτυχαίων αριθμών, η πολυεπεξεργασία, η επεξεργασία εικόνων, κανονικές εκφράσεις και δοκιμές μονάδων. Περιέχει πάνω από ογδόντα μεμονωμένες βιβλιοθήκες. Η Boost Library έχει τεράστιες εφαρμογές στον τομέα της υπολογιστικής χρηματοδότησης

GSL - Η επιστημονική βιβλιοθήκη GNU (GSL) είναι μια αριθμητική βιβλιοθήκη για προγραμματιστές C και C ++. Είναι ελεύθερο λογισμικό υπό την Γενική Άδεια Δημόσιας Χρήσης του GNU. Η βιβλιοθήκη παρέχει ένα ευρύ φάσμα μαθηματικών ρουτινών όπως Γεννήτρια Τυχαίων Αριθμών, Γραμμική Άλγεβρα, Διαφορικές Εξισώσεις, Ενσωμάτωση Monte-Carlo, Πολύπλοκοι Αριθμοί, Ιδιογενείς Λειτουργίες, Ρίζες Πολυωνύμων, Διανύσματα και Πίνακες, υποστήριξη BLAS και πολλά άλλα. Το GSL αναπτύσσεται στο GNU / Linux με gcc, ωστόσο υποστηρίζει μεγάλες πλατφόρμες, συμπεριλαμβανομένων των Microsoft Windows.

Το πακέτο GLPK - (GNU Linear Programming Kit) προορίζεται για την επίλυση μεγάλου γραμμικού προγραμματισμού (LP), μικτού ακέραιου προγραμματισμού (MIP) και άλλων συναφών προβλημάτων. Πρόκειται για μια σειρά από ρουτίνες γραμμένες στο ANSI C και οργανωμένες με τη μορφή βιβλιοθήκης που μπορεί να καλυφθεί.

BLAS - Τα υποπρογράμματα BLAS (Βασικά Γραμμικά Άλγεβρα) είναι ρουτίνες που παρέχουν τυπικές δομικές μονάδες για την εκτέλεση βασικών λειτουργιών διανύσματος και μήτρας. Το Επίπεδο 1 BLAS εκτελεί λειτουργίες κλιμακωτών, διανυσματικών και διανυσματικών διανυσμάτων, το Επίπεδο 2 BLAS εκτελεί πράξεις διάνυσμα-μήτρα και το BLAS Επίπεδο 3 εκτελεί πράξεις μήτρας-μήτρας. Επειδή τα BLAS είναι αποδοτικά, φορητά και ευρέως διαθέσιμα, χρησιμοποιούνται συνήθως στην ανάπτυξη λογισμικού γραμμικής άλγεβρας υψηλής ποιότητας

LAPACK ++ - Επεκτάσεις γραμμικής αλγεβρικής συσκευασίας (LAPACK) για υπολογισμούς γραμμικής άλγεβρας υψηλής απόδοσης. Αυτή η έκδοση περιλαμβάνει υποστήριξη για την επίλυση γραμμικών συστημάτων χρησιμοποιώντας συντεταγμένες LU, Cholesky και QR matrix.

Intel MKL - Βιβλιοθήκη πυρήνα Math Intel (σε C ++), μια βιβλιοθήκη βελτιστοποιημένων μαθηματικών ρουτίνων για την επιστήμη, τη μηχανική και τις οικονομικές εφαρμογές. Η Intel Math Kernel Library (Intel MKL) επιταχύνει τις διαδικασίες επεξεργασίας μαθηματικών και νευρωνικών δικτύων που αυξάνουν την απόδοση των εφαρμογών και μειώνουν τον χρόνο ανάπτυξης. Περιλαμβάνει λειτουργίες γραμμικής αλγεβρας, γρήγορου μετασχηματισμού Fourier (FFT), νευρωνικά δίκτυα, μαθηματικά διάνυσμα και στατιστικές.

Blitz ++ - Το Blitz ++ είναι μια βιβλιοθήκη κλάσεων C + + για επιστημονικούς υπολογιστές που παρέχουν απόδοση στο ίδιο επίπεδο με το Fortran 77/90. Χρησιμοποιεί τεχνικές προτύπων για να επιτύχει υψηλή απόδοση. Το Blitz ++ παρέχει πυκνούς συστοιχίες και διανύσματα, γεννήτριες τυχαίων αριθμών και μικρούς φορείς (χρήσιμοι για την αναπαραγωγή πολυσύνθετων ή διανυσματικών πεδίων).

Το Dlib -Dlib είναι ένα σύγχρονο εργαλείο C ++ που περιέχει αλγόριθμους μηχανικής μάθησης και εργαλεία για τη δημιουργία σύνθετου λογισμικού στην C ++ για την επίλυση πραγματικών προβλημάτων στον κόσμο. Χρησιμοποιείται τόσο στον κλάδο όσο και στον ακαδημαϊκό χώρο σε ένα ευρύ φάσμα τομέων, όπως ρομποτική, ενσωματωμένες συσκευές, κινητά τηλέφωνα και μεγάλα περιβάλλοντα υπολογιστών υψηλών επιδόσεων.

Ο καρχαρίας Shark - Shark είναι μια γρήγορη, αρθρωτή, πλούσια σε πλούσια στο χαρακτηριστικό γνώρισμα ανοιχτού κώδικα βιβλιοθήκη C ++ μάθησης μηχανών. Παρέχει μεθόδους για γραμμική και μη γραμμική βελτιστοποίηση, αλγόριθμους μάθησης βάσει πυρήνα, νευρωνικά δίκτυα και διάφορες άλλες τεχνικές μάθησης μηχανών. Ο καρχαρίας εξαρτάται από το Boost και το CMake. Είναι συμβατό με τα Windows, το Solaris, το MacOS X και το Linux

Το Mlpack είναι μια βιβλιοθήκη C ++ μάθησης με έμφαση στην επεκτασιμότητα, την ταχύτητα και την ευκολία χρήσης. Το MLPack παρέχει λειτουργίες όπως Collaborative filtering, Density estimation trees, k-Means clustering, Κύριες Ανάλυση Συστατικών, μοντέλα Gaussian, μοντέλα Hidden Markov, Perceptrons, Γραμμική παλινδρόμηση και πολλοί άλλοι αλγόριθμοι Machine Learning.

Το ALGLIB είναι μια βιβλιοθήκη αριθμητικής ανάλυσης και επεξεργασίας δεδομένων μεταξύ πλατφόρμων. Υποστηρίζει διάφορες γλώσσες προγραμματισμού (C ++, C #, Pascal, VBA) και διάφορα λειτουργικά συστήματα (Windows, Linux, Solaris). Τα χαρακτηριστικά του ALGLIB περιλαμβάνουν:

Ανάλυση δεδομένων (ταξινόμηση / παλινδρόμηση, συμπεριλαμβανομένων των νευρωνικών δικτύων)
Βελτιστοποίηση και μη γραμμικές λύσεις
Ενσωμάτωση και γραμμική / μη γραμμική προσαρμογή ελαχίστων τετραγώνων
Η γραμμική άλγεβρα (άμεσοι αλγόριθμοι, EVD / SVD), οι άμεσοι και επαναληπτικοί γραμμικοί λύτριες, ο γρήγορος μετασχηματισμός Fourier και πολλοί άλλοι αλγόριθμοι (αριθμητική ολοκλήρωση, ODE, στατιστικές, ειδικές λειτουργίες)

Ο Alglib έρχεται υπό ελεύθερες και εμπορικές εκδόσεις.

Το TA-Lib - TA-Lib χρησιμοποιείται ευρέως από την ανάπτυξη λογισμικού που απαιτεί την τεχνική ανάλυση των δεδομένων της χρηματοπιστωτικής αγοράς. Περιλαμβάνει 200 ​​δείκτες όπως ADX, MACD, RSI, Stochastic, Bollinger Bands κλπ. Έρχεται ως Open Source API για C / C ++, Java, Perl, Python και 100% Managed .NET και ακόμη και πρόσθετα του Excel είναι διαθέσιμα

Σε περίπτωση που χάσαμε κάποια από τη δημοφιλή βιβλιοθήκη quant c ++, κάνουμε σχόλιο εδώ για να μας ενημερώσετε καλύτερα.