Leon Lodewyks: Ich frage mich, ob mir jemand helfen könnte. Ich habe geschrieben, was ich für eine sehr einfache EA halte, aber wenn ich versuche, diese EA mit MT4 zu testen, scheint der Backtester für ein paar Trades zu arbeiten und stoppt dann (bis zum Ende ohne weitere Trades). Es ist fast wie es läuft aus dem Gedächtnis, aber ich weiß nicht, wie zu überprüfen, ob dies der Fall ist. Als Beispiel, wenn ich den Code vom 1. Januar 2016 bis heute zurücktest, könnte es ein paar Trades im Januar bis zum 10. Januar geben und dann schlägt es vor, dass es keine anderen Trades für die Rest des Jahres, aber wenn Sie Ihren Starttermin bis später im Monat setzen würden, würde es Trades platzieren. Könnte jemand vorschlagen, was das Problem sein könnte, da dies mich verrückt macht. Sie müssen Ihren Code posten, wenn Sie möchten, dass wir Ihnen helfen können. Wir können nur erraten, was das Problem sein kann. Alain Erwähnt Zeilen 128 und 278, aber ich glaube, er war nur scherzen, um den Punkt zu machen, dass wir nur erraten können, was das Problem sein kann, weil man keinen Code zum Betrachten gegeben hat. Allerdings stellen Sie auch sicher, dass Sie tatsächlich Geschichte Daten für den fraglichen Zeitraum, die getestet wird. Sie müssen Ihren Code posten, wenn Sie möchten, dass wir Ihnen helfen können. Wir können nur erraten, was das Problem sein kann. Alain Erwähnt Zeilen 128 und 278, aber ich glaube, er war nur scherzen, um den Punkt zu machen, dass wir nur erraten können, was das Problem sein kann, weil man keinen Code zum Betrachten gegeben hat. Allerdings stellen Sie auch sicher, dass Sie tatsächlich Geschichte Daten für den fraglichen Zeitraum, die getestet wird. Leon Lodewyks 2016.12.06 15:37 2016.12.06 15:37:40 4 Du musst deinen Code posten, wenn du uns helfen möchtest. Wir können nur erraten, was das Problem sein kann. Alain Erwähnt Zeilen 128 und 278, aber ich glaube, er war nur scherzen, um den Punkt zu machen, dass wir nur erraten können, was das Problem sein kann, weil man keinen Code zum Betrachten gegeben hat. Allerdings stellen Sie auch sicher, dass Sie tatsächlich Geschichte Daten für den fraglichen Zeitraum, die getestet wird. Haha. Vielen Dank Ich habe den Witz komplett verpasst :) Ich füge den Code ein, ich dachte, es kann ein generischer MT4-Fehler sein, also habe ich den Code nicht hinterlegt. Leon Lodewyks 2016.12.06 15:39 2016.12.06 15:39:55 5 Sorry - hier ist der Code. Ich habe Tickdata heruntergeladen und das versucht, aber auch nur durch das Herunterladen der Daten über das History Center. Beide, das gleiche Verhalten. Extern double Lots 0.01 extern doppeltes SL 50 extern doppeltes TP 50 extern int Magic 1 datetime Timeopen 3600 datetime Zeitleiste 0 double p, r1, r2, r3, s1, s2, s3 double heutehigh iHigh (Symbol (), PERIODD1. 0) double todaylow ILow (Symbol (), PERIODD1. 0) doppeltes yesterdayclose iClose (Symbol (), PERIODD1 1) double yesterdayhigh iHigh (Symbol (), PERIODD1 1) double yesterdaylow iLow (Symbol (), PERIODD1 1) p (gesternhoch gestern Gestern) 3 r1 (2 p) - yesterdaylow r2 p (gesternhoch - yesterdaylow) r3 (2 p) (gesternhigh - (2 yesterdaylow)) s1 (2 p) - yesterdayhigh s2 p - (gesternhigh - yesterdaylow) s3 (2 p) - ((2, gestern) - yesterdaylow) double previousCandleClosePrice iClose (Symbol (), PERIODCURRENT 1) double Pivot NormalizeDouble (p, Digits) double Resistance1 NormalizeDouble (r1, Digits) double Resistance2 NormalizeDouble (r2, Digits) double Resistance3 NormalizeDouble (r3 , Ziffern) doppelte Unterstützung1 NormalizeDouble (s1, Ziffern) double Support2 NormalizeDouble (s2, Ziffern) double Support3 NormalizeDouble (s3, Digits) Pivot Point if (vorherigesCandleClosePrice lt Pivot ampamp Pivot Ask ampamp (TimeCurrent () - Time 0) ltTimeopen) int ticket OrderSend (Symbol (), OPSELL, Lots, Bid. 5. Tip (TP 10 Punkt), Ask - (TP 10 Punkt), Pivot Point Sell, Magic, 0, Green) (Pivot Level: Pivot) if (Ticket gt 0) Timeopen TimeCurrent () - Zeit 0 neue String eingeben (Speicherzeitspanne von der Stangenöffnungszeit mit dem Eintrag bis zum Ausstiegszeitpunkt) Zeitleiste Zeit 0 neue String eingeben (Öffnungszeit der Leiste, die den ersten Eintrag hatte) Druck (Pivot Point Sell Placed) sonst Druck (Fehler beim Platzieren von Trade:. GetLastError ()) ((Falls ankündigen) bei (bei der Anmeldung bei TR) und bei TP bei (Ask - TP) zurückkehren (0) if (previousCandleClosePrice gt Pivot ampamp Pivot Bid Ampamp (TimeCurrent () - Time 0) ltTimeopen) Ticket-Gebot - (SL 10 Punkt), Gebot (TP 10 Punkt), Pivot Point Kaufen, Magic, 0, Grün) Drucken (Pivot Level: Pivot) if (ticket Gt 0) Timeopen TimeCurrent () - Zeit 0 Geben Sie einen neuen String ein (Speicherintervall von der Staböffnungszeit mit dem Eintrag bis zum Ausstiegszeitpunkt) Zeitleiste Zeit 0 Geben Sie einen neuen String ein (erinnern Sie sich an die Öffnungszeit der Leiste mit 1. Eintrag) Drucken (Pivot Point Buy Placed) sonst Druck (Fehler beim Platzieren von Handel:. (Bid-SL) und TP bei (BidTP)) Rückkehr (0) Widerstand 1 if (vorherigesCandleClosePrice lt Resistance1 ampamp Resistance1 Ask ampamp (TimeCurrent () - Time 0) LtTimeopen) int ticketResistance1 OrderSend (Symbol (), OPSELL, Lots, Bid 5. Fragen Sie (SL 10 Punkt), Ask - (TP 10 Punkt), Widerstand 1 Verkaufen, Magie, 0, Grün) if (ticketResistance1 gt 0) Timeopen TimeCurrent () - Zeit 0 Geben Sie einen neuen String ein (Speicherintervall von der Bar-Öffnungszeit mit dem Eintrag bis zum Exit-Moment) Timebar Time 0 geben Sie einen neuen String ein (erinnern Sie sich an die Öffnungszeit der Leiste mit 1. Eintrag) else Print (Fehler beim Platzieren von Trade: GetLastError ()) Druck (versuchte Eröffnungsreihenfolge bei: Bieten Sie mit SL bei (fragen Sie SL) und TP an (fragen Sie - TP)) zurück (0) Widerstand 2 if (vorherigesCandleClosePrice lt Resistance2 ampamp Resistance2 Ask ampamp (TimeCurrent () - Zeit 0) ltTimeopen) int ticketResistance2 OrderSend (Symbol (), OPSELL, Lots, Bid 5. Fragen Sie (SL 10 Punkt), Ask - (TP 10 Punkt), Widerstand 2 Verkaufen, Magie, 0, Grün) if (ticketResistance2 gt 0 ) Timeopen TimeCurrent () - Zeit 0 Geben Sie einen neuen String ein (Speicherintervall von der Staböffnungszeit mit dem Eintrag bis zum Ausstiegszeitpunkt) Zeitleiste Zeit 0 Geben Sie einen neuen String ein (erinnern Sie sich an die Öffnungszeit der Leiste mit 1. Eintrag) Handel: . GetLastError ()) Drucken (Versäumte Aufträge bei: Bieten Sie mit SL bei (fragen Sie SL) und TP an (fragen Sie - TP)) zurück (0) Widerstand 3 if (vorherigesCandleClosePrice lt Resistance3 ampamp Resistance3 Ask ampamp (TimeCurrent () - Zeit 0 ) (TP 10 Punkt), Resistance 3 Verkaufen, Magie, 0, Grün) if (ticketResistance3 gt 0) Timeopen TimeCurrent () - Zeit 0 Geben Sie einen neuen String ein (Speicherintervall von der Bar-Öffnungszeit mit dem Eintrag bis zum Ausstiegszeitpunkt) Zeitleiste Zeit 0 Geben Sie einen neuen String ein (erinnern Sie sich an die Öffnungszeit der Leiste, die den ersten Eintrag hatte) sonst Druck (Fehler beim Platzieren von Trade : (), Wenn du mich bei SL bei Tango bei (bitten Sie bei SL) und TP bei (Ask - TP) ankomme (0) if (vorherigesCandleClosePrice gt Support1 ampamp Support1 Bid Ampamp (TimeCurrent () - Time 0 ) Bid - (SL 10 Point), Bid (TP 10 Point), Support 1 Buy, Magic, 0, Green) Wenn (ticketSupport1 gt 0), ist es nicht möglich, Timeopen TimeCurrent () - Zeit 0 Geben Sie einen neuen String ein (Speicherintervall von der Bar-Öffnungszeit mit dem Eintrag bis zum Ausstiegszeitpunkt) Zeitleiste Zeit 0 Geben Sie einen neuen String ein (erinnern Sie sich an die Öffnungszeit der Leiste, die den ersten Eintrag hatte) sonst Druck (Fehler beim Platzieren von Trade Aufrechtzuerhalten. GetLastError ()) Drucken (Versäumte Aufträge bei: bei SL bei (Bid-SL) und TP bei (BidTP)) Rückgabe (0) if (vorherigesCandleClosePrice gt Support2 ampamp Support2 Bid Ampamp (TimeCurrent () - Time 0) ltTimeopen) Int TicketSupport2 OrderSend (Symbol (), OPBUY, Lots, Ask 5. Bid - (SL 10 Point), Bid (TP 10 Point), Support 2 Buy, Magic, 0, Grün) if (ticketSupport2 gt 0) Timeopen TimeCurrent ( ) - Zeit 0 Geben Sie einen neuen String ein (Speicherintervall von der Staböffnungszeit mit dem Eintrag bis zum Ausstiegszeitpunkt) Zeitleiste Zeit 0 Geben Sie einen neuen String ein (erinnern Sie sich an die Öffnungszeit der Leiste, die den ersten Eintrag hatte). Else (Error placeing Trade:. GetLastError (0) Wenn du (vorherigeCandleClosePrice gt support3 ampamp support3 Bid Ampamp (TimeCurrent () - Time 0) ltTimeopen) int ticketSupport3 OrderSend (Symbol (), OPBUY, Lots, Ask 5. Bid - (SL 10 Point), Bargeld (TP 10 Punkt), Stütze 3 Buy, Magic, 0, Grün) if (ticketSupport3 gt 0) Timeopen TimeCurrent () - Zeit 0 neue String eingeben (Intervall von der Bar-Öffnungszeit mit dem Eintrag bis zum Ausstiegszeitpunkt speichern) Zeitleiste Zeit 0 Geben Sie einen neuen String ein (erinnern Sie sich an die Öffnungszeit der Leiste, die den ersten Eintrag hatte). Else Print (Fehler beim Platzieren von Trade:. GetLastError ()) Drucken (Erkundungsaufträge bei: Fragen bei SL bei (Bid-SL) und TP bei (BidTP)) zurück (0) Leon Lodewyks 2016.12.06 17:11 2016.12.06 17:11:35 10 Auch, Was ist mit dem Timeopen TimeCurrent () - Time 0 und der (TimeCurrent () - Time 0) ltTimeopen) Es wird zu einem Punkt kommen, wenn man einen Unterschied von Null (oder einem oder einem sehr kleinen Wert) bekommen könnte und dann Sie werden nicht mehr in der Lage sein, Aufträge zu erteilen. EDIT: Überdenken dieser Situation, das ist wahrscheinlich der Hauptschuldige für dein Problem. Dies war eigentlich ein Code, den ich von unten genommen habe, um zu verhindern, dass die EA mehr als einmal in der gleichen Bar handelte. Die Rentabilität von Handelssystemen wird nicht nur durch die Logik und Präzision der Analyse der Finanzinstrumentendynamik, sondern auch durch die Qualität des Leistungsalgorithmus dieser Logik definiert. Falscher Trigger ist typisch für eine qualitativ hochwertige Leistung der Hauptlogik eines Handelsroboters. Wege zur Lösung des angegebenen Problems werden in diesem Artikel berücksichtigt. BacktestingOptimization Nicht gefragt sogar. Es war nur rhetorische Fragen (Frage mit Antwort innerhalb der Frage). Natürlich nein können wir nicht. Aber wir arbeiten mit diesem Tester und haben keine Wahl. 1. Manche Leute sagen: glaube nicht an mt4 Strategie Tester. Um über die jeweilige EA zu verstehen, musst du sie während der mehrere Jahre (5 oder 8 Jahre) auf Demo testen. 2. Die anderen Leute (Programmierer) sagen, dass nicht auch an Demo-Tests glauben. Sie müssen echtes Geld (während der 5 oder 8 Jahre) zu sagen: diese EA, die ich (Programmierer) erstellt sind gut (oder schlecht). In diesem Fall haben wir folgendes: Programmierer haben einige EAs vorgeschlagen, Tester geben ihr eigenes Geld aus, um zu beweisen, dass die Programmierer arbeiten. Und niemand ist selbstverständlich für irgendetwas verantwortlich. 3. Die anderen sagen, dass es auch nicht genug ist. Weil wir auf echtes Geld mit den verschiedenen Brokern und verschiedenen Zeitrahmen auch testen müssen (aber niemand sagte, woher dieses Geld zu bekommen ist). 3. Einige Leute verwenden mt4 Strategie-Tester, um etwas über bestimmte EA zu sagen. Was ist deine Wahl Wie die Leute testen Während des Backtestings können wir die verschiedenen Fälle haben: - Zum Beispiel tippt etwas EA sehr gut, ganz gut: Das bedeutet für mich nichts, weil Code von EA vom Programmierer angepasst werden kann sehr gut. - Wenn die EA sehr schlechte Ergebnisse während der Backtesting zeigt, werde ich auf die ursprüngliche Idee schauen, die versucht, etwas in der ursprünglichen Idee zu verbessern. - wenn die EA testet, aber manchmal gut und manchmal schlecht (nur zum Beispiel: gute Tests während der Oktober-Daten und schlecht während des September, gut für August usw.) ist diese EA sehr interessant für mich. Denn ich verstehe, dass es unmöglich ist, die stabilen guten Ergebnisse für immer zu haben (weil sich der Markt verändert und sich alles ändert, aber wir verwenden die gleichen Indikatoren und die gleichen EAs und ändern nichts). Ich denke, die Strategie-Tester ist ein guter Filter, es zeigt, wenn eine Strategie versprochen hat, zeigt Stärken und Schwächen einer bestimmten EA. Optimierung hilft, die Schwächen zu mildern und die Stärken auszunutzen. Live-Demo-Tests sorgen dafür, dass bei echten Live-Preisen die EA effizient mit dem Brokers-Server kommuniziert. Live Echtgeldtests beweisen die EA mit echten Ergebnissen. Ob es rentabel ist oder nicht. Mit mt4, man kann echt geldtest mit vielgrößen so klein wie 100 leben, oder ein penny a pip. Angesichts der Tatsache, dass Makler wie IBFX zahlen Zinsen auf Demo-Konten, aber nicht auf Live-Mini-Konten, ich glaube, es ist wichtig, echten Geld-Test mit der kleinsten Losgröße leben zu lassen, um sicherzustellen, dass die EA alle Hindernisse überwunden werden kann, zB , Swap-Gebühren, Mid-Day-Build-Upgrades, ISP-Unterbrechungen, nfp Tage, etc, etc. hey. Mein opimion mit ea ist gut sie sind ok, aber sie sagen nicht, was passiert wird in künftigen preis nur Vergangenheit Geschichte 1 Experte könnte gut funktionieren 1 oder 2 Jahre dann könnte funktionieren, wie ich hatte ein Buch in dänischen und die häufigste Strategie Ist so simpel wie ein gleitender Durchschnitt oben unterhalb, aber hier verpassen wir einige der oben und unten MT und Backtesting Ich bin neu in diesem Forum und möchte mit einigen Fragen zum Backtesting im MT beginnen. Ich lese im Netz, dass die Backtest-Ergebnisse von MT nicht angewiesen werden können. Kann jemand wirklich bestätigen, das ist da ein ernster Fehler in MT kann ich mir vorstellen, dass der Grund dafür in den meisten Fällen nur schlechte Systemprogrammierung ist. Wie wäre es mit dem Bar-Handling in MT, sagen wir, wir schauen uns täglich an. Ist Strategie-Tester nur bei OHLC zu sehen oder sieht es bei jedem einzelnen Tick intern diese Tatsache ist wichtig zu wissen. Das Verhalten wird sich in diesen 2 Szenarien unterscheiden, wenn wir 2 oder mehr Signale auf der gleichen Tagesleiste haben. Im neu zu diesem Forum und Englisch ist nicht meine Muttersprache. Zuerst möchte ich Ihnen für die hohe Qualität der Beiträge gratulieren. Nicht üblich in anderen Foren habe ich besucht Im Spiel Forex und Kodierung EA für einige Monate. Meine Hauptprobleme sind, warum ich so höhere Gewinne bekomme (sogar 1000Monat) beim Backtesting meiner EA als auf Live Ich habe viele verschiedene Strategien ausprobiert und kein Ergebnis spürbar, während toll am Backtest. Support sagt, dass Backtester nur OHLC-Daten verwendet, aber das ist nicht wahr, wie ich sehen, Preisänderung innerhalb der Bar auf Strategie-Tester. Übrigens verwende ich Metatrader 3.83 bauen 6231 von InterbankFX. Kann irgendjemand hilfreich sein Danke im Voraus Von meiner Erfahrung Strategie Tester von MT3 hat mindestens einen ernsthaften Fehler. Dieser Fehler trifft Sie, wenn Sie Limit Orders (OPSELLSTOP, OPBUYSTOP) verwenden. Zum Beispiel, wenn Ihr Kauflimit über dem tatsächlichen Preis ist, dann Strategie-Tester führt diesen Auftrag mit dem tatsächlichen Preis aus. Im wirklichen Leben hätte dieser Handel nicht stattgefunden, weil Kauflimit nicht erreicht wurde. Wie ich schon sagte, das ist aus meiner Erfahrung. Vielleicht können einige andere dies bestätigen Um sicher zu sein, dass du deine EA auf MT4 übertragen kannst und Test ist da. Ergebnisse sollten realistischer sein. Ja, Iomme. Ich stimme dir zu. Ich habe das Gefühl, dass so etwas passiert. Ich bemerkte, dass Stopp-Aufträge ganz einfacher als im Live-Modus verarbeitet wurden. Aber ich habe nicht das einzige Problem mit ST. Ich vermute, dass auch normale Aufträge etwas leichter sind, wie es kein Schlupf oder so ähnlich war. Die EAs habe ich geschrieben Kopfhaut zu profitieren in ST machen riesige Gewinne, sondern erhalten häufig ungültige Preise oder gehen Stoploss im Live-Modus. Ich würde gerne verstehen, wie genau ST auf die Simulation simuliert und in der Lage sein, EA anzupassen, um einen Teil dieser guten Gewinne zu bekommen. Lomme: Aus meiner Erfahrung Strategie Tester von MT3 hat mindestens einen ernsthaften Fehler. Dieser Fehler trifft Sie, wenn Sie Limit Orders (OPSELLSTOP, OPBUYSTOP) verwenden. Zum Beispiel, wenn Ihr Kauflimit über dem tatsächlichen Preis ist, dann Strategie-Tester führt diesen Auftrag mit dem tatsächlichen Preis aus. Im wirklichen Leben hätte dieser Handel nicht stattgefunden, weil Kauflimit nicht erreicht wurde. Wie ich schon sagte, das ist aus meiner Erfahrung. Vielleicht können einige andere dies bestätigen Um sicher zu sein, dass du deine EA auf MT4 übertragen kannst und Test ist da. Ergebnisse sollten realistischer sein.
No comments:
Post a Comment