Was ist Backtesting. Backtesting ist der Prozess der Prüfung einer Trading-Strategie auf relevante historische Daten, um ihre Lebensfähigkeit zu gewährleisten, bevor der Trader Risiken eines tatsächlichen Kapitals Ein Trader kann den Handel einer Strategie über einen angemessenen Zeitraum zu simulieren und analysieren die Ergebnisse für die Ebenen Von Profitabilität und Risiko. BREAKING DOWN Backtesting. If die Ergebnisse erfüllen die notwendigen Kriterien, die für den Händler akzeptabel sind, kann die Strategie dann mit einem gewissen Grad an Vertrauen implementiert werden, dass es zu Gewinnen führen wird Wenn die Ergebnisse sind weniger günstig, kann die Strategie Modifiziert, angepasst und optimiert werden, um die gewünschten Ergebnisse zu erzielen, oder es kann komplett verschrottet werden. Eine erhebliche Menge des Volumens, das auf dem heutigen Finanzmarkt gehandelt wird, wird von Händlern durchgeführt, die eine Art Computerautomatisierung verwenden. Dies gilt insbesondere für Handelsstrategien Auf technische Analyse Backtesting ist ein integraler Bestandteil der Entwicklung eines automatisierten Handelssystems. Meaningful Backtesting. Wenn es richtig gemacht, Backtesting kann ein unschätzbares Werkzeug für Entscheidungen über die Verwendung einer Handelsstrategie Die Probe Zeitraum, auf dem ein Backtest durchgeführt wird, ist Kritisch Die Dauer des Sample-Zeitraums sollte lang genug sein, um Perioden unterschiedlicher Marktbedingungen einschließlich Aufwärtstrends, Abwärtstrends und reibungsgebundenen Handel einzubeziehen. Ein Test auf nur einer Art von Marktbedingung kann zu einzigartigen Ergebnissen führen, die möglicherweise nicht gut auf anderen Märkten funktionieren Bedingungen, die zu falschen Schlussfolgerungen führen können. Die Stichprobengröße in der Anzahl der Trades in den Testergebnissen ist ebenfalls entscheidend Wenn die Stichprobenanzahl zu klein ist, kann der Test nicht statistisch signifikant sein. Eine Probe mit zu vielen Geschäften zu lang Eine Periode kann optimierte Ergebnisse produzieren, in denen eine überwältigende Zahl von Sieger-Trades um eine bestimmte Marktbedingung oder Trend, die für die Strategie günstig ist, verschmelzen kann. Dies kann auch dazu führen, dass ein Händler irreführende Schlussfolgerungen zu ziehen. Keeping it Real. A Backtest sollte die Realität widerspiegeln Bestes mögliches Trading-Kosten, die sonst von den Händlern als geringfügig vernachlässigbar angesehen werden können, können einen erheblichen Einfluss haben, wenn die Gesamtkosten über die gesamte Backtesting-Periode berechnet werden. Diese Kosten beinhalten Provisionen, Spreads und Rutschen, und sie könnten den Unterschied zwischen ihnen bestimmen Ob eine Handelsstrategie rentabel ist oder nicht Die meisten Backtesting-Software-Pakete beinhalten Methoden, um diese Kosten zu berücksichtigen. Vielleicht ist die wichtigste Metrik mit Backtesting verbunden ist die Strategie s Ebene der Robustheit Dies wird durch den Vergleich der Ergebnisse eines optimierten Back-Test in einem bestimmten erreicht Sample-Zeitraum, der als in-Sample mit den Ergebnissen eines Backtests mit der gleichen Strategie und Einstellungen in einem anderen Sample-Zeitraum bezeichnet wird, der als Out-of-Sample bezeichnet wird Wenn die Ergebnisse ähnlich rentabel sind, dann kann die Strategie als erachtet werden Gültig und robust, und es ist bereit, in Echtzeit-Märkte implementiert werden Wenn die Strategie scheitert in out-of-sample Vergleiche, dann die Strategie braucht weitere Entwicklung, oder es sollte ganz aufgegeben werden. Überblick Diese kostenlose Bildungs-Website ist vorgesehen Erlauben Sie, populäre technische Handelsstrategien so wissenschaftlich wie möglich durch Backtesting zu vergleichen Im Allgemeinen ist es ziemlich hart, den Markt konsequent zu schlagen und Sie sollten skeptisch sein von irgendetwas, das Ihnen sonst sagt. Diese Aufstellungsort erlaubt Ihnen, einige allgemeine technische Strategien zu überprüfen, um zu sehen, wie Sie hätten gegen den Markt gespielt und können sie auf die Aktien, die Ihre Trading-Kriterien erfüllen Strategien, die Backtest gut, natürlich nicht garantieren, Erfolg vorwärts gehen, könnte aber eine höhere Wahrscheinlichkeit der Durchführung von gut Backtesting auch ermöglicht es Ihnen, den Markt zu sehen Bedingungen, in denen eine bestimmte Strategie gut ausführen wird Zum Beispiel, wenn Sie zuversichtlich, der Markt wird reichen gebunden vorwärts gehen, können Sie herausfinden, welche Strategien am besten in dieser Art von Markt Dies geschieht durch Backtesting über historische Zeitrahmen, die Reichweite gebunden wurden Und sehen, welche Strategien am besten Backtesting auch hilft Ihnen zu sehen, welche Strategie-Parameter sind die meisten robust über verschiedene Zeiträume Zum Beispiel, ein 10 Stop-Verlust übertreffen eine 5 Stop-Verlust 9 historischen Zeiträume von 10 So kann Backtesting wertvolle Trading bieten Einblicke, obwohl es die Zukunft nicht garantieren kann. Einige interessante Dinge, die Sie vielleicht entdecken Die Kombination aus aktivem Handel und Provisionen kann Sie auslöschen, auch wenn Sie einen guten Prozentsatz der Siegertätigkeiten haben. Wirklich enge Nachlaufstopps können Ihre langfristige Rentabilität ernsthaft verletzen und nicht Reduzieren Drawdown so viel wie Sie vielleicht erwarten Strategien, die Sie dachten, wäre gut, dass konsequent unterdurchschnittlich der Markt. Directions Single Stock Backtesting Wählen Sie die Aktie, die Sie wollen backtest Ihre technische Strategie on. Starting Capital Betrag des Geldes Sie beginnen mit. Stoploss Point, an dem Sie Ich möchte aus einer Position herauskommen, die sich gegen dich bewegt Ein normaler Stopp bedeutet, dass du aus deiner Position herauskommst, wenn der Vorrat einen festgelegten Prozentsatz unterhalb liegt, wo du ihn gekauft hast. Nachlaufstopp Lass uns sagen, du kaufst eine Aktie bei 10 und steckst ein 10 Nachlauf ein Stoppen Wenn die Aktie 10 fällt, ohne jemals höher zu gehen, werden Sie bei 9 zu verkaufen. Aber wenn die Aktie bis zu 15 geht dann 10 bis 13 5, werden Sie bei 13 5 zu verkaufen und in einigen der Gewinn zu sperren. Target Verkaufen, wenn Ihr Lager Erreicht einen bestimmten prozentualen Gewinn Kann ausschalten, indem du Don t benutest Target. Start Date End Date Wählen Sie die historischen Daten, zwischen denen Sie die Strategie testen möchten. Signale Signale beinhalten die Kreuzungen oder Beziehungen zwischen Preis und technische Indikatoren Zum Beispiel das goldene Kreuz , Kaufen, wenn die 50 Tage einfache gleitende durchschnittliche sma Kreuze über dem 200 Tage sma und verkaufen, wenn die 50 Tage kreuzt unter dem 200 Tage Todeskreuz Die folgenden Links erklären einige beliebte technische Indikatoren. Get Trades Graph Get Trades wird buchstäblich zeigen Ihnen die Trades Sie Hätte getan, wenn du rechtzeitig mit einer Zusammenfassung der Leistung zurückkamst. Die statistischen Tests Testen Sie, ob die durchschnittliche tägliche Rückkehr der Strategie die gleiche ist wie die durchschnittliche tägliche Rendite des SP 500 oder die gleiche wie die durchschnittliche tägliche Rendite Von zu kaufen und zu halten über die Zeitspanne Wir wollen wissen, wie zuversichtlich wir sein können, dass die beiden Renditen gleich sind Je höher das Vertrauen, desto sicherer kann man sein, dass Ihre Strategie ist eigentlich besser schlechter als die SP 500 oder kaufen und Halten Die Grafik zeigt den Wert des Portfolios im Laufe der Zeit mit einer enthaltenen Zusammenfassung der Performance. Directions PortTester Beta Dies ist für Backtesting eine Strategie, die Sie auf Ihr Portfolio als Aktien an Ihre technischen kaufen und verkaufen Signale In der ersten Textbox geben Sie Die Tickers für den Korb von Aktien, die Sie wollen, um Ihre technische Strategie zu betätigen Geben Sie jeden Ticker, der durch ein Leerzeichen getrennt ist. Zur Zeit verfügbar sind die 30 Dow-Bestände, AA AXP BA BAC CAT CSCO CVX DD DIS GE HD HPQ IBM INTC JNJ JPM KFT KO MCD MMM MRK MSFT PFE PG T TRV UTX VZ WMT XOM Um alle 30 in den Backtest einzuschließen, geben Sie einfach DJIA ein, der die Standardeinstellung ist. Ziel Nummer der offenen Positionen Dies ist die Anzahl der Bestände, in denen Sie eine Position haben möchten und nicht mehr , Sagen wir, dass du 2 offene Positionen ansprechen möchtest Wenn der Backtester ein Kaufsignal in einer der Bestände findet, die du in den Korb gelegt hast, sag GE, wird es davon ausgehen, dass GE gekauft wurde. Es wird nun für 1 weitere Aktien zu kaufen, wenn es gibt Ein Kaufsignal, sagen BAC Sie haben jetzt ein Portfolio von 2 offenen Positionen GE und BAC und der Backtester wird nicht mehr kaufen, bis ein Verkaufssignal einen der Aktien verkauft. Ein diversifiziertes Portfolio sollte wohl 10 oder mehr Aktien haben, aber das dauert ein Viel Rechenleistung zum Backtest So wird ein kleines Portfolio wie der Ausfall von 5 offenen Positionen genügen, um ein Gefühl für eine Strategie s Performance zu bekommen. Für Anleger mit einer kleinen Menge an Kapital sagen 10.000, ist es teuer, ein großes zu handeln Anzahl der Positionen mit 20 Provisionen für Rundreise-Trades ETFs sind ein günstiger Weg, um diversifiziert zu bekommen. Starting Capital Betrag des Geldes, mit dem Sie beginnen. Trading Kommission Betrag zahlen Sie TDAmeritrade, SOGO, ScottTrade, etc, um eine Aktie zu handeln. Position Sizing Dies ist, wie Sie entscheiden, eine bestimmte Menge an Geld für jeden Bestand in Ihrem Portfolio zu bezahlen Momentan nur eine Option Equal Cash Allokation ist verfügbar Dies bedeutet, wenn ich 10.000 habe und ich möchte 2 Positionen eingeben, werde ich 5000 in jedem weniger Provisionen setzen Mit anderen Worten, Cash-Gelder werden gleichmäßig auf neue Positionen geteilt, bis ich mein Ziel erreicht n Anzahl offener Positionen Andere Optionen zu kommen wird gleich Anzahl von Aktien und Volatilität basierte Position Dimensionierung rules. Stoploss Point, an dem Sie aus einer Position bewegen wollen Gegen dich Lass uns sagen, du kaufst eine Aktie bei 10 und steckst einen 10 nachlaufenden Stopp ein Wenn die Aktie 10 fällt, ohne jemals höher zu gehen, verkaufst du bei 9 Aber wenn die Aktie bis zu 15 geht dann um 10 bis 13 5, werden Sie Verkaufen bei 13 5 und verriegeln einen Teil des Gewinns. Startdatum Enddatum Wählen Sie die historischen Daten aus, zwischen denen Sie die Strategie testen möchten. Der Backtester startet am Startdatum in historischen Daten und durchsucht die Bestände, die Sie ausgewählt haben, bis er Geldstrafen hat Ein Kaufsignal Wenn am ersten Tag keine Kaufsignale gefunden werden, bewegt sich der Backtester zum nächsten Tag und durchsucht alle Bestände im Korb, bis ein Kaufsignal gefunden wird, in dem die Aktie zum engen Preis angenommen wird Für Splits und Dividenden Sobald eine Aktie gekauft wird, wird der Backtester schauen, um diesen Bestand zu verkaufen, wenn ein Verkaufssignal kommt. Es kommt auch weiterhin auf Aktien zu kaufen, bis die Zielzahl der offenen Positionen erreicht ist. Gleichzeitig wird es Verkauft irgendwelche vorhandenen Positionen, wenn ein Verkaufssignal auftritt Der Wert des Portfolios wird jeden Tag bis zum Enddatum berechnet. Signale Signale beinhalten die Kreuzungen oder die Beziehungen zwischen Preis und technischen Indikatoren Zum Beispiel das goldene Kreuz, kaufen, wenn die 50 Tage einfache gleitende Durchschnitt sma Kreuzt über dem 200-Tage-Sma und verkauft, wenn die 50-Tage-Kreuze unter dem 200-tägigen Todes-Cross. Get Trades Graph Get Trades wird buchstäblich zeigen Sie die Trades, die Sie gemacht hätten, wenn Sie zurück in der Zeit mit einer Zusammenfassung der Leistung inbegriffen Die Grafik-Plots Der Wert des Portfolios im Laufe der Zeit mit einer enthaltenen Zusammenfassung der Performance. Disclaimer nicht anerkennen oder empfehlen eine der Strategien oder Wertpapiere auf dieser Website Der Inhalt auf dieser Website ist zu Informationszwecken und ist nicht als Anlage Beratung ist nicht zu nehmen Haftbar gemacht werden für irgendwelche Fehler auf dieser Website oder Maßnahmen auf der Grundlage dieser Website s content. Successful Backtesting von algorithmischen Trading-Strategien - Teil I. Dieser Artikel setzt die Serie auf quantitativen Handel, die mit der Anfänger-Guide und Strategie-Identifizierung begann Von diesen längeren, mehr beteiligten Artikeln waren sehr beliebt, so werde ich in dieser Vene fortsetzen und geben Detail über das Thema der Strategie Backtesting. Algorithmische Backtesting erfordert Kenntnisse über viele Bereiche, einschließlich Psychologie, Mathematik, Statistik, Software-Entwicklung und Marktaustausch Mikrostruktur I Ich kann nicht hoffen, all diese Themen in einem Artikel zu decken, also gehe ich sie in zwei oder drei kleinere Stücke aufteilen. Was werden wir in diesem Abschnitt besprechen, werde ich mit der Definition von Backtesting beginnen und dann werde ich die Grundlagen dessen beschreiben, wie es ist Durchgeführt Ich werde dann auf die Vorurteile aufmerksam machen, die wir im Anfänger-Leitfaden zum quantitativen Handel anfingen. Als nächstes werde ich einen Vergleich der verschiedenen verfügbaren Backtesting-Software-Optionen vorstellen. In den folgenden Artikeln werden wir uns die Details der Strategie-Implementierungen ansehen, die oft kaum sind Erwähnt oder ignoriert Wir werden auch darüber nachdenken, wie wir den Backtesting-Prozess realistischer machen können, indem wir die Eigenheiten einer Handelsbörse einbeziehen. Dann werden wir die Transaktionskosten besprechen und wie man sie korrekt in einer Backtest-Einstellung modellieren wird. Wir werden mit einer Diskussion über die Leistung unserer Backtests und schließlich ein Beispiel für eine gemeinsame Quant-Strategie, bekannt als ein Mittel-reverting Paare Trade. Let s beginnen mit der Diskussion, was Backtesting ist und warum sollten wir es in unserem algorithmischen Handel. Was ist Backtesting. Algorithmischen Handel steht abgesehen von Andere Arten von Investmentklassen, weil wir zuverlässiger Erwartungen über die zukünftige Performance aus der Vergangenheit liefern können, als Folge einer reichen Datenverfügbarkeit. Der Prozess, mit dem dies durchgeführt wird, wird als Backtesting bezeichnet. In einfachen Worten wird das Backtesting durchgeführt, indem Sie Ihre Englisch: www. tab. fzk. de/en/projekt/zusammenf...ng/ab117.htm Ein spezieller Strategiealgorithmus zu einem Strom historischer Finanzdaten, der zu einem Satz von Handelssignalen führt Jeder Handel, den wir hier als Rundreise von zwei Signalen bedeuten werden, hat einen damit verbundenen Gewinn oder Verlust. Die Anhäufung dieses Gewinnverlustes über die Die Dauer Ihrer Strategie Backtest wird dazu führen, dass die Gesamtsumme und Verlust auch bekannt als die PL oder PnL Das ist die Essenz der Idee, obwohl natürlich der Teufel ist immer in den Details. Was sind die wichtigsten Gründe für Backtesting eine algorithmische Strategie. Filtration - Wenn Sie sich aus dem Artikel über Strategy Identification erinnern, war unser Ziel in der ersten Forschungsphase, eine Strategie-Pipeline einzurichten und dann jede Strategie herauszufiltern, die bestimmte Kriterien nicht erfüllt. Backtesting bietet uns einen weiteren Filtrationsmechanismus, da wir Strategien beseitigen können Erfülle nicht unseren Leistungsbedürfnissen. Modelling - Backtesting ermöglicht es uns, neue Modelle bestimmter Marktphänomene sicher zu testen, wie zB Transaktionskosten, Order Routing, Latenz, Liquidität oder andere Marktstrukturen. Optimierung - Obwohl die Strategieoptimierung mit Bias, Backtesting, Ermöglicht es uns, die Leistungsfähigkeit einer Strategie zu erhöhen, indem wir die Menge oder die Werte der mit dieser Strategie verbundenen Parameter ändern und deren Leistungsfähigkeit neu berechnen. Verifizierung - Unsere Strategien werden oft über unsere Strategiepipeline bezogen. Backtesting eine Strategie stellt sicher, dass es nicht falsch war Implementiert Obwohl wir selten Zugang zu den Signalen haben, die durch externe Strategien erzeugt werden, haben wir oft Zugriff auf die Performance-Metriken wie die Sharpe Ratio - und Drawdown-Merkmale. So können wir sie mit unserer eigenen Implementierung vergleichen. Backtesting bietet eine Vielzahl von Vorteilen für algorithmische Handel Es ist jedoch nicht immer möglich, eine Strategie ganz einfach zu testen. Im Allgemeinen, da die Häufigkeit der Strategie zunimmt, wird es schwieriger, die Mikrostruktureffekte des Marktes und des Austauschs korrekt zu modellieren. Dies führt zu weniger zuverlässigen Backtests und damit zu einer schwierigeren Auswertung Eine ausgewählte Strategie Dies ist ein besonderes Problem, bei dem das Ausführungssystem der Schlüssel zur Strategie-Performance ist, wie bei Ultra-Hochfrequenz-Algorithmen. Leider ist das Backtesting mit Vorurteilen aller Art verbunden. Wir haben einige dieser Themen in früheren Artikeln berührt, Aber wir werden uns jetzt ausführlich diskutieren. Biase, die die Strategie Backtests beeinflussen. Es gibt viele Vorurteile, die die Leistung einer rückgezahlten Strategie beeinflussen können. Leider haben diese Vorurteile die Tendenz, die Leistung aufzublasen, anstatt sie zu beeinträchtigen. So solltest du immer einen Backtest betrachten Um eine idealisierte Obergrenze für die tatsächliche Leistung der Strategie Es ist fast unmöglich, Bias aus algorithmischen Handel zu beseitigen, so ist es unsere Aufgabe, sie so gut wie möglich zu minimieren, um fundierte Entscheidungen über unsere algorithmischen Strategien zu treffen. Es gibt vier große Bias, die ich besprechen möchte Optimierung Bias Look-Ahead Bias Survivorship Bias und psychologische Toleranz Bias. Optimization Bias. This ist wahrscheinlich die heimlichste aller Backtest-Bias Es geht um die Anpassung oder Einführung zusätzlicher Handelsparameter, bis die Strategie-Performance auf dem Backtest-Datensatz ist Sehr attraktiv Doch einmal leben die Leistung der Strategie kann deutlich anders sein Ein anderer Name für diese Vorspannung ist Kurvenanpassung oder Daten-Snooping Bias. Optimierung Bias ist schwer zu beseitigen, da algorithmische Strategien oft viele Parameter enthalten Parameter In diesem Fall könnte der Eintrag sein Exit-Kriterien, Rückblickperioden, Mittelungsperioden, dh der gleitende Mittelglättungsparameter oder Volatilitätsmessfrequenz Optimierungsvorspannung kann minimiert werden, indem die Anzahl der Parameter auf ein Minimum reduziert und die Anzahl der Datenpunkte im Trainingssatz erhöht wird Achten Sie auch auf die letzteren, da ältere Ausbildungspunkte einer vorherigen Regelung wie einem regulatorischen Umfeld unterliegen können und somit möglicherweise nicht für Ihre aktuelle Strategie relevant sind. Eine Methode, um diese Vorliebe zu mildern, besteht darin, eine Sensitivitätsanalyse durchzuführen Parameter inkrementell und plotten eine Oberfläche der Leistung Sound, grundlegende Argumentation für Parameter Entscheidungen sollte, mit allen anderen Faktoren berücksichtigt, um eine glattere Parameteroberfläche Wenn Sie eine sehr jumpy Performance-Oberfläche haben, bedeutet dies oft, dass ein Parameter nicht reflektiert ein Phänomen und Ist ein Artefakt der Testdaten Es gibt eine umfangreiche Literatur über multidimensionale Optimierungsalgorithmen und es ist ein sehr aktives Forschungsgebiet, das ich hier nicht gewohnt habe, aber behalte es im Hinterkopf, wenn du eine Strategie findest Ein fantastischer Backtest. Look-Ahead Bias. Look-ahead Bias wird in ein Backtesting-System eingeführt, wenn zukünftige Daten versehentlich in einem Punkt in der Simulation enthalten sind, wo diese Daten nicht tatsächlich verfügbar gewesen wäre Wenn wir den Backtest chronologisch laufen und wir erreichen Zeitpunkt N, dann schaut vorsichtig vor, wenn Daten für jeden Punkt N k enthalten sind, wobei k 0 Vorausschauende Vorspannungsfehler können unglaublich subtil sein Hier sind drei Beispiele dafür, wie die Vorausschau vorgestellt werden kann. Technische Bugs - Arrays Vektoren im Code haben oft Iteratoren oder Indexvariablen. Falsche Offsets dieser Indizes können zu einer Vorausschau-Vorspannung führen, indem sie Daten bei N k für Nicht-Null-k. Parameter-Berechnung einbeziehen. Ein weiteres gemeinsames Beispiel für die Vorausschau-Bias tritt bei der Berechnung der optimalen Strategie auf Parameter, wie z. B. bei linearen Regressionen zwischen zwei Zeitreihen Wenn der gesamte Datensatz mit zukünftigen Daten zur Berechnung der Regressionskoeffizienten verwendet und damit rückwirkend auf eine Handelsstrategie für Optimierungszwecke angewendet wird, werden zukünftige Daten eingebaut und ein Blick voraus Bias existiert. Maxima Minima - Bestimmte Handelsstrategien nutzen Extremwerte in jedem beliebigen Zeitraum, wie zB die Einbeziehung der hohen oder niedrigen Preise in OHLC-Daten Da diese maximalen Minimalwerte nur am Ende eines Zeitraums berechnet werden können, a Wenn diese Werte verwendet werden - in der laufenden Periode Es ist immer notwendig, hohe Niedrigwerte um mindestens eine Periode in einer Handelsstrategie zu verlagern, die sie nutzen. Bei Optimierungsvorspannung muss man sehr vorsichtig sein Um ihre Einführung zu vermeiden Es ist oft der Hauptgrund, warum Handelsstrategien ihre Backtests deutlich im Live-Handel unterschätzen. Survivorship Bias. Survivorship Bias ist ein besonders gefährliches Phänomen und kann zu erheblich aufgeblasenen Performance für bestimmte Strategie-Typen führen Es kommt vor, wenn Strategien auf Datensätzen getestet werden Die nicht das volle Universum der vorherigen Vermögenswerte einschließen, die zu einem bestimmten Zeitpunkt gewählt worden sein können, aber nur die betrachten, die zur gegenwärtigen Zeit überlebt haben. Als ein Beispiel betrachten Sie, eine Strategie auf einer gelegentlichen Auswahl von Aktien vor und zu prüfen Nach dem Markt-Crash von 2001 Einige Technologie-Aktien gingen in Konkurs, während andere es geschafft, über Wasser zu bleiben und sogar gedeihen Wenn wir diese Strategie nur auf Aktien beschränkt hätten, die es durch den Markt-Drawdown-Zeitraum gemacht haben, würden wir eine Überlebens-Bias einführen, weil sie bereits gezeigt haben Ihr Erfolg für uns In der Tat ist dies nur ein weiterer konkreter Fall von Look-Ahead Bias, da zukünftige Informationen in vergangene Analyse integriert werden. Es gibt zwei Möglichkeiten, um Überlebensstörung in Ihrer Strategie Backtests zu mildern. Survivorship Bias Free Datasets - In der Fall von Equity-Daten ist es möglich, Datensätze zu kaufen, die eingetragene Entitäten enthalten, obwohl sie nicht billig sind und nur dazu neigen, von institutionellen Firmen genutzt werden. Insbesondere Yahoo-Finanzdaten sind NICHT Überlebensvorspannung frei, und dies wird häufig von vielen Einzelhandelsalgo verwendet Trader Man kann auch auf Asset-Klassen handeln, die nicht anfällig für Überlebens-Bias sind, wie z. B. bestimmte Rohstoffe und ihre zukünftigen Derivate. Mehr aktuellere Daten - Im Falle von Aktien macht die Nutzung eines neueren Datensatzes die Möglichkeit, dass die Aktienauswahl gewählt wird Wird den Überlebenden gewichtet, so wie es weniger Wahrscheinlichkeit für die Bestandsbestände in kürzeren Zeiträumen gibt. Man kann auch mit dem Aufbau eines persönlichen Überlebens-Bias-freien Datensatzes beginnen, indem er Daten vom aktuellen Punkt an sammelt. Nach 3-4 Jahren haben Sie ein solides Überleben - bias freie Menge von Aktien Daten, mit denen, um weitere Strategien zu unterstützen. Wir werden nun betrachten bestimmte psychologische Phänomene, die Ihre Trading-Performance beeinflussen können. Psychologische Toleranz Bias. This besondere Phänomene wird nicht oft diskutiert im Kontext der quantitativen Handel Es wird jedoch diskutiert Ausgiebig in Bezug auf mehr diskretionäre Handelsmethoden Es hat verschiedene Namen, aber ich habe entschieden, es psychologische Toleranz Bias nennen, weil es das Wesen des Problems erfasst Bei der Erstellung von Backtests über einen Zeitraum von 5 Jahren oder mehr, ist es einfach, auf eine Nach oben laufende Aktienkurve, berechnen die zusammengesetzte jährliche Rendite, Sharpe-Ratio und sogar Drawdown-Merkmale und mit den Ergebnissen zufrieden sein. Beispielsweise könnte die Strategie einen maximalen relativen Drawdown von 25 und eine maximale Drawdown-Dauer von 4 Monaten besitzen. Das wäre nicht atypisch Für eine Impulsstrategie Es ist einfach, sich davon zu überzeugen, dass es leicht ist, solche Perioden von Verlusten zu tolerieren, weil das Gesamtbild rosig ist. Allerdings ist es in der Praxis viel schwieriger. Wenn historische Drawdowns von 25 oder mehr in den Backtests auftreten, dann in Alle Wahrscheinlichkeiten, die Sie sehen werden Perioden von ähnlichem Drawdown im Live-Handel Diese Perioden des Drawdowns sind psychologisch schwer zu ertragen Ich habe aus erster Hand gesehen, was ein verlängerter Drawdown sein kann, in einer institutionellen Einstellung, und es ist nicht angenehm - auch wenn die Backtests vorschlagen Solche Perioden werden auftreten Der Grund, warum ich es als eine Bias bezeichnet habe, ist, dass oft eine Strategie, die sonst erfolgreich wäre, vom Handel in Zeiten des erweiterten Drawdowns gestoppt wird und somit zu einer signifikanten Underperformance im Vergleich zu einem Backtest führen wird. Obwohl die Strategie algorithmisch ist In der Natur können psychologische Faktoren immer noch einen starken Einfluss auf die Rentabilität haben. Der Mitnahm ist sicherzustellen, dass, wenn man Abfälle eines bestimmten Prozentsatzes und einer Dauer in den Backtests sieht, dann sollten Sie erwarten, dass sie in Live-Trading-Umgebungen auftreten und müssen beharren Um die Rentabilität noch einmal zu erreichen. Software-Pakete für Backtesting. Die Software-Landschaft für Strategie-Backtesting ist ein breites Spektrum von voll integrierten institutionellen Grade anspruchsvolle Software bis hin zu Programmiersprachen wie C, Python und R, wo fast alles von Grund auf neu geschrieben werden muss Oder passende Plugins Als Quellhändler sind wir an der Balance interessiert, unseren Trading-Technologie-Stack im Vergleich zu der Geschwindigkeit und Zuverlässigkeit unserer Entwicklungsmethodik zu besitzen. Hier sind die wichtigsten Überlegungen für die Software-Auswahl. Programming Skill - Die Wahl der Umgebung wird in einem Große Teil kommen auf Ihre Fähigkeit, Software zu programmieren Ich würde argumentieren, dass die Kontrolle über die gesamte Stack wird eine größere Wirkung auf Ihre langfristige PL als Outsourcing so viel wie möglich zu Anbieter Software Dies ist aufgrund der nach unten Risiko von externen Bugs oder Idiosynkrasien, die Sie nicht in der Vendor-Software zu beheben, die sonst leicht behoben werden würde, wenn Sie mehr Kontrolle über Ihren Tech-Stack haben Sie wollen auch eine Umgebung, die die richtige Balance zwischen Produktivität, Verfügbarkeit der Bibliothek und Geschwindigkeit der Ausführung schlägt Ich mache meine Eigene persönliche Empfehlung unten. Execution Capability Broker Interaction - Bestimmte Backtesting-Software, wie Tradestation, verbindet sich direkt mit einem Brokerage Ich bin kein Fan von diesem Ansatz als Reduzierung Transaktionskosten sind oft ein großer Bestandteil der immer eine höhere Sharpe-Verhältnis Wenn Sie re Gebunden in einen bestimmten Broker und Tradestation zwingt dich dazu, dies zu tun, dann wirst du eine härtere Zeit haben, auf neue Software oder einen neuen Makler zu wechseln, wenn die Notwendigkeit entsteht Interaktive Broker bieten eine API, die robust ist, wenn auch mit einer leicht stumpfen Schnittstelle. Kunden - Eine Umgebung wie MATLAB oder Python bietet Ihnen viel Flexibilität bei der Erstellung von Algo-Strategien, da sie fantastische Bibliotheken für nahezu jede mathematische Vorgehensweise vorstellen können, aber auch eine umfangreiche Anpassung, wenn nötig. Strategie Komplexität - Bestimmte Software ist einfach nicht für große Zahl ausgeschnitten Knacken oder mathematische Komplexität Excel ist ein solches Stück Software Während es für einfachere Strategien gut ist, kann es nicht wirklich mit zahlreichen Vermögenswerten oder komplizierteren Algorithmen fertig werden, bei speed. Bias Minimierung - Gibt es ein bestimmtes Stück Software oder Daten mehr zum Handel Bias Sie müssen sicherstellen, dass, wenn Sie alle Funktionalität selbst erstellen wollen, dass Sie nicht vorstellen, Bugs, die zu Biases führen können. Speed of Development - Man sollte nicht Monate Monate verbringen, um eine Backtest-Engine Prototyping sollte nur nehmen Ein paar Wochen Stellen Sie sicher, dass Ihre Software nicht behindern Ihre Fortschritte in einem großen Umfang, nur um ein paar zusätzliche Prozentpunkte der Ausführung Geschwindigkeit C ist der Elefant in den Raum hier. Speed of Execution - Wenn Ihre Strategie ist völlig abhängig von der Ausführung Timeliness wie in HFT UHFT dann eine Sprache wie C oder C wird notwendig sein Allerdings werden Sie auf Linux-Kernel-Optimierung und FPGA-Nutzung für diese Domains, die außerhalb des Rahmens dieses Artikels ist. Kosten - viele der Software-Umgebungen, die Sie können algorithmische Handelsstrategien programmieren, sind völlig frei und offene Quelle In der Tat, viele Hedge-Fonds nutzen Open-Source-Software für ihre gesamte Algo Trading Stacks Darüber hinaus sind Excel und MATLAB beide relativ billig und es gibt sogar freie Alternativen zu jedem. Nun, da wir die Kriterien aufgelistet haben, mit denen wir unsere Software-Infrastruktur auswählen müssen, möchte ich einige der populärsten Pakete durchlaufen und wie sie vergleichen. Hinweis bin ich nur Software, die für die meisten Einzelhandels-Praktiker und Software zur Verfügung steht Entwickler, da dies die Leserschaft des Aufstellungsortes ist, während andere Software vorhanden ist, wie die mehr institutionellen Gradwerkzeuge, glaube ich, dass diese zu teuer sind, um effektiv in einem Einzelhandelseinsatz benutzt zu werden, und ich persönlich habe keine Erfahrung mit ihnen. Backtesting Software Vergleich. Beschreibung High-Level-Sprache für die Geschwindigkeit der Entwicklung Wide Array von Bibliotheken für fast jede programmatische Aufgabe vorstellbar Gewinnen breitere Akzeptanz in Hedge-Fonds und Investment-Bank-Community Nicht ganz so schnell wie CC für die Ausführung speed. Execution Python-Plugins gibt es für größere Broker, wie zum Beispiel Interaktive Broker Daher Backtest und Execution System können alle Teil der gleichen Tech-Stack. Customisation Python hat eine sehr gesunde Entwicklungs-Community und ist eine reife Sprache NumPy SciPy bieten schnelle wissenschaftliche Computing und statistische Analyse-Tools relevant für quant trading. Strategy Komplexität Viele Plugins gibt es Für die wichtigsten Algorithmen, aber nicht ganz so groß eine Quant-Community wie existiert für MATLAB. Bias Minimierung Gleiche Bias-Minimierung Probleme bestehen wie für jede High-Level-Sprache Brauchen Sie sehr vorsichtig sein, über die Prüfung. Development Speed Pythons Hauptvorteil ist Entwicklungsgeschwindigkeit, mit robusten In eingebaute Testfähigkeiten. Execution Speed Nicht ganz so schnell wie C, aber wissenschaftliche Computing-Komponenten sind optimiert und Python kann mit nativen C-Code mit bestimmten Plugins sprechen. Cost Free Open Source. Description Reife, High-Level-Sprache für die Geschwindigkeit der Ausführung entwickelt Breites Spektrum an quantitativen Finanzen und numerischen Bibliotheken Härter zu debuggen und dauert oft länger, um zu implementieren als Python oder MATLAB Extrem weit verbreitet in der Kauf - und Verkaufsseite. Execution Die meisten Brokerage-APIs sind in C und Java geschrieben So viele Plugins existieren. Customization CC Ermöglicht direkten Zugriff auf zugrunde liegenden Speicher, daher können Ultra-Hochfrequenz-Strategien implementiert werden. Strategie Komplexität C STL bietet eine breite Palette von optimierten Algorithmen Fast jeder spezialisierte mathematische Algorithmus besitzt eine freie, Open-Source-CC-Implementierung im Web. Bias Minimierung Look-Ahead Bias kann schwierig sein, zu eliminieren, aber nicht härter als andere High-Level-Sprache Gute Debugging-Tools, aber man muss vorsichtig sein, wenn es um zugrunde liegende Gedächtnis. Development Geschwindigkeit C ist ziemlich ausführlich im Vergleich zu Python oder MATLAB für den gleichen Algorithmus Mehr Zeilen-of - code LOC führt oft zu einer größeren Wahrscheinlichkeit von Bugs. Execution Speed CC hat extrem schnelle Ausführungsgeschwindigkeit und kann für bestimmte Berechnungsarchitekturen gut optimiert werden. Dies ist der Hauptgrund, es zu nutzen. Cost Verschiedene Compiler Linux GCC ist kostenlos, MS Visual Studio hat sich unterschiedlich Lizenzen. Different Strategien erfordern unterschiedliche Software-Pakete HFT und UHFT-Strategien werden in CC geschrieben werden in diesen Tagen werden sie oft auf GPUs und FPGAs durchgeführt, während niederfrequente Richtungs-Equity-Strategien sind einfach zu implementieren in TradeStation, aufgrund der alle in einem Art der Software-Brokerage. Meine persönliche Präferenz ist für Python, da es den richtigen Grad an Anpassung, Geschwindigkeit der Entwicklung, Testfähigkeit und Ausführungsgeschwindigkeit für meine Bedürfnisse und Strategien bietet Wenn ich etwas schneller brauche, kann ich in C direkt von meinem fallen Python-Programme Eine Methode, die von vielen Quant-Händlern begünstigt wird, besteht darin, ihre Strategien in Python zu prototypen und dann die langsameren Ausführungsabschnitte auf C in einer iterativen Weise umzuwandeln. Schließlich wird der gesamte Algo in C geschrieben und kann allein gelassen werden, um zu handeln. In den nächsten Artikeln Beim Backtesting werden wir uns einige Besonderheiten anschauen, die die Implementierung eines algorithmischen Trading-Backtesting-Systems betreffen, sowie wie wir die Auswirkungen von Börsenaustausch übernehmen können. Wir werden die Strategie-Performance-Messung diskutieren und schließlich mit einer Beispielstrategie abschließen Quantitativen Handel.
No comments:
Post a Comment