Saturday 18 February 2017

Whipsaw Handelssystem

Trading Moving Averages mit weniger Whipsaws Das gleitende durchschnittliche System ist bei weitem besser. Erstens können wir es 2: 1 (so dass CAGR bis zu etwa 13 bringen) und immer noch, unsere maximale Abnahme wird mit dem Kauf und halten vergleichbar sein. Darüber hinaus it8217s auf dem Markt nur 70 8211 weniger Risiko und vermutlich die Renditen können weiter gesteigert werden, indem man das Geld in alternative Anlagen zu arbeiten. Ein Problem bei diesen Systemen sind Whipsaws. Das System funktioniert gut, wenn der Preis weg vom gleitenden Durchschnitt bleibt. Allerdings, in der Nähe, kann man in der Folge entrexit verlieren Geld auf dem Weg. Eine Möglichkeit, dieses Problem anzugehen, besteht darin, eine Alternative 8220line8221 zum Auslösen der Exits (oder der Einträge für diese Angelegenheit) zu verwenden. Es könnte ein Prozentsatz Band, aber that8217s kaum universal. Bessere Volatilität in Bild bringen. Let8217s tun etwas robuster als Abbildung. Zuerst wenden wir den gleitenden Durchschnitt nicht auf die Preise an, sondern auf die Renditen (eine Interpretation von David Varadi8217s Error Adjusted Momentum). Die 8220cushioned8221 System geht lange, wenn der Durchschnitt wird positiv, aber zum Austritt, lässt es einige Kissen unter dem gleitenden Durchschnitt. Was können wir erzielen Avg Annual Drawdown Um Äpfel mit Äpfeln vergleichen, haben wir zwei Systeme hinzugefügt. Die erste (synchronisierte EA) verwendet fehlerangepasste Rückkehr zum Berechnen des SMA, tritt jedoch ein und verlässt, wenn der SMA die 0-Linie kreuzt. Die 8220cushioned8221 Version ist das System, das durch den obigen Code implementiert wird. Auch wenn man bedenkt, dass die neuen Strategien länger im Markt bleiben, scheint es eine leichte Verbesserung zu geben. Aber das ist nicht der Punkt. Die 8220cushioned8221 Ansatz hat 4 Trades insgesamt 8211 es für die beiden Bärenmärkte verlassen. That8217s über 4 Trades. Der nicht gepolsterte Ansatz hatte 80 Trades. Mission erfüllt mit anderen Worten. Hallo, Können Sie bitte erklären, die Logik hinter der angepassten Rendite Formel adj. rets sqrt (runSum (retsrets, 10) 9). Auch woher kommt die 109 Gewicht von Warum nicht 1010 Danke Ich muss etwas in Ihrem Code fehlen: Rets sind Positive und Negative, aber adj. rets sind alle positiv (Sie quadriert die rets), daher ist sma immer positiv und daher gibt es Nie ein Verkaufssignal. Ihre adj. rets geht höher, da die Renditen kleiner werden (dh, peak adj. rets gegen Ende der Bärenmärkte). Habe ich nur ein Zeichen verloren irgendwo Nicht ausgeführt R, sondern Umsetzung dieses als Test in meinem eigenen System und nicht immer, was ich erwartet hatte. Ps. I8217d nie von der Verwendung einer einfachen SMA 200 wie diese (wahrscheinlich wegen all der whipsaws) gehört, so hätte erwartet, dass Sie ein Kreuz Kreuz Kreuz (SMA 50200) stattdessen zu testen. GoldDeath Kreuz ist sehr nahe vergleichbar mit Ihrem berichteten EA-Ergebnisse (sowohl für CAGR und max Drawdown) von meinem testing8230 aber I8217d gerne Ihre EA arbeiten, um für mich zu sehen. Ah. Ich glaube, Sie sollten 8220rets8221 in der sma-Berechnung anstelle von 8220adj. rets8221 setzen. It8217s nicht klar aus diesem R-Code, was der Zeitraum für Ihre rets ist (dh, eine 1-tägige Rückkehr 1-Monats-Rendite), aber wenn ich eine 21-Bar-Rückkehr mit täglichen Daten verwenden, bekomme ich eine EA, die vergleichbar mit Ihnen ist (CAGR 9,5, Exposition 75, max DD 19,3). Aber so weit kann nicht Cushioned EA über 10 CAGR, so wird weiter arbeiten, um zu sehen, wenn I8217m richtig Duplizieren Sie Ihren Algorithmus. Nun, ich hatte einen Fehler im Code 8211 sehen die Kommentare und den Code. Entschuldigen Sie. Ja, man kann die Rückkehr direkt verwenden, aber aus meiner Erfahrung ist es besser, sie für Volatilität zu normalisieren. Eine Möglichkeit, dies zu tun, ist es, eine kurze SD (oder SD mit 0 für den Mittelwert, wie ich) zu nehmen und teilen die Rendite durch diesen Wert. Das Trading Systems Project ist eine Antwort auf viele FAQ Fragen über mechanische Systeme. TSP ist eine Gelegenheit für Leser von FAQ, um an der Konzeption, Überprüfung, Prüfung und Implementierung eines tatsächlichen Handelssystems von Grund auf teilzunehmen. Um an dem Trading Systems Project teilzunehmen, folgen Sie einfach mit der Evolution des Projekts und Freiwilliger, wenn Sie das Gefühl haben, etwas zu leisten oder die Ergebnisse zu überprüfen. Letztes Update: 27. August 2005 Letzte Aktualisierung: 18. Oktober 2005 Letzte Aktualisierung: 26. Oktober 2005 Letzte Aktualisierung: 26. Oktober 2005 Letzte Aktualisierung: 26. Oktober 2005 Letzte Aktualisierung: 27. April 2006 Bestätigungsgrenzen: Eigenkapital und Margin Optimierung a Trend-System Dynamische Portfolio-Auswahl Dynamische Risikomodifikation Präsentation der ErgebnisseMeine letzte Obsession mit meinem Trading-Algorithmus ist in der Lage, sukzessive Verlust Trades und Draw-downs während unentschlossene Peitsche Perioden entgegenzuwirken. Ich bin heute mit linearer Regression transfixiert worden, und etwas passend ist es Pi-Tag (3.14) 8211 Winkel. Ich werde gehandhabt, um über die bloßen Knochen des Handelssystems zum NinjaTraders C-Code zu portieren und haben einige etwas bessere backtests begonnen. Unabhängig von meinem NT-Aktivitäten über das Wochenende, letzte Nacht grub ich meine Kopie von Schwager auf Futures und begann skimming durch die Suche nach Systemideen. Eines der erwähnten Systeme war bemerkenswert ähnlich zu dem, das ich programmiert habe, und er ging ins Detail über, wie man diese falschen Einträge und Draw-Downs, die routinemäßig auftreten, in einem Trend nach oder Break-System zu beseitigen. Ich wachte heute morgen mit dem Ziel zu phasing in ein paar dieser Ideen für die Prüfung, sowie schließlich Codierung eine anständige Nachlauf Stop. Der Stopp, den ich suche, ist im Grunde ein Zielobjekt-Anhänger, so dass, wenn der Handel um über einen Punkt hinausgeht, einen Anschlag auf -1 zu bewegen und wenn bis zu 2 einen Anschlag auf 0 zu bewegen. It8217s ein einfaches Konzept, aber es wirklich doesn8217t scheinen Arbeit in NT noch. Warnung: Nehmen Sie sich Zeit für diesen Beitrag, da es einige etwas weiter fortgeschrittene mathematische Konzepte enthält, die ich versucht habe, in den Diagrammen zu vereinfachen. Prüfe bisherige Ergebnisse Jedenfalls war das erste, was ich tat, war laden Sie die ATS und Back-Test es für die letzte Wednesday8217s Session 8211 ein Nachmittag, die alle Gewinne mit einer 9-Trade-Serie von 0,50-2 Punkt Verlierer: ATS Trades auf ES Wed Mar 9th 1000 Tick-Chart Während der ETH-Sitzung das System einen Nettogewinn von 575. Während der hervorgehobenen Chop-Phase gab das System zurück 11,75 Punkte 8211 it8217s inakzeptabel für mich zu nehmen, was im Wesentlichen Gewinn Halbierung während Chop. Nachdem ich mir das angeschaut habe, habe ich dann die Regeln umgedreht, weil ich mir diesen Bereich ansah, war mein System ein echtes Gegenteil. Selling jeder Tiefststand und Kauf jeder Spitze ist ein schlechter Schritt. Here8217s, was passiert, wenn ich es umgekehrt Umschalten und die ATS machte eine Reihe von netten kleinen Profit-Trades während der Chop Natürlich war die Erwartung, dass es furchtbar während der Trendphasen, sondern tun gut während der Chop-Phasen. Es tat dies perfekt, wie Sie sehen können, sogar verlassen 2 oder 3 Zecken auf beiden Seiten der Ausfahrt als vergeudete Gelegenheit. Also, was bedeutet dies alles im Grunde es kocht auf diese Wenn ich mathematisch definieren kann, was eine Chop-Phase ist, dann sollte ich in der Lage, in einem separaten Bündel von Ordnung Bedingungen, die die Umkehrung der ursprünglichen Strategie durchführen zu bauen. Dies würde bedeuten, dass es während der Expansionsphasen als normal wirken würde. Statt den Dummkopf während des Hackens zu spielen, würde er die gegensätzlichen Regeln anwenden und diese Reihe mit einer Reihe von kleinen Siegen oder Break-Evens navigieren. Ich könnte die Formel als 8220no trade8221 Bedingung verwenden, damit sie nur die Handelsphasen handelt. Natürlich möchte ich, dass es ein etwas höherer Frequenz-Algorithmus, so würde ich gerne Handel diese Phase für einen goldenen Grund Ich erwarte, dass die Chop-Bedingung würde um ein paar Perioden 8211 also würde es wahrscheinlich zu halten 2 oder 3 verlieren Trades vor dem Code implementiert die 8220no trade8221 Richtlinie. Wenn ich jedoch alles handele, würde es eine Folge (in der Theorie) von Trades geben, die diese ersten Verlierer ausgleichen würden, so dass im Wesentlichen Sie selbst brechen, anstatt zu verlieren, während dieses Zeitrahmens. In meinem Kopf sollte ein Ausbruch dieser Bedingung eine geradlinige Berechnung sein, aber es ist Zeit, weiter zu erforschen. Wie kann ich definieren, whipsaws in einem automatisierten Handelssystem I8217m nicht sicher there8217s nur eine Antwort hier, so dass ich ein paar Optionen erforscht .. Lineare Regression Meine bevorzugte Definition der linearen Regression ist 8220die Prozess der Montage der bestmöglichen geraden Linie durch eine Reihe von points8221. Ich habe mit diesem Konzept kurz bei der Entwicklung der Flag-Algorithmus eine Woche oder so vor. Grundsätzlich zeichnet es eine Linie durch die Kerzen für jeden eingestellten Zeitraum. Die meisten Indikatoren da draußen berechnen es als eine bewegliche Summe, so dass seine mehr von einem zyklischen Oszillator als eine bestimmte Linie. Wenn ich eine lineare Regressionsgerade für N Perioden pro N Perioden auf einem Diagramm plotten kann, dann kann ich eine sehr einfache Vorstellung davon bekommen, was der Preis eigentlich tut8230 Mit einem linearen Regressionsdiagramm für N Perioden ist eine logische Idee Ja, das sieht lächerlich aus Aber mit mir eine Sekunde tragen, und ich werde seine Einfachheit erklären. Plotten diese Zeilen ermöglicht es mir, die Tendenz Stärke Auge und ermöglicht es Ihnen, Werte innerhalb dieser verwenden, um Raten der Veränderung oder einfache Winkel zu berechnen. Nehmen Sie Beispiel die blauen Perioden, die Linien (abgesehen von der gestrichelten Cyan) sind verdichtet und alle bewegen sich in die gleiche Richtung innerhalb eines bestimmten Winkelbereichs. Dies sagt mir, dass in diesem Zeitraum die Aktie trends. Nehmen Sie das Gegenteil in der roten Periode 8211 diese Linien aren8217t ausgerichtet und verschieben in verschiedene Richtungen usw. 8211 dieses Chaos bedeutet, es gibt keinen Trend und der Markt ist Hacken. Wenn ich mathematische Beziehungen in diesen Zeilen finden kann, dann kann ich im Wesentlichen definieren die Trendphasen und Chop-Phasen. Dies in der Theorie wird um etwa 10 Bar lag, weshalb ich diese Technik auf Tick-Charts oder Bereich Bars und nicht eine Zeit-basierte Achse. Der nächste Schritt hier ist, etwas für NT oder TOS Code diese Zeilen, ohne dass ich es manuell (Es dauert eine lange Zeit, um dies manuell btw). Zum Beispiel, um eine gelbe Linie zu zeichnen, die 30 Perioden ist, würde der Code etwas wie Rekord öffnenBar als 0935 definieren incrementBars als 30 Record linearRegressionRange von (openingBar zu OpeningBarincrementBars), linearRegressionRange1 (newBar incrementBars) Ich möchte nicht eine kontinuierliche Linie, I Wollen sie gehackt, wie sie oben sind. Für mich ist dies eine sehr einfache Art der Visualisierung der Daten, die dann wiederum in eine ziemlich geradlinig Codierung führen sollte. Also der ATS könnte dann so etwas wie sein, wenn linearRegressionRange10ampamp20ampamp30 (outOfSync Definition) dann inverse. Strategy oder einfacher für die erste gelbe Linie während der Chop-Phase, wenn angle. lRR20 lt 6degrees dann kaufenSignal sellSignal Pretty einfaches Konzept, sobald Sie das Bild wirklich zu überprüfen, und Dass brachte mich auf meine zweite Idee Angles und Geschwindigkeit Dies ist ein weiteres einfaches Konzept, das komplizierter aussieht, als es tatsächlich ist. Ich glaube auch, dass diese Methode etwas verzögert, weil es komplexere Berechnungen beinhaltet. Grundsätzlich wäre der Winkel während Hackfleisch ziemlich flach, weil der Preis in der Theorie nicht viel bewegen würde über die eingestellte Zeit. Stellen Sie sich vor, etwas 1m über Augenhöhe zu betrachten, die 20m weg 8211 war, würden Sie nicht brauchen, Ihren Anblickwinkel viel zu ändern, um seine Oberseite zu sehen. Nun stellen Sie sich die gleiche Entfernung, aber dieses Objekt ist jetzt 7m höher als Augenhöhe 8211 jetzt nicht nur müssen Sie Ihren Blickwinkel ändern, werden Sie höchstwahrscheinlich Kran Ihren Hals um die Spitze zu sehen. Dies ist das gleiche Konzept hier, aber wir ändern den metrischen Abstand zu einer Anzahl von Balken, und die metrische Höhe ist jetzt eine Anzahl von Punkten. Es wird eine ziemlich einfache Berechnung, weil die Periode ist eine Konstante so definieren eine bestimmte Bandbreite von Nicht-Aktion sollte einfach sein. Das Konzept in einen Indikator um die Winkel der Bewegungen zu messen In diesem Sinne, überprüfen Sie das Bild oben und sehen, wie diese Indikatoren flach oder wirklich schmal ein wenig vor halbem Weg in die Chop-Phase. Dies ist, wo die Definition von Chop auftritt und mit diesen Werten oder einem festgelegten Bereich, können wir mathematisch definieren die Cop und damit die Bedingungen für die Umkehrung. Es wird eine leichte Verzögerung hier, und das Ändern der Perioden, um irgendwo unter 20 auf einer dieser Berechnungen werden sie gerade nach oben oder unten Oszillatoren ähnlich einer Sinuswelle. Wir wollen keine zyklische Schleife hier, weil die Reichweite nicht jede eingestellte Anzahl von Perioden geschieht. Der obere Indikator misst den Winkel (tan-1) über 20 Perioden. Die grüne Linie repräsentiert den hohen Wert während dieser Periode und die rote Linie die Tiefen. Die gelbe Linie in der Mitte ist die Differenz 8211 Ich möchte diese anstelle der Verwendung eines flachen Oberseite oder Unterseite, weil ich dachte, dass dieses um null sein würde, bevor ich es codierte (yay it8217s zutreffend). Eine Chop-Bereich ist bei 0 bis 2,50, die ein ziemlich enges Sortiment etabliert ist und bietet einen guten Zustand hier. Dies bedeutet nun, ich könnte eine Aussage machen, wie wenn Midline zwischen Bereich für N Perioden dann Chop-Bedingungen aktivieren Ich liebe die Einfachheit dieser Aussage, weil es schnell scheitert, wenn der Vertrag Ausbruch. Das Gleiche gilt für eine Anweisung wie def Choppy if ((Midline10.25) OR (Midline1-0.25) OR Midline1) then true else false Diese Anweisung würde sich auch schnell ändern bei jeder Varianz eines Tickens oberhalb oder unterhalb der Flatline. Der mittlere Indikator ist ziemlich ähnlich, obwohl dieses Mal habe ich die Inertia () - Funktion auf thinkorswim mit den gleichen Perioden, um die Linie zu plotten. Dies ist viel mehr wie ein Oszillator, so müssten Sie etwas wie def Choppy wenn Höchste (lineHigh, 10) ampamp Lowest (lineLow, 10) zwischen 8211 2.50 und 2.50 dann true else false Dies ist in der Theorie einfacher, aber der Mangel Des flach liegenden Elements den ersten Anzeiger. Was als nächstes Der nächste Schritt ist die Kodierung dieser Bedingungen in NinjaTrader beginnen und beginnen Back-Testing und Optimierung. Ich werde auch Code in eine TOS-Strategie (viel einfacher für mich jetzt) ​​und starten Sie es live zu sehen, welche Art von Ergebnissen gibt es zurück. I8217m ziemlich aufgeregt über das Potenzial hier, und wenn dies korrekt programmiert wurde und kombiniert mit einem guten Handel-Management-Algorithmus, dieses System (theoretisch natürlich) könnte ein Geldautomat sein. Von 8220cash machine8221 Ich meine ein System mit A Gewinnrate höher als 60 Ein Gewinnfaktor größer als 2 Eine Erwartung von mehr als 2 Punkte Ein max Drawdown von nicht weniger als 7,5 Punkte fand ich Ihren Artikel über die Beseitigung von Chop mit linearen Regression ein paar Wochen Vor, I8217m auch ständig auf der Suche nach neuen Konzepten zur Beseitigung whipsaw und Ihre Ideen sind interessant. Ihr ChopFinder amp TANFinder Indikatoren, gibt es jede mögliche Weise, die Sie sie teilen konnten Wenn ich etwas interessantes finden, das sie verwendet, sind I8217d mehr als froh, Sie zu informieren, Dank und gutes Glück. Oh, übrigens nur überprüft Ihre About-Seite, I8217m von Dundee mich :), Gut zu hören von einem anderen schottischen Händler Wenn you8217re mit thinkorswim Ich kann Ihnen den Code für die Skripte, wenn you8217d wie If you8217re mit einer anderen Plattform, es shouldn8217t zu sein Schwer zu portieren, wenn Sie wissen, ein wenig über Ihre Plattform-Syntax. Lassen Sie mich wissen, wenn it8217s ok, um Sie per E-Mail auf Ihre Yahoo-Adresse. Das ist schiere Brillanz. Fast alle Trading-Systeme leiden unter Bereich gebundenen Trades, sei es Aktien, FX, Commodities8230 Aber Ihr Weg zeigt einen vielversprechenden Weg. Gibt es eine Möglichkeit, diese in die Amibroker-Plattform zu integrieren. Herzlichen Glückwunsch für die großartige Arbeit. Entschuldigung für die verspätete Antwort Udit, vielen Dank für das Verlassen eines Kommentars. Wenn you8217re alle vertraut mit thinkscript (oder wie man den Code mindestens interpretieren) kann ich einige von dem, was I8217ve an Sie arbeiten weiterleiten. I8217n arbeitete nicht mit Amnibroker so I8217m nicht sicher, welche Syntax oder Sprache es verwendet, um Skripte zu machen, aber wenn Sie wissen, ein wenig über ABs-Codierung dann shouldn8217t zu schwer, um es zu übersetzen. I8217m auf Urlaub jetzt aber I8217ll bekommen sie zusammen und leiten Sie, was ich gearbeitet habe. Hey8230 Ja sicher. Wäre es von großer Hilfe, wenn Sie mir den Code senden könnte. Ich kann versuchen, es konvertiert auf AB-Plattform. Schicken Sie es bitte an uditagarwallyahoo. Vielen Dank. Hi there 8211 nur dies zu überprüfen und zu sagen, 8211 wirklich beeindruckt mit Ihrer Arbeit. I8217d seien Sie überhaupt dankbar, wenn Sie den TOS Code mit mir teilen konnten außerdem. Chrishar00 gmail com. Kann Chris I8217ll E-Mail Sie den Code über das Wochenende. Danke für die Kommentare. Großes, thanks8230. Also, machst du mehr diskretionären Handel in diesen Tagen, oder immer noch mit einigen algorithmischen Handel It8217s alle diskretionary jetzt. Ich benutze den Code als mehr von einem Signal zu handeln, anstatt die Dinge voll automatisiert. Immer noch Probleme mit der Aufzeichnung der linearen Regressionswerte über N Perioden in TOS. Wenn Sie mir noch ein paar Tage geben können, werden I8217m neu schreiben und aufräumen, um ein wenig mehr zu codieren, da es einige Verbesserungen in der thinkscript-Syntax gab, seit ich das Original schrieb. I8217ll weiterleiten, wenn it8217s beendet. Wären Sie bereit, E-Mail mir den Code für diese für TOS Ich möchte versuchen, Portierung es NT7 wenn möglich. I zu einem Maschinenbauingenieur (Georgia Tech 821709) mit einer Anerkennung für die Märkte und I8217m, die durch Ihre einzigartige Annäherung an das whipsaw Problem intrigiert werden. Es scheint zu versprechen. Sie interessieren sich hier. Ihre Seite verdient viel mehr Besucher. Es kann viral, wenn Sie es anfänglichen Schub geben, weiß ich nützliches Werkzeug, das Ihnen helfen können, geben Sie einfach in Google: svetsern Verkehrstipps Hallo. I8217m sehr interessiert in Ihrer Strategie. Bitte senden Sie mir Ihre TOS-Code für diese stategy. Meine E-Mail ist reganbw1gmail.


No comments:

Post a Comment