Saturday 30 September 2017

How To Backtest Trading System


Backtesting Was ist Backtesting Backtesting ist der Prozess der Prüfung einer Handelsstrategie auf relevante historische Daten, um ihre Lebensfähigkeit zu gewährleisten, bevor der Händler ein tatsächliches Kapital riskiert. Ein Trader kann den Handel einer Strategie über einen angemessenen Zeitraum simulieren und die Ergebnisse für die Rentabilität und das Risiko analysieren. BREAKING DOWN Backtesting Wenn die Ergebnisse die notwendigen Kriterien erfüllen, die für den Händler akzeptabel sind, kann die Strategie dann mit einem gewissen Maß an Vertrauen umgesetzt werden, dass es zu Gewinnen führen wird. Wenn die Ergebnisse weniger günstig sind, kann die Strategie modifiziert, angepasst und optimiert werden, um die gewünschten Ergebnisse zu erzielen, oder sie kann vollständig verschrottet werden. Eine erhebliche Menge des Volumens, das in dem heutigen Finanzmarkt gehandelt wird, wird von Händlern durchgeführt, die eine Art Computerautomatisierung verwenden. Dies gilt insbesondere für Handelsstrategien auf Basis technischer Analysen. Backtesting ist ein integraler Bestandteil der Entwicklung eines automatisierten Handelssystems. Sinnvolles Backtesting Wenn es richtig gemacht wird, kann Backtesting ein unschätzbares Werkzeug sein, um Entscheidungen darüber zu treffen, ob eine Handelsstrategie genutzt werden soll. Die Sample-Zeitspanne, auf der 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 reichengebundenen Handel einzubeziehen. Die Durchführung eines Tests auf nur einer Art von Marktbedingung kann zu einzigartigen Ergebnissen führen, die bei anderen Marktbedingungen nicht gut funktionieren, was zu falschen Schlussfolgerungen führen kann. Auch die Stichprobengröße in der Anzahl der Trades in den Testergebnissen ist entscheidend. Wenn die Stichprobenanzahl zu klein ist, ist der Test möglicherweise nicht statistisch signifikant. Ein Beispiel mit zu vielen Trades über einen zu langen Zeitraum kann optimierte Ergebnisse erzielen, bei denen eine überwältigende Anzahl von Siegertätigkeiten um eine spezifische Marktbedingung oder einen Trend, der für die Strategie günstig ist, zusammenfließen. Dies kann auch dazu führen, dass ein Händler irreführende Schlussfolgerungen zieht. Halten Sie es Real Ein Backtest sollte die Realität so weit wie möglich widerspiegeln. Trading-Kosten, die ansonsten von den Händlern als vernachlässigbar angesehen werden können, können bei der Analyse der einzelnen Kosten eine wesentliche Auswirkung haben, wenn die Gesamtkosten über die gesamte Backtesting-Periode berechnet werden. Diese Kosten beinhalten Provisionen, Spreads und Slippage, und sie könnten den Unterschied zwischen der Frage, ob eine Handelsstrategie rentabel ist oder nicht. Die meisten Backtesting-Softwarepakete beinhalten Methoden, um diese Kosten zu berücksichtigen. Vielleicht ist die wichtigste Metrik mit Backtesting verbunden ist die strategys Ebene der Robustheit. Dies wird erreicht, indem die Ergebnisse eines optimierten Rücktests in einer bestimmten Abtastzeitperiode (in der Probe als Beispiel bezeichnet) mit den Ergebnissen eines Backtests mit der gleichen Strategie und Einstellungen in einer anderen Abtastzeitperiode (bezeichnet als Out - Der Probe). Wenn die Ergebnisse ähnlich profitabel sind, dann kann die Strategie als gültig und robust angesehen werden und ist bereit, in Echtzeitmärkten umgesetzt zu werden. Wenn die Strategie bei Out-of-Sample-Vergleichen fehlschlägt, dann muss die Strategie weiterentwickelt werden, oder sie sollte ganz aufgegeben werden. Backtesting: Interpretation The Past Backtesting ist ein wichtiger Bestandteil einer effektiven Trading-System-Entwicklung. Es wird erreicht durch Rekonstruktion, mit historischen Daten, Trades, die in der Vergangenheit mit Regeln durch eine gegebene Strategie definiert aufgetreten wäre. Das Ergebnis bietet Statistiken, die verwendet werden können, um die Wirksamkeit der Strategie zu messen. Mit diesen Daten können Händler ihre Strategien optimieren und verbessern, technische oder theoretische Mängel finden und Vertrauen in ihre Strategie gewinnen, bevor sie sie auf die realen Märkte anwenden. Die zugrundeliegende Theorie ist, dass jede Strategie, die in der Vergangenheit gut funktionierte, in der Zukunft gut funktionieren wird, und umgekehrt wird jede Strategie, die in der Vergangenheit schlecht geführt hat, wahrscheinlich in der Zukunft schlecht sein. Dieser Artikel nimmt einen Blick auf, welche Anwendungen verwendet werden, um Backtest, welche Art von Daten erhalten wird, und wie man es verwenden Die Daten und die Tools Backtesting kann viel wertvolle statistische Rückmeldung über ein bestimmtes System. Einige universelle Backtesting-Statistiken beinhalten: Nettogewinn oder Verlust - Netto-Prozentsatz Gewinn oder Verlust. Zeitrahmen - Vergangene Termine, in denen ein Test durchgeführt wurde. Universum - Aktien, die in den Backtest aufgenommen wurden. Volatilitätsmaßnahmen - Maximaler Prozentsatz nach oben und nach unten. Mittelwerte - Prozentualer durchschnittlicher Gewinn und durchschnittlicher Verlust, durchschnittliche Stäbe gehalten. Exposure - Prozentsatz des investierten Kapitals (oder dem Markt ausgesetzt). Verhältnisse - Gewinne-Verluste-Verhältnis. Annualisierte Rendite - Prozentuale Rendite über ein Jahr. Risikoadjustierte Rendite - Prozentuale Rendite als Funktion des Risikos In der Regel wird Backtesting-Software haben zwei Bildschirme, die wichtig sind. Der erste erlaubt dem Händler, die Einstellungen für das Backtesting anzupassen. Diese Anpassungen beinhalten alles von der Zeit bis zur Provisionskosten. Hier ist ein Beispiel für einen solchen Bildschirm in AmiBroker: Der zweite Bildschirm ist der eigentliche Backtesting Ergebnis Bericht. Hier finden Sie alle oben genannten Statistiken. Auch hier ist ein Beispiel für diesen Bildschirm in AmiBroker: Im Allgemeinen enthält die meisten Trading-Software ähnliche Elemente. Einige High-End-Software-Programme enthalten auch zusätzliche Funktionalität, um automatische Positionsabmessung, Optimierung und andere erweiterte Funktionen durchzuführen. Die 10 Gebote Es gibt viele Faktoren, die Händler darauf achten, wenn sie Backtesting Handelsstrategien sind. Hier ist eine Liste der 10 wichtigsten Dinge zu erinnern, während Backtesting: Berücksichtigen Sie die breite Markttrends in der Zeitrahmen, in dem eine gegebene Strategie getestet wurde. Zum Beispiel, wenn eine Strategie wurde nur von 1999-2000 zurückgestellt, kann es nicht gut in einem Bärenmarkt. Es ist oft eine gute Idee, über einen langen Zeitrahmen zu backtest, der verschiedene Arten von Marktbedingungen umfasst. Berücksichtigen Sie das Universum, in dem das Backtesting aufgetreten ist. Zum Beispiel, wenn ein breites Marktsystem mit einem Universum aus Tech-Aktien getestet wird, kann es nicht gut in verschiedenen Sektoren zu tun. Grundsätzlich, wenn eine Strategie auf ein bestimmtes Genre der Bestände ausgerichtet ist, beschränken Sie das Universum auf dieses Genre, aber in allen anderen Fällen ein großes Universum für Testzwecke aufrecht zu erhalten. Volatilitätsmaßnahmen sind bei der Entwicklung eines Handelssystems äußerst wichtig. Dies gilt insbesondere für Leveraged-Konten, die Margin-Anrufe unterworfen werden, wenn ihr Eigenkapital unter einen bestimmten Punkt fällt. Händler sollten versuchen, die Volatilität niedrig zu halten, um das Risiko zu reduzieren und einen leichteren Übergang in und aus einer bestimmten Aktie zu ermöglichen. Die durchschnittliche Anzahl der gehaltenen Stäbe ist auch sehr wichtig, um bei der Entwicklung eines Handelssystems zu sehen. Obwohl die meisten Backtesting-Software Provisionskosten in den endgültigen Berechnungen enthält, bedeutet das nicht, dass Sie diese Statistik ignorieren sollten. Wenn möglich, kann die Erhöhung der durchschnittlichen Anzahl der gehaltenen Bars die Provisionskosten senken und die Gesamtrendite verbessern. Belichtung ist ein zweischneidiges Schwert. Eine erhöhte Exposition kann zu höheren Gewinnen oder höheren Verlusten führen, während eine verminderte Exposition niedrigere Gewinne oder geringere Verluste aufweist. Allerdings ist es im Allgemeinen eine gute Idee, die Exposition unter 70 zu halten, um das Risiko zu reduzieren und einen leichteren Übergang in und aus einer bestimmten Aktie zu ermöglichen. Die durchschnittliche Ertragsstatistik, kombiniert mit dem Gewinn-Verlust-Verhältnis, kann für die Bestimmung der optimalen Positionsbestimmung und des Geldmanagements mit Techniken wie dem Kelly Criterion nützlich sein. (Siehe Geldmanagement mit dem Kelly Criterion.) Händler können größere Positionen einnehmen und die Provisionskosten senken, indem sie ihre durchschnittlichen Gewinne erhöhen und ihr Gewinn-Verlust-Verhältnis erhöhen. Die annualisierte Rendite ist wichtig, weil sie als Instrument zur Benchmark eines Systemrenditen gegen andere Anlageorte verwendet wird. Es ist wichtig, nicht nur die Gesamtrendite zu betrachten, sondern auch das erhöhte oder verminderte Risiko zu berücksichtigen. Dies geschieht durch die risikoadjustierte Rendite, die für verschiedene Risikofaktoren verantwortlich ist. Bevor ein Handelssystem verabschiedet wird, muss es alle anderen Anlagegeschäfte gleich oder weniger gefährden. Backtesting Anpassung ist extrem wichtig. Viele Backtesting-Anwendungen haben Input für Provisionsbeträge, runde (oder gebrochene) Losgrößen, Tickgrößen, Margin-Anforderungen, Zinssätze, Schlupfannahmen, Positionsgrößenregeln, Gleichbezugsregelungen, (nachlaufende) Stopp-Einstellungen und vieles mehr. Sie erhalten die genauesten Backtesting-Ergebnisse, ich bin wichtig, um diese Einstellungen zu stimmen, um den Makler nachzuahmen, der verwendet wird, wenn das System in Betrieb geht. Backtesting kann manchmal zu etwas bekannt als Überoptimierung führen. Dies ist ein Zustand, in dem die Leistungsergebnisse so weit in die Vergangenheit abgestimmt sind, dass sie in der Zukunft nicht mehr so ​​genau sind. Es ist in der Regel eine gute Idee, Regeln zu implementieren, die für alle Aktien oder einen ausgewählten Satz von zielgerichteten Aktien gelten und nicht so weit optimiert sind, dass die Regeln vom Schöpfer nicht mehr verständlich sind. Backtesting ist nicht immer der genaueste Weg, um die Effektivität eines bestimmten Handelssystems abzuschätzen. Manchmal laufen Strategien, die in der Vergangenheit gut verstanden haben, in der Gegenwart nicht gut. Die Wertentwicklung in der Vergangenheit ist kein Hinweis auf zukünftige Ergebnisse. Achten Sie darauf, Papierhandel ein System, das erfolgreich zurückgezählt wurde, bevor Sie live gehen, um sicherzustellen, dass die Strategie noch in der Praxis gilt. Schlussfolgerung Backtesting ist einer der wichtigsten Aspekte der Entwicklung eines Handelssystems. Wenn es richtig erstellt und interpretiert wird, kann es den Händlern helfen, ihre Strategien zu optimieren und zu verbessern, technische oder theoretische Fehler zu finden sowie Vertrauen in ihre Strategie zu gewinnen, bevor sie sie auf die realen Weltmärkte anwenden. Resources Tradecision (Tradecision) - High-End-Trading-System-Entwicklung AmiBroker (Amibroker) - Budget Trading System Development. Back-Prüfung Ihrer Trading-Ideen Eines der nützlichsten Dinge, die Sie im Analyse-Fenster tun können, ist, Ihre Trading-Strategie zu testen Auf historischen Daten. Dies kann Ihnen wertvolle Einblicke in Stärken und Schwachstellen Ihres Systems geben, bevor Sie echtes Geld investieren. Diese einzelne AmiBroker-Funktion kann für Sie viel Geld sparen. Schreiben Sie Ihre Handelsregeln Zuerst müssen Sie objektive (oder mechanische) Regeln haben, um den Markt zu betreten und zu verlassen. Dieser Schritt ist die Basis Ihrer Strategie und Sie müssen darüber nachdenken, da das System mit Ihrer Risikobereitschaft, Portfolio-Größe, Geld-Management-Techniken und viele andere individuelle Faktoren übereinstimmen muss. Sobald Sie Ihre eigenen Regeln für den Handel haben, sollten Sie sie als Kauf - und Verkaufsregeln in AmiBroker Formula Lanugage schreiben (plus kurz und decken, wenn Sie auch kurz handeln wollen). In diesem Kapitel werden wir sehr grundlegende gleitende durchschnittliche Cross-Over-System zu betrachten. Das System würde Aktienabrechnungen kaufen, wenn der enge Preis über 45-Tage-exponentiell gleitenden Durchschnitt steigt und verkauft Aktienbeteiligungen, wenn der Schlusskurs unter 45-Tage-exponentielle gleitenden Durchschnitt sinkt. Der exponentielle gleitende Durchschnitt kann in AFL mit seiner eingebauten Funktion EMA berechnet werden. Alles, was Sie tun müssen, ist, das Eingabe-Array und die Mittelungsperiode anzugeben, so dass der 45-tägige exponentielle gleitende Durchschnitt der Schlusskurse durch die folgende Aussage erhalten werden kann: Die enge Kennung bezieht sich auf das eingebaute Array, das die Schlusspreise des aktuell analysierten Symbols hält . Um zu testen, ob der enge Preis über den exponentiellen gleitenden Durchschnitt hinausgeht, verwenden wir die integrierte Kreuzfunktion: kaufen Kreuz (schließen, ema (schließen, 45)) Die obige Aussage definiert eine Kaufhandelsregel. Es gibt quot1quot oder quottruequot, wenn enge Preiskreuze über Ema (schließen, 45). Dann können wir die Verkaufsregel schreiben, die bei der Gegenüberstellung eintreten würde - enge Preiskreuze unter Ema (nahe, 45): Kreuz verkaufen (ema (schließen, 45), in der Nähe) Bitte beachten Sie, dass wir dieselbe Kreuzfunktion verwenden Die entgegengesetzte Argumentation. Die komplette Formel für lange Trades wird so aussehen: Kreuz kaufen (schließen, Ema (schließen, 45)) Kreuz verkaufen (Ema (schließen, 45), in der Nähe) HINWEIS: Um neue Formel zu erstellen, öffnet man den Formel-Editor mit dem Analysis-gtFormula Editor Menü, geben Sie die Formel ein und wählen Sie Tools-gtSend zum Analysemenü im Formel-Editor Um das System erneut zu testen, klicken Sie einfach auf die Schaltfläche "Zurück" im Fenster "Automatische Analyse". Stellen Sie sicher, dass Sie in die Formel eingegeben haben, die mindestens Kauf - und Verkaufshandelsregeln (wie oben gezeigt) enthält. Wenn die Formel korrekt ist, beginnt AmiBroker, Ihre Symbole nach Ihren Handelsregeln zu analysieren und erzeugt eine Liste simulierter Trades. Der ganze Prozess ist sehr schnell - Sie können Tausende von Symbolen in wenigen Minuten wieder testen. Das Fortschrittsfenster zeigt Ihnen die voraussichtliche Fertigstellungszeit. Wenn du den Prozess stoppen möchtest, kannst du im Fortschrittsfenster einfach auf Abbrechen klicken. Wenn der Prozess beendet ist, wird die Liste der simulierten Trades im unteren Teil des automatischen Analysefensters angezeigt. (Der Ergebnisbereich). Sie können untersuchen, wann die Kauf - und Verkaufssignale nur durch einen Doppelklick auf den Handel im Ergebnisbereich aufgetreten sind. Dies gibt Ihnen rohe oder ungefilterte Signale für jede Bar, wenn Kauf - und Verkaufsbedingungen erfüllt sind. Wenn Sie nur einzelne Handelspfeile sehen möchten (Öffnen und Schließen des aktuell ausgewählten Handels), sollten Sie auf die Zeile doppelklicken, während Sie die SHIFT-Taste gedrückt halten. Alternativ können Sie die Art der Anzeige auswählen, indem Sie im Kontextmenü die entsprechende Option auswählen, wenn Sie mit einer rechten Maustaste auf den Ergebnisbereich klicken. Zusätzlich zu der Ergebnisliste können Sie sehr detaillierte Statistiken über die Leistung Ihres Systems erhalten, indem Sie auf die Schaltfläche Bericht klicken. Um mehr über Berichtsstatistiken zu erfahren, schau dir bitte die Beschreibung des Berichtfensters an. Ändern der Back-Test-Einstellungen Zurück-Test-Engine in AmiBroker verwendet einige vordefinierte Werte für die Ausführung seiner Aufgabe einschließlich der Portfolio-Größe, Periodizität (täglich wöchentlich monatlich), Höhe der Provision, Zinssatz, maximale Verlust und Gewinn Ziel stoppt, Art der Trades, Preisfelder und so auf. Alle diese Einstellungen können vom Benutzer über das Einstellungsfenster geändert werden. Nachdem Sie die Einstellungen geändert haben, denken Sie bitte daran, Ihren Back-Test erneut auszuführen, wenn die Ergebnisse mit den Einstellungen synchronisiert werden sollen. Zum Beispiel, um den Test auf wöchentlichen Stäben statt täglich zu testen, klicken Sie einfach auf die Schaltfläche Einstellungen, wählen Sie Wöchentlich aus Periodizität Kombinationsfeld und klicken Sie auf OK. Führen Sie dann Ihre Analyse aus, indem Sie auf den Test klicken. Reservierte Variablennamen Die folgende Tabelle zeigt die Namen der reservierten Variablen, die von Automatic Analyzer verwendet werden. Die Bedeutung und Beispiele zu deren Verwendung finden Sie weiter unten in diesem Kapitel. Ermöglicht die Kontrolle des Dollarbetrags oder des Prozentsatzes des Portfolios, das in den Handel investiert wird (siehe Erläuterungen unten) Automatische Analyse (neu in 3.9) Bisher diskutierten wir eine ziemlich einfache Verwendung des Back-Testers. AmiBroker, unterstützt jedoch viel mehr anspruchsvolle Methoden und Konzepte, die später in diesem Kapitel diskutiert werden. Bitte beachten Sie, dass der Anfänger-Benutzer zuerst ein wenig mit den einfacheren Themen spielen sollte, die oben beschrieben wurden, bevor Sie fortfahren. Also, wenn Sie bereit sind, schauen Sie sich bitte die folgenden vor kurzem vorgestellten Features des Back-Testers an: a) AFL Scripting Host für fortgeschrittene Formel Schriftsteller b) verbesserte Unterstützung für kurze Trades c) die Art und Weise zu steuern Auftrag Ausführung Preis von der Script d) verschiedene Arten von Stopps im hinteren Tester e) Positionsgröße f) runde Losgröße und Tickgröße g) Randkonto h) Backtesting Futures AFL Scripting Host ist ein fortgeschrittenes Thema, das in einem separaten Dokument hier abgedeckt ist und ich werde nicht diskutieren Es in diesem Dokument. Verbleibende Features sind viel einfacher zu verstehen. In den Vorgängerversionen von AmiBroker, wenn du das System mit Hilfe von Lang - und Kurzgeschichten retten wolltest, könntest du nur eine Stop-and-Reverse-Strategie simulieren. Als die lange Position geschlossen wurde, wurde sofort eine neue Short-Position eröffnet. Es war, weil kaufen und verkaufen reservierte Variablen wurden für beide Arten von Trades verwendet. Jetzt (mit Version 3.59 oder höher) gibt es getrennte reservierte Variablen zum Öffnen und Schließen von langen und kurzen Trades: Kauf - quottruequot oder 1 Wert öffnet lange Handel verkaufen - quottruequot oder 1 Wert schließt lange Handel kurz - quottruequot oder 1 Wert öffnet kurze Handelsabdeckung - quottruequot oder 1 Wert schließt kurzer Handel Som, um kurze Trades zu retten, müssen Sie kurze und Cover-Variablen zuordnen. Wenn Sie Stop-and-Reverse-System (immer auf dem Markt) einfach zuweisen, verkaufen zu kurz und kaufen, um zu decken kurz verkaufen Deckung zu kaufen Dies simuliert die Art und Weise vor-3.59 Versionen funktionierte. Aber jetzt AmiBroker ermöglicht es Ihnen, getrennte Handelsregeln zu haben, um lange zu gehen und kurz zu gehen, wie in diesem einfachen Beispiel gezeigt: lange Trades Ein-und Ausreise Regeln: kaufen Kreuz (cci (), 100) verkaufen Kreuz (100, cci ()) kurz (Cci (), -100) Beachten Sie, dass in diesem Beispiel, wenn CCI zwischen -100 und 100 ist, Sie aus dem Markt sind. Steuern des Handelspreises AmiBroker bietet jetzt 4 neue reservierte Variablen zur Angabe des Preises, bei dem Kauf-, Verkaufs-, Kurz - und Deckungsaufträge ausgeführt werden. Diese Arrays haben folgende Namen: Kaufpreis, Verkaufspreis, Shortprice und Deckungspreis. Die Hauptanwendung dieser Variablen ist die Kontrolle des Handelspreises: BuyPrice IIF (Tag 1) HIGH, CLOSE) am Montag kaufen bei High, sonst kaufen Sie in der Nähe So können Sie die folgenden schreiben, um echte Stop-Bestellungen zu simulieren: BuyStop. Die Formel für den Kauf Stop Level SellStop. Die Formel für den Verkauf Stop-Level, wenn jederzeit während des Tages Preise steigen über Buystop-Ebene (highgtbuystop) der Kaufauftrag stattfindet (bei buystop oder niedrig je nachdem, was höher ist) Kaufen Cross (High, BuyStop) wenn jederzeit während des Tages Preise unter den Verkaufspreis fallen (SellPrice, SellStop) BuyPrice max (BuyStop, Low) Sicherstellen, dass der Kaufpreis nicht weniger als Low SellPrice min (SellStop, High) sicher ist Verkaufspreis nicht größer als hoch Bitte beachten Sie, dass AmiBroker die Kaufpreis-, Verkaufspreis-, Shortprice - und Coverprice-Array-Variablen mit den im Systemtest-Einstellungsfenster definierten Werten festlegt (siehe unten), so dass Sie es aber nicht in Ihrer Formel definieren müssen. Wenn Sie es nicht definieren, arbeitet AmiBroker wie in den alten Versionen. Beim Back-Testing überprüft AmiBroker, ob die Werte, die Sie dem Kaufpreis, dem Verkaufspreis, dem Shortprice, dem Deckungspreis zugewiesen haben, in den High-Low-Bereich der angegebenen Bar passen. Wenn nicht, wird AmiBroker es auf hohen Preis anpassen (wenn Preis-Array-Wert höher als hoch ist) oder auf den niedrigen Preis (wenn Preis-Array-Wert niedriger als niedrig ist) Profit-Ziel stoppt Wie Sie in der Abbildung oben sehen können, neue Einstellungen für Profit-Zielstopps sind im System-Test-Einstellungsfenster verfügbar. Profit-Ziel-Stops werden ausgeführt, wenn der hohe Preis für einen bestimmten Tag die Stopp-Ebene übersteigt, die als Prozentsatz oder Punktzunahme vom Kaufpreis gegeben werden kann. Standardmäßig werden Stopps zu einem Preis ausgeführt, den Sie als Verkaufspreis-Array (für lange Trades) oder Cover-Price-Array definieren (für kurze Trades). Dieses Verhalten kann durch die Verwendung von quotExit bei der Stopquot-Funktion geändert werden. QuotExit bei stopquot-Funktion Wenn du bei den Stopp-Box-Feldern die Markierung von noExit bei Stopquot-Box markierst, werden die Stopps auf exakte Stop-Ebene ausgeführt, dh wenn du Profit-Ziel-Stop bei 10 deinen Stop definiert hast und der Kaufpreis 50 Stopp-Order wird bei 55 durchgeführt, auch wenn Ihr Verkaufspreisarray enthält unterschiedlichen Wert (zB Schlusskurs von 56). Maximaler Verlust stoppt die Arbeit in ähnlicher Weise - sie werden ausgeführt, wenn der niedrige Preis für einen bestimmten Tag unter die Stoppebene sinkt, die als Prozentsatz oder Punktzunahme vom Kaufpreis gegeben werden kann. Diese Art von Stopp wird verwendet, um die Gewinne zu schützen Verfolgt Ihren Handel, so dass jedes Mal, wenn ein Positionswert ein neues Hoch erreicht, der nachlaufende Stopp auf einer höheren Ebene platziert wird. Wenn der Gewinn unter die nachlaufende Stopp-Ebene sinkt, wird die Position geschlossen. Dieser Mechanismus wird in der Abbildung unten dargestellt (10 Nachlaufstopp ist gezeigt): eine Stichproben-Low-Level-Implementierung des Profit-Ziel-Stopps in AFL: Buy Cross (MACD (), Signal ()) für (i 0 i lt BarCount i) Wenn (priceatbuy 0 Buy i) priceatbuy BuyPrice i if (priceatbuy gt 0 SellPrice i gt 1.1 priceatbuy) Verkaufen i 1 SellPrice i 1.1 priceatbuy priceatbuy 0 sonst Verkaufen i 0 Dies ist ein neues Feature in Version 3.9. Positionsgröße im Backtester wird durch neue reservierte Variable implementiert PositionSize ltsize arraygt Jetzt können Sie den Dollarbetrag oder den Prozentsatz des Portfolios steuern, das in den Handelspartner investiert wird, der in den Handel investiert ist, der in den Handel investiert wird: PositionSize 1000 invest 1000 in jedem Handels-negativen Zahlen -100 ..- 1 definieren Prozentsatz: -100 gibt 100 der aktuellen Portfolio-Größe, -33 gibt 33 der verfügbaren Eigenkapital zum Beispiel: PositionSize -50 investiert immer nur die Hälfte des aktuellen Equity Dynamic Sizing Beispiel: PositionSize - 100 RSI () als RSI variiert von 0..100 Dies führt zu einer Position abhängig von RSI-Werten - gt niedrige Werte von RSI wird zu höheren Prozentsatz investiert Wenn weniger als 100 der verfügbaren Bargeld investiert wird, dann die verbleibenden Betrag verdient Zinssatz Wie in den Einstellungen definiert. Es gibt auch ein neues Kontrollkästchen im AA-Einstellungsfenster: quotAllow Positionsgröße shrinkingquot - das steuert, wie der Backtester die Situation verarbeitet, wenn die angeforderte Positionsgröße (über PositionSize-Variable) das verfügbare Bargeld übersteigt: Wenn dieses Flag markiert ist, wird die Position mit der Größe eingegeben Vorhandenes Bargeld, wenn es unkontrolliert ist, wird die Position nicht eingegeben. Um die tatsächlichen Positionsgrößen zu sehen, verwenden Sie bitte einen neuen Berichtsmodus im AA-Einstellungsfenster: quotTrade-Liste mit Preisen und Pos. Sizequot Für das Ende ist hier ein Beispiel für Tharps ATR-basierte Positionsgrößen-Technik, die in AFL kodiert ist: Kaufen Sie ltyour kaufen Formel heregt Verkaufen 0 Verkauf nur durch Stop TrailStopAmount 2 ATR (20) Hauptstadt 100000 WICHTIG: Setzen Sie es auch in den Einstellungen: Initial Equity Risk 0.01Kapital PositionSize (RiskTrailStopAmount) BuyPrice ApplyStop (2, 2, TrailStopAmount, 1) Die Technik könnte wie folgt zusammengefasst werden: Das Gesamt-Eigenkapital pro Symbol beträgt 100.000, wir setzen das Risiko auf 1 des gesamten Eigenkapitals. Der Risikostufe wird wie folgt definiert: Wenn ein nachlaufender Stopp bei einer 50 Aktie bei etwa 45 (der Wert von zwei ATRs gegen die Position) liegt, wird der 5 Verlust in das 1000 Risiko aufgeteilt, um 200 Aktien zu kaufen. So ist das Verlustrisiko 1000, aber das Zuteilungsrisiko beträgt 200 Aktien x 50share oder 10.000. Also, wir vergeben 10 des Eigenkapitals auf den Kauf, aber nur riskieren 1000. (Bearbeitete Auszug aus der AmiBroker Mailing-Liste) Runde Losgröße und Tick Größe Verschiedene Instrumente werden mit verschiedenen quottrading unitsquot oder quotblocksquot gehandelt. Zum Beispiel können Sie fraktionierte Anzahl von Einheiten von Investmentfonds kaufen, aber Sie können nicht kaufen gebrochene Anzahl von Aktien. Manchmal muss man in 10s oder 100s viel kaufen. AmiBroker können Sie nun die Blockgröße auf globaler und per-Symbol-Ebene angeben. In der Symbol-gtInformation-Seite können Sie in der Symbol-gtInformation-Seite per-symbol runde Losgröße definieren (Bild 3). Der Wert von Null bedeutet, dass das Symbol keine spezielle runde Losgröße hat und von der Seite "Automatische Analyseeinstellungen" (Bild 1) die Option "Default Round Lot Sizequot" (globale Einstellung) verwendet. Wenn die Standardgröße auch auf Null gesetzt ist, bedeutet dies, dass die Anzahl der Aktienbeteiligungen erlaubt ist. Sie können auch die Losgröße direkt aus Ihrer AFL-Formel mit RoundLotSize reservierten Variablen steuern, zum Beispiel: Diese Einstellung steuert die minimale Preisbewegung des gegebenen Symbols. Sie können es auf globaler und per-Symbol-Ebene definieren. Wie bei der runden Losgröße kannst du in der Symbol-gtInformation-Seite (Abb. 3) per-Symbol-Tick-Größe definieren. Der Wert von null weist AmiBroker an, die in der Einstellungsseite (Bild 1) des automatischen Analysefensters definierte Quittungs-Tick-Größe zu verwenden. Wenn die Standard-Tick-Größe auch auf Null gesetzt ist, bedeutet dies, dass es keinen minimalen Preisverschiebung gibt. Sie können die Tickgröße auch aus der AFL-Formel mit der TickSize reservierten Variablen einstellen und abrufen, zB: Beachten Sie, dass die Tick-Größeneinstellung nur NUR-Trades betrifft, die durch eingebaute Stops und ApplyStop () verlassen wurden. Der Backtester geht davon aus, dass die Preisdaten den Tickgrößenanforderungen folgen und die von dem Benutzer gelieferten Preisarrays nicht ändern. Die Angabe von Zeckengröße ist also nur dann sinnvoll, wenn man eingebaute Stopps benutzt, so dass Ausstiegspunkte bei den Quotenpreisstufen anstelle der berechneten Werte erzeugt werden. Zum Beispiel in Japan - Sie können keine Bruchteile von Yen haben, so dass Sie globale Ticksize auf 1 definieren sollten, also eingebaute Stopps beenden Trades auf ganzzahligen Ebenen. Die Konto-Margin-Einstellung definiert die prozentuale Margin-Anforderung für das gesamte Konto. Der Standardwert der Kontobewertung beträgt 100. Das bedeutet, dass Sie 100 Fonds für den Handel anbieten müssen, und das ist die Art und Weise, wie der Backtester in früheren Versionen gearbeitet hat. Aber jetzt können Sie ein Margin-Konto simulieren. Wenn du auf Marge kaufst, wirst du einfach Geld von deinem Broker ausleihen, um Lager zu kaufen. Mit aktuellen Regelungen können Sie bis zu 50 der Kaufpreis der Aktie, die Sie kaufen möchten und leihen die andere Hälfte von Ihrem Broker. Um dies zu simulieren, geben Sie einfach 50 in das Feld Kontoband ein (siehe Bild 1). Wenn Ihr intiales Eigenkapital auf 10000 eingestellt ist, wird Ihre Kaufkraft dann 20000 sein und Sie können in der Lage sein, größere Positionen einzugeben. Bitte beachten Sie, dass diese Einstellungen die Marge für das gesamte Konto festlegen und es sich nicht um einen Futures-Handel handelt. Mit anderen Worten, Sie können Aktien auf Margin-Konto handeln. "Reverse-Eingangssignal" das Kontrollkästchen "exitquot" auf die Backtester-Einstellungen. Wenn es eingeschaltet ist (die Voreinstellung) - Backtester funktioniert wie in früheren Versionen und schließt bereits offene Position, wenn neues Eingangssignal in umgekehrter Richtung angetroffen wird. Wenn dieser Schalter ausgeschaltet ist - auch wenn das Rückwärtssignal auftritt, behält der Backtester den derzeit geöffneten Handel bei und schließt die Position nicht ab, bis ein reguläres Ausgangssignal (Verkaufs - oder Abdeckungssignal) erzeugt wird. Mit anderen Worten, wenn dieser Schalter ausgeschaltet ist, ignoriert Kurze Signale während langer Trades und ignoriert Kaufsignale bei kurzen Trades. QuotAllow gleiche Bar-Exit (Single-Bar-Handel) Option auf die Einstellungen Wenn es eingeschaltet ist (die Standardeinstellungen) - Ein-und Ausstieg an der gleichen Bar ist erlaubt (wie in früheren Versionen), wenn es ausgeschaltet ist Next bar nur (dies gilt für reguläre Signale, es gibt eine separate Einstellung für ApplyStop-generierte Exits). Das Umschalten auf OFF ermöglicht es, das Verhalten von MS-Backtestern zu reproduzieren, das nicht in der Lage ist, am selben Tag zu vergeben. QuotActivate stoppt sofort quotDiese Einstellung löst das Problem der Prüfung von Systemen, die Trades auf dem Markt öffnen. In Versionen vor dem 4.09-Backtester wurde davon ausgegangen, dass du Trades auf dem Markt gegangen wirst, so dass eingebaute Stationen vom nächsten Tag aus aktiviert wurden. Das Problem war, als Sie in der Tat definierten offenen Preis als der Handel Eintrag Preis - dann am selben Tag Preisschwankungen nicht auslösen die Stopps. Es gab einige veröffentlichte Workarounds basierend auf AFL-Code, aber jetzt müssen Sie nicht brauchen, um sie zu verwenden. Einfach, wenn Sie auf offen handeln, sollten Sie markActivate stoppen sofortquot (Bild 1). Sie können fragen, warum nicht einfach die Kaufpreis oder Shortprice-Array, wenn es gleich offenen Preis ist. Unglücklicherweise wird das nicht funktionieren Warum einfach, weil es Doji-Tage gibt, wenn der offene Preis gleich ist und dann der Backtester nie wissen wird, ob der Handel am Markt geöffnet oder geschlossen wurde. Also brauchen wir wirklich eine separate Einstellung. Deu QuickAFLquotQuickAFL (tm) ist ein Merkmal, das eine schnellere AFL-Berechnung unter bestimmten Bedingungen ermöglicht. Anfangs (seit 2003) war es nur für Indikatoren verfügbar, ab Version 5.14 steht er auch in der automatischen Analyse zur Verfügung. Anfänglich war die Idee, ein schnelleres Diagramm durch die Berechnung der AFL-Formel nur für den Teil, der auf dem Diagramm sichtbar ist, zuzulassen. In ähnlicher Weise kann das automatische Analysefenster eine Untermenge von verfügbaren Zitaten verwenden, um AFL zu berechnen, falls ausgewählt 8220range8221 Parameter kleiner als 8220All Zitate. Detaillierte Erläuterungen darüber, wie QuickAFL funktioniert und wie es zu kontrollieren ist, wird in diesem Knowledge Base-Artikel bereitgestellt: amibrokerkb20080703quickafl Beachten Sie, dass diese Option nicht nur im Backtester funktioniert, sondern auch bei Optimierungen, Explorationen und Scans.

No comments:

Post a Comment