Tuesday, October 4, 2016

Erfolgreiche Backtesting Der Algorithmische Handelsstrategien , Teil 1

Erfolgreiche Backtesting der Algorithmische Handelsstrategien, Teil 1 30. Juni 2014 05.00 Uhr 3 Kommentare Ansichten: 1498 Dieser Artikel setzt die Reihe von quantitativen Handels, die mit dem Anfänger-Führer und Strategie Identification gestartet. Beide länger, komplizierter Artikel sind sehr beliebt, so Ill weiterhin in diesem Sinne und geben detailliert über das Thema Strategie Backtesting. Algorithmische Backtesting erfordert Kenntnisse über viele Bereiche, einschließlich Psychologie, Mathematik, Statistik, Software-Entwicklung und Markt / Austauschmikrostruktur. Ich konnte nicht hoffen, alle diese Themen in einem Artikel zu decken, so Im gehend, sie in zwei oder drei kleinere Stücke aufgeteilt. Was werden wir in diesem Abschnitt zu besprechen? Ill beginnen mit der Definition von Backtesting und dann werde ich die Grundlagen, wie sie durchgeführt wird zu beschreiben. Dann werde ich auf die Vorurteile wir berührten im Leitfaden für Anfänger Quantitative Handels aufzuklären. Weiter will ich einen Vergleich der verschiedenen verfügbaren Backtesting-Software-Optionen vor. In den folgenden Artikeln werden wir auf die Einzelheiten der Strategie-Implementierungen, die oft kaum erwähnt werden oder ignoriert zu suchen. Wir werden auch prüfen, wie die Backtesting realistischer, indem die Eigenheiten eines Handelsaustausch zu machen. Dann werden wir die Transaktionskosten und wie man richtig zu modellieren sie in einem Backtest-Einstellung zu diskutieren. Wir beginnen mit einer Diskussion über die Leistung unserer Backtests Ende und schließlich sind ein Beispiel für einen gemeinsamen quant Strategie als Mittelwert revertierende Paare Handel bekannt. Beginnen wir mit der Diskussion, was Backtesting ist und warum sollten wir es in unserem algorithmischen Handel durchzuführen. Was ist Backtesting? Algorithmic Trading hebt sich von anderen Arten von Anlageklassen, weil wir zuverlässiger bereitzustellen Erwartungen über die zukünftige Performance von vergangenen Leistungen, als Folge der reichlichen Verfügbarkeit der Daten. Das Verfahren, mit denen dies ausgeführt wird, wird als Rückvergleiche bekannt. In einfachen Worten, ist das Backtesting durchgeführt, indem Sie Ihre besondere Strategie-Algorithmus, um einen Strom von historischen Finanzinformationen, die auf eine Reihe von Trading-Signale führt durchgeführt. Jeder Handel (die wir hier bedeutet, ein Round-Trip von zwei Signalen werden) wird eine zugehörige Gewinn oder Verlust. Die Anhäufung dieser Gewinne / Verluste über die Dauer Ihrer Strategie Backtest wird auf den Gesamt Gewinn - und Verlust (auch als PL oder Pnl bekannt) führen. Das ist die Essenz der Idee, obwohl natürlich der Teufel steckt immer im Detail! Was sind die wichtigsten Gründe für die Backtesting eine algorithmische Strategie? Filtration Wenn Sie sich erinnern aus dem Artikel über Strategie Identification. Unser Ziel bei der anfänglichen Forschung Bühne war herauszufiltern jede Strategie, die nicht bestimmte Kriterien erfüllen, hat die Einrichtung eines Strategie-Pipeline und dann. Backtesting gibt uns eine andere Filtermechanismus, wie wir Strategien, die unsere Leistungsanforderungen nicht erfüllen, zu beseitigen. Modellierung Backtesting erlaubt es uns, (sicher!) Testen neue Modelle von bestimmten Markt Phänomene, wie Transaktionskosten, Order-Routing, Latenzzeit, Liquidität oder andere Marktmikrostrukturfragen. Optimierung Obwohl Strategie Optimierung ist voller spannt, ermöglicht uns Rückvergleiche, um die Leistung einer Strategie durch Modifizieren der Menge oder Werte der mit dieser Strategie zugeordneten Parameter und Neuberechnen seine Leistung zu erhöhen. Verification Unsere Strategien sind oft von außen bezogen, über unsere Strategie Pipeline. Backtesting eine Strategie stellt sicher, dass es nicht falsch umgesetzt. Obwohl wir haben nur selten Zugang zu den von externen Strategien erzeugten Signale, werden wir oft haben Zugriff auf die Performance-Kennzahlen wie die Sharpe Ratio und Drawdown Eigenschaften. So können wir sie mit unseren eigenen Implementierung zu vergleichen. Backtesting bietet eine Reihe von Vorteilen für den algorithmischen Handel. Jedoch ist es nicht immer möglich, ohne weiteres Backtest eine Strategie. Im Allgemeinen, wie der Frequenz der Strategie zunimmt, wird es schwieriger, korrekt modellieren die Mikro Auswirkungen des Marktes und Austausch. Dies führt zu weniger zuverlässig Backtests und damit ein komplizierter Auswertung einer gewählten Strategie. Dies ist ein besonderes Problem, wenn das Ausführungssystem ist der Schlüssel zu der Strategie Leistung, wie Ultra-Hochfrequenz-Algorithmen. Leider ist die Rückvergleiche voller Verzerrungen aller Typen. Wir haben uns auf einige dieser Fragen in früheren Artikeln berührt, aber wir werden jetzt in der Tiefe zu diskutieren. Vorurteile beeinflussen Strategie Backtests Es gibt viele Verzerrungen, die die Leistung eines rückgetesteten Strategie beeinflussen können. Leider haben diese spannt die Tendenz, die Leistung und nicht aufzublasen ablenken daraus. Daher sollten Sie immer prüfen, einen Backtest zu sein auf dem tatsächlichen Leistung der Strategie eine idealisierte obere Schranke. Es ist fast unmöglich, um Verzerrungen von algorithmischen Handel beseitigen, so ist es unsere Aufgabe, sie zu minimieren, so gut wir können, um fundierte Entscheidungen über unsere algorithmischen Strategien zu machen. Es gibt vier große Vorurteile, die ich wünschte, um zu diskutieren: Optimierung Bias, Look-Ahead-Bias, Survivor Bias und Psychologische Tolerance Bias. Optimierung Bias Dies ist wahrscheinlich der heimtückischsten aller Backtest spannt. Es geht um Anpassung oder die Einführung zusätzlicher Handelsparameter, bis die Strategie Leistung auf dem Backtest-Datensatz sehr attraktiv. Einmal leben jedoch die Leistung der Strategie deutlich unterschiedlich sein. Ein anderer Name für diese Vorspannung Kurvenanpassung oder Daten-Snooping-Bias. Optimierung Bias ist schwer zu beseitigen, wie algorithmische Strategien beinhalten oft viele Parameter. Parameter in diesem Fall könnten die Ein - / Ausstiegskriterien aussehen Rückperioden, Mittelungszeiträume (dh der gleitende Durchschnitt Glättungsparameter) oder Volatilitätsmessfrequenz sein. Optimierung Vorspannung, indem die Anzahl der Parameter auf ein Minimum und die Erhöhung der Menge von Datenpunkten in dem Trainingssatz zu minimieren. In der Tat muss man auch darauf achten, der letzteren, wie ältere Ausbildungsstellen können von einer vorherigen Regime (wie einem regulatorischen Umfeld) und kann daher nicht relevant für Ihre aktuelle Strategie. Eine Methode zur Linderung dieses Vorurteil ist, eine Sensitivitätsanalyse durchzuführen. Dies bedeutet, Variation der Parameter inkrementell und Plotten einer Oberfläche der Leistung. Sound, fundamentale Begründung für Parameterwahlen sollte, wobei alle anderen Faktoren berücksichtigt, um eine glattere Parameteroberfläche führen. Wenn Sie eine sehr jumpy Leistungs Oberfläche, oft bedeutet dies, dass ein Parameter nicht Reflektieren eines Phänomene und ist ein Artefakt der Testdaten. Es gibt eine umfangreiche Literatur, die mehrdimensionalen Optimierungsalgorithmen, und es ist ein sehr aktiver Forschungsbereich. Ich werde nicht auf sie eingehen hier, aber halten Sie es im Hinterkopf, wenn Sie eine Strategie, mit einem fantastischen Backtest zu finden! Look-Ahead-Bias Look-ahead-Vorspannung in eine Rückvergleiche System eingeführt, wenn zukünftige Daten versehentlich an einem Punkt in der Simulation, wenn diese Daten nicht tatsächlich verfügbar gewesen enthalten. Wenn wir führen das Backtest chronologisch und gelangen wir zum Zeitpunkt N. dann tritt Look-Ahead-Bias, wenn die Daten für jeden Punkt N + k enthalten. wobei k & gt; 0. Look-Ahead-Bias-Fehler kann unglaublich subtil sein. Hier sind drei Beispiele dafür, wie Look-Ahead-Bias eingeführt werden kann: Technische Bugs Arrays / Vektoren im Code haben oft Iteratoren oder Indexvariablen. Falsche Offsets dieser Indizes kann mit einem Look-Ahead-Bias indem Daten bei N + k für k ungleich Null führen. Parameterberechnung anderes häufiges Beispiel der Vorgriffs-Vorspannung tritt beim Berechnen optimale Strategie Parameter, wie mit linearen Regressionen zwischen zwei Zeitreihen. Wenn die gesamte Datenmenge (einschließlich künftiger Daten) zu Optimierungszwecken verwendet werden, um die Regressionskoeffizienten zu berechnen und zu einer Trading-Strategie damit rückwirkend angewandt, dann zukünftige Daten werden eingearbeitet und eine Look-Ahead-Bias existiert. Maxima / Minima Bestimmte Handelsstrategien nutzen Extremwerte in jeder Zeitperiode, beispielsweise unter Einbeziehung der hohen oder niedrigen Preisen in OHLC Daten. Da diese den maximalen / minimalen Werte können nur am Ende einer Zeitperiode berechnet werden kann, wird ein Vorgriff Vorspannung eingeführt werden, wenn diese Werte - during - aktuellen Periode verwendet. Es ist immer notwendig, um hohe / niedrige Werte von mindestens einem Zeitraum in jedem Handelsstrategie das Nutzen von ihnen zurückbleiben. Survivor Bias Survivor Bias ist ein besonders gefährliches Phänomen und kann zu erheblich aufgebläht Performance für bestimmte Strategietypen führen. Es tritt auf, wenn Strategien basieren auf Datensätzen, die keine die vollständige Universum vor Vermögenswerte, die zu einem bestimmten Zeitpunkt ausgewählt worden zu sein kann, aber nur betrachten diejenigen, die der aktuellen Zeit überlebt haben, getestet. Als Beispiel betrachten wir die Prüfung einer Strategie auf eine zufällige Auswahl von Aktien vor und nach dem Börsencrash 2001. Einige Technologie-Aktien in Konkurs ging, während andere es geschafft, über Wasser halten und sogar zu Wohlstand. Wenn wir diese Strategie nur auf Aktien, die sie durch den Markt Drawdown Zeitraum beschränkt war, würden wir die Einführung eines Survivor Bias, da sie bereits ihren Erfolg zu uns bewiesen. In der Tat ist dies nur ein weiterer speziellen Fall der Look-Ahead-Bias, als zukünftige Information wird in die Vergangenheit Analyse einbezogen. Es gibt zwei Möglichkeiten, um Survivor Bias in Ihrer Strategie Backtests zu mildern: Survivor Bias Kostenlose Datensätze Im Falle von Eigenkapital Daten ist es möglich, Datenmengen, die ausgelistet Einheiten gehören zu kaufen, auch wenn sie nicht billig sind und nur dazu neigen, durch institutionelle Unternehmen genutzt werden. Insbesondere ist Yahoo Finance Daten nicht Survivor Bias frei, und dies wird häufig von vielen Einzelhandels Algo-Tradern verwendet. Man kann auch auf Anlageklassen, die nicht anfällig für Survivor Bias sind, wie beispielsweise bestimmte Rohstoffe (und ihre Zukunft Derivate) gehandelt. Verwenden Sie neuere Daten Im Falle von Aktien, die Verwendung einer neueren Datensatz mildert die Möglichkeit, dass die Aktienauswahl ausgewählt wird, um Überlebende gewichtet, einfach als es weniger Wahrscheinlichkeit für den gesamten Aktien Delisting in kürzeren Zeiträumen. Man kann auch den Aufbau einer persönlichen Überlebens-Bias freien Datenbestand durch das Sammeln von Daten vom aktuellen Punkt an zu starten. Nach 3-4 Jahren, haben Sie eine solide Überleben-Bias Kostenlos werden aus Aktien Daten, mit denen, um weitere Strategien Backtest. Betrachten wir nun bestimmten psychologischen Phänomenen, die Ihr Trading-Performance beeinflussen können. Betrachten wir nun bestimmten psychologischen Phänomenen, die Ihr Trading-Performance beeinflussen können. Psychologische Tolerance Bias Diese besondere Phänomene ist nicht oft im Rahmen der quantitativen Handel diskutiert. Es wird jedoch ausführlich in Bezug auf mehr diskretionären Trading-Methoden diskutiert. Es hat verschiedene Namen, aber Ive beschlossen, nennen psychische Toleranz Bias, weil es den Kern des Problems erfasst. Bei der Erstellung von Backtests über einen Zeitraum von 5 Jahren oder mehr, ist es leicht, auf einer nach oben verlaufenden Equity-Kurve aus, berechnen die durchschnittliche jährliche Rendite, Sharpe-Ratio und sogar Drawdown Eigenschaften und werden mit den Ergebnissen zufrieden. Als ein Beispiel könnte die Strategie eine maximale relative Verlust von 25% und eine maximale Absenkung Dauer von 4 Monaten besitzen. Dies wäre nicht untypisch für eine Momentum-Strategie sein. Es ist einfach, sich davon zu überzeugen, dass es einfach ist, solche Perioden von Verlusten zu tolerieren, weil das Gesamtbild ist rosig. In der Praxis ist es jedoch viel schwieriger! Wenn historischen Drawdowns von 25% oder mehr in den Backtests auftritt, dann aller Wahrscheinlichkeit nach werden Sie sehen, Perioden ähnlichen Verlust in Live-Trading. Diese Perioden der Drawdown psychologisch schwer zu ertragen. Ich habe aus erster Hand, was eine erweiterte Drawdown aussehen kann, in einem institutionellen Rahmen zu beobachten, und es ist nicht angenehm, auch wenn die Backtests deuten darauf hin, solche Perioden auftreten. Der Grund, warum ich es eine Vorspannung bezeichnet ist, dass oft eine Strategie, die auf andere Weise erfolgreich sein würde, ist aus dem Handel in Zeiten der erweiterten Drawdown gestoppt und somit erhebliche Underperformance führen, im Vergleich zu einem Backtest. Obwohl also die Strategie algorithmische in der Natur, psychologische Faktoren können noch einen starken Einfluss auf die Rentabilität. Der Lieferservice ist, um sicherzustellen, dass, wenn Sie Drawdowns von einem bestimmten Prozentsatz und Dauer in den Backtests zu sehen, dann sollte man erwarten, dass sie in Live-Trading-Umgebungen auftreten und müssen, um die Profitabilität wieder zu erreichen beharren. Software-Pakete für die Backtesting Die Softwarelandschaft zur Strategie Backtesting ist riesig. Die Lösungen reichen von vollständig integrierten institutionellen Grade hoch entwickelte Software bis hin zu Programmiersprachen wie C ++, Python und R, wo fast alles muss von Grund auf neu (oder erhalten geeignete Plugins) geschrieben werden. Wie Quant Trader sind wir daran interessiert in der Bilanz der in der Lage, unseren Handels Technologie-Stack im Vergleich zu der Geschwindigkeit und Zuverlässigkeit unserer Entwicklungsmethodik besitzen. Hier sind die wichtigsten Überlegungen für die Software-Auswahl: Programmierkenntnisse Die Wahl der Umgebung wird in einem großen Teil nach unten kommen, um Ihre Fähigkeit, Software-Programm. Ich würde behaupten, dass die Kontrolle des Gesamtstapels wird eine größere Wirkung auf Ihre langfristige Outsourcing-PL als so viel wie möglich, Software-Anbieter haben. Dies ist aufgrund der Verlustrisiko mit externen Fehler oder Eigenheiten, die Sie nicht in händlerspezifische Software zu beheben sind, die sonst leicht behoben würden, wenn Sie mehr Kontrolle über Ihre Tech-Stack zu haben. Sie wollen auch ein Umfeld, das die richtige Balance zwischen Produktivität, Bibliothek Verfügbarkeit und Geschwindigkeit der Ausführung trifft. Ich meine eigene persönliche Empfehlung unten. Execution Capability / Broker Wechselwirkungen Bestimmte Backtesting-Software wie Tradestation, in unmittelbarem Zusammenhang mit einer Vermittlung. Ich bin kein Fan von diesem Ansatz, wie Senkung der Transaktionskosten sind oft ein großer Bestandteil des Erhaltens einer höheren Sharpe Ratio. Wenn youre in einem bestimmten Broker (und Trade zwingt Sie, dies zu tun) gebunden ist, dann haben Sie eine härtere Zeit der Umstellung auf eine neue Software (oder einer neuen Broker), wenn die Notwendigkeit entsteht. Interactive Brokers bieten eine API, die robust ist, wenn auch mit einem etwas stumpfen Oberfläche. Customisation Eine Umgebung wie MATLAB oder Python gibt Ihnen ein hohes Maß an Flexibilität bei der Erstellung von algo Strategien, wie sie bieten fantastische Bibliotheken für nahezu jede mathematische Operation vorstellen kann, sondern auch umfangreiche Anpassungen zu ermöglichen, wo nötig. Strategie Komplexität Bestimmte Software gerade nicht ausgeschnitten für schwere Zahlenverarbeitung oder mathematische Komplexität. Excel ist ein solches Stück Software. Während es gut für einfachere Strategien ist, kann es nicht wirklich mit zahlreichen Vermögenswerten oder komplizierter Algorithmen, mit Geschwindigkeit zu bewältigen. Bias Minimierung Hat ein bestimmtes Stück Software oder Daten eignen sich mehr zum Handel Vorurteile? Sie müssen sicherstellen, dass, wenn Sie alle Funktionen selbst erstellen, dass Sie nicht vorstellen Bugs, die zu Verzerrungen führen können soll. Geschwindigkeit der Entwicklung Eine shouldnt müssen Monate und Monate verbringen die Implementierung eines Backtest-Engine. Prototyping sollte nur ein paar Wochen. Stellen Sie sicher, dass Ihre Software wird Ihre Fortschritte in großem Umfang nicht zu behindern, nur um ein paar zusätzliche Prozentpunkte des Ausführungsgeschwindigkeit zu greifen. C ++ ist der Elefant im Raum hier! Geschwindigkeit der Ausführung Wenn Ihre Strategie ist völlig abhängig von der Ausführung Aktualität (wie in HFT / UHFT) dann eine Sprache wie C oder C ++ erforderlich. Allerdings werden Sie grenzt werden auf Linux-Kernel-Optimierung und FPGA-Auslastung für diesen Domänen, die nicht in den Anwendungsbereich dieses Artikels ist! Kosten Viele der Software-Umgebungen, die Sie algorithmischen Handelsstrategien zu programmieren mit völlig frei und Open Source. In der Tat machen viele Hedge-Fonds den Einsatz von Open Source Software für ihre gesamte algo Handels Stacks. Darüber hinaus, Excel und MATLAB sind beide relativ günstig und es gibt sogar kostenlose Alternativen zu jedem. Jetzt, da wir die Kriterien, mit denen wir unsere Software-Infrastruktur zu wählen aufgeführt, möchte ich einige der populäreren Pakete und wie laufen sie zu vergleichen: Anmerkung: Ich werde nur Software, die auf den meisten Einzelhandels Praktiker und erhältlich sind: Software-Entwickler, denn dies ist die Leserschaft von der Website. Während andere Software ist wie die weitere institutionelle Grade-Tools zur Verfügung, fühle ich diese zu teuer, um effektiv in einem Einzelhandelseinstellung verwendet werden sollen, und ich persönlich habe keine Erfahrung mit ihnen. Beschreibung . WYSIWYG (what-you-see-is-what-you-get) Tabellenkalkulations-Software. Extrem weit verbreitet in der Finanzindustrie. Daten und Algorithmen sind eng gekoppelt. Ausführung . Ja, Excel kann in die meisten Maklerfirmen gebunden werden. Anpassung . VBA-Makros ermöglichen erweiterte Funktionalität auf Kosten versteckt Umsetzung. Strategie Komplexität. Weiter fortgeschrittene statistische Instrumente sind schwieriger zu implementieren, wie es Strategien, mit vielen Hunderten von Vermögenswerten. Bias Minimierung. Look-Ahead-Bias ist einfach über Zell-Highlighting-Funktionalität (vorausgesetzt, keine VBA) zu erkennen. Entwicklungsgeschwindigkeit. Schnell grundlegende Strategien umzusetzen. Ausführungsgeschwindigkeit. Langsame Ausführungsgeschwindigkeit eignet sich nur für niedrigere Frequenzstrategien. Kosten . Billige oder kostenlose (je nach Lizenz). Alternativen. Openoffice Beschreibung . Programmierumgebung, die ursprünglich für Numerische Mathematik, Physik und Ingenieurwissenschaften entwickelt. Sehr gut auf vektorisiert Operationen und solche, die numerischen linearen Algebra geeignet. Bietet eine breite Palette von Plug-ins für Quant-Handel. Weit verbreitet in der quantitativen Hedgefonds. Ausführung . Keine native Ausführung Fähigkeit, MATLAB erfordert eine separate Ablaufsystem. Anpassung . Riesige Palette von Community-Plugins für nahezu alle Bereiche der Numerischen Mathematik. Strategie Komplexität. Viele fortgeschrittene statistische Methoden bereits vorhanden und gut getestet. Bias Minimierung. Schwieriger, Look-Ahead-Bias zu erkennen, erfordert umfangreiche Tests. Entwicklungsgeschwindigkeit. Short-Skripte können anspruchsvolle Backtests einfach zu erstellen. Ausführungsgeschwindigkeit. Unter der Annahme einer vektorisiert / parallelisierten Algorithmus wird MATLAB hoch optimiert. Schlechte für traditionelle wiederholt Schleifen. Kosten . Beschreibung . Hochsprache für die Geschwindigkeit der Entwicklung gestaltet. Breite Palette von Bibliotheken für nahezu jede programmatische Aufgabe vorstellen kann. Eine breitere Akzeptanz in Hedgefonds und Investmentbank-Community. Nicht ganz so schnell, wie C / C ++ für die Ausführungsgeschwindigkeit. Ausführung . Python Plugins gibt es für größere Makler, wie Interactive Brokers. Daher Backtest und Ausführungssystem können alle Teil der gleichen Tech-Stack. Anpassung . Python hat eine sehr gesunde Entwicklung der Gemeinschaft und ist eine ausgereifte Sprache. NumPy / SciPy bieten schnellen wissenschaftlichen Rechnens und statistische Analyse-Tools für Quant Handel nicht massgeblich. Strategie Komplexität: Viele Plugins gibt es für die wichtigsten Algorithmen, aber nicht ganz so groß ein Quant-Community für MATLAB besteht. Bias Minimierung. Gleichen Bias-Minimierung Probleme bestehen wie bei jedem Hochsprache. Müssen extrem vorsichtig über das Testen zu sein. Entwicklungsgeschwindigkeit. Pythons Hauptvorteil ist die Entwicklungsgeschwindigkeit, mit robuster in in Testmöglichkeiten gebaut. Ausführungsgeschwindigkeit. Nicht ganz so schnell, wie C ++, aber Scientific Computing-Komponenten optimiert und Python kann zu nativen C-Code mit bestimmten Plugins zu sprechen. Kosten . Free / Open Source-Alternativen. Rubin. Erlang. Haskell Beschreibung . Umwelt für fortgeschrittene statistische Methoden und Zeitreihenanalyse konzipiert. Breite Palette von spezifischen statistischen, ökonometrische und native Grafik-Toolsets. Große Entwickler-Community. Ausführung . R besitzt Plugins, um einige Makler, insbesondere Interactive Brokers. Damit eine End-to-End-System kann vollständig in R. Individualisierungs geschrieben. R kann mit jedem Paket gestaltet werden, aber seine Stärken liegen in statistischer / ökonometrischer Domains. Strategie Komplexität. Meist sinnvoll, wenn die Durchführung ökonometrischen, statistische oder maschinenLernStrategien aufgrund von verfügbaren Plugins. Bias Minimierung. Ähnliche Niveau der Bias-Möglichkeit für jeden Hochsprache wie Python oder C ++. So Tests durchgeführt werden müssen. Entwicklungsgeschwindigkeit. R ist eine schnelle Schreibstrategien, die auf statistischen Methoden. Ausführungsgeschwindigkeit. R ist langsamer als C ++, bleibt aber für vektorisiert Operationen relativ optimiert (als mit MATLAB). Kosten . Free / Open Source-Alternativen. SPSS. Stata Beschreibung . Ältere, Hochsprache für die Geschwindigkeit der Ausführung gestaltet. Breite Palette von Quantitative Finance und numerische Bibliotheken. Schwerer zu debuggen und oft dauert länger zu implementieren als Python oder MATLAB. Sehr weit verbreitet sowohl in der Kauf - und Verkaufsseite. Ausführung . Die meisten Broker-APIs werden in C ++ und Java geschrieben. So gibt es viele Plugins. Anpassung . C / C ++ ermöglicht den direkten Zugriff auf die zugrunde liegenden Speicher können damit Ultra-Hochfrequenz-Strategien umgesetzt werden. Strategie Komplexität. C ++ STL bietet breite Palette von optimierten Algorithmen. Nahezu jede spezialisierte mathematischen Algorithmus besitzt eine kostenlose Open-Source-C / C ++ Anwendung auf dem Netz. Bias Minimierung. Look-Ahead-Bias kann schwierig zu beseitigen sein, aber nicht schwieriger als andere Hochsprache. Gute Debugging-Tools, aber man muss vorsichtig sein, wenn es sich um zugrunde liegenden Speicher. Entwicklungsgeschwindigkeit. C ++ ist ganz verbose für den gleichen algorithmm Vergleich zu Python oder MATLAB. Weitere Linien-of-Code (LOC) führt häufig zu größeren Wahrscheinlichkeit von Fehlern. Ausführungsgeschwindigkeit. C / C ++ ist eine extrem schnelle Ausführungsgeschwindigkeit und kann auch für bestimmte Rechenarchitekturen optimiert werden. Dies ist der Hauptgrund, um sie zu nutzen. Kosten . Verschiedene Compiler: Linux / GCC ist kostenlos, hat MS Visual Studio unterschiedlichen Lizenzen. Alternativen. C #. Java. Scala Verschiedene Strategien werden verschiedene Softwarepakete erfordern. HFT und UHFT Strategien werden in C / C ++ (in diesen Tagen sind sie oft auf GPUs und FPGAs durchgeführt) geschrieben werden, während niederfrequente Richtungsaktienstrategien sind einfach zu in Tradestation zu implementieren, durch die alle in einer Art der Software / Brokerage. Meine persönliche Präferenz ist für Python da sie das richtige Maß an Anpassung, die Geschwindigkeit der Entwicklung, Testfähigkeit und Ausführungsgeschwindigkeit für meine Bedürfnisse und Strategien. Wenn ich etwas brauchen schneller, kann ich in den C ++ direkt von meinem Python-Programme fallen. Eine Methode, die von vielen Quant Trader begünstigt ist, ihre Strategien in Python Prototypen und dann auf iterative Weise wandeln die langsamere Ausführungsabschnitte, um C ++. Schließlich wird die gesamte algo ist in C ++ geschrieben und kann in Ruhe gelassen zu handeln werden! In den nächsten Artikel über Backtesting werden wir einen Blick auf einige spezielle Fragen rund um die Implementierung einer algorithmischen Handel Backtesting-System, als auch, wie man die Auswirkungen von Handelsbörsen integrieren. Wir werden Strategie Leistungsmessung zu diskutieren und schließlich mit einem Beispiel Strategie abschließen. - Von Michael Hallen-Moore von QuantStart


No comments:

Post a Comment