English Русский 中文 Español 日本語 Português
Den Gewinn bis zum letzten Pip extrahieren

Den Gewinn bis zum letzten Pip extrahieren

MetaTrader 5Tester | 13 August 2019, 12:46
1 740 8
fxsaber
fxsaber

Einführung

Dieser Artikel handelt von einem der möglichen Ansätze für den algorithmischen Handel. MetaQuotes steht in keinem direkten Zusammenhang mit den Handelsplattformen und richtet sich an einen breiten Leserkreis. Wenn ein Begriff nicht eindeutig ist, verwenden Sie die Suche. Die Aufgabe, einen profitablen EA (Handelssystem oder einen anderen Roboter) zu finden, wird hier gelöst.

Wo soll man graben?

Das ist es, was jeder Händler versucht herauszufinden. Es wurden bereits Millionen von Versuchen unternommen. Wenn Sie mit bestehenden Lösungen zufrieden sind, können Sie diesen Artikel überspringen und zum nächsten wechseln. Aber die logischere Lösung wäre, den Schatz dort zu suchen, wo er nicht von der Menge gesucht wurde.

Die Erde

Die meisten Diskussionen über das Erstellen von Handelssystemen stehen im Zusammenhang mit der Verwendung historischer Bars und verschiedener darauf angewandter Indikatoren. Dies ist das am besten abgedeckte Feld und deshalb werden wir es nicht berücksichtigen. Bars sind künstliches Konstrukte, versuchen wir näher an die ursprünglichen Daten zu kommen - den Preis-Ticks. Dieser Ansatz kann uns einen Informationsvorsprung gegenüber der Menge verschaffen.

Unsere Schaufel

Die Aufgabe, Gewinne zu erzielen, ist recht schwierig. Daher besteht die Meinung, dass die Aufgabe durch komplexe intellektuelle Methoden gelöst werden sollte. Dazu gehören maschinelles Lernen, ökonometrische Mathematikmodelle, etc. Alle haben einen sehr großen Nachteil: eine lange Erstellungs- und Testphase (aufgrund der Komplexität der Berechnung). Gehen wir also den umgekehrten Weg, der sehr einfache und schnelle Ideen beinhaltet. So können wir nicht an einem bestimmten Ort, sondern in einem sehr großen Umfeld nach Marktmustern suchen.

Diese Methode mag dumm erscheinen. Aber es gibt so viele Informationen, dass es ineffizient ist, mit einer archäologischen Quaste an einem bestimmten Ort nach Schätzen zu suchen. Deshalb brauchen wir ein sehr gutes Forschungsinstrument. Dieses Tool muss in der Lage sein, mit Millionen von beliebigen Ticks zu arbeiten. Es muss schnell arbeiten. Es muss in der Lage sein, gefundene Ergebnisse komfortabel zu visualisieren. Es muss eine kurze und klare Anleitung haben.

Ein archäologischer Bagger

Es ist großartig, wenn Sie ein beliebiges mathematisches Paket verwenden können und fertige Entwicklungen haben, die den oben genannten Anforderungen entsprechen. Wenn nicht, nutzen wir den Strategietester der MetaTrader 5 Plattform mit allen seinen Vorteilen.

Dieses Tool beinhaltet eine große Anzahl von Ticks von verschiedenen Brokern und kann zusätzlich mit anderen Ticks arbeiten. Es speichert in seiner Datenbank Berechnungsergebnisse und kann verschiedene Parameter visualisieren. Es verfügt auch über einen eigenen multithreaded Optimierer, der auf einem vollständigen Test aller Variationen basiert, und einen genetischen Algorithmus, der auf Benutzerkriterien basiert.

Handelsalgorithmus

Wir brauchen auch eine einfache und schnelle Idee in Form eines Handelsalgorithmus. Es kann jede Idee sein. Das wichtigste Kriterium ist die Geschwindigkeit. Es wird auch empfohlen, Schleifen innerhalb von Algorithmen zu vermeiden. Erhalten wir einen neuen Tick, führen wir eine schnelle Aktion durch und verlassen das Programm wieder.

Eine der Varianten eines solchen Algorithmus wird als Grundlage für diesen Artikel verwendet. Dies mag der Kern des Artikels sein, der aus Gründen der Übersichtlichkeit offengelegt werden muss. Aber so ist das nicht. Der Zweck des Artikels ist nicht dieser spezifische Algorithmus. Deshalb wird er versteckt.

MQL5

Der Handelsalgorithmus ist als Expert Advisor in der Sprache MQL5 erstellt. Wir haben uns entschieden, keine Balken oder Indikatoren zu verwenden. Daher müssen wir mit Ticks und Positionen (der Positionshistorie) arbeiten. Solche Expert Advisors können bequem in MQL4 geschrieben und dann in einer Zeile in MQL5 umgewandelt werden, indem man die MT4Orders Handelsbibliothek verwendet.

#include <MT4Orders.mqh> // https://www.mql5.com/de/code/16006

Wir können einen plattformübergreifenden Code erstellen (der in MetaTrader 4/5 funktioniert), indem wir einige sehr nützliche Bibliotheken verwenden. Der Handelsalgorithmus muss schnell sein und ein Minimum an Kontrollen im Tester erfordern.

Quelle

Wo erhalten wir Preisdaten für die Suche? Es gibt viele Quellen für Ticks. Wählen wir uns eine.

Die Chancen, ein Goldnugget zu finden, sind wahrscheinlich höher, wenn wir es mit einer Gesteinsformartion zu tun haben, der eine höhere Konzentration an Gold aufweist. Daher werden wir eine Tickquelle mit einem höheren Gewinnpotenzial nutzen. Die Methode zur Bestimmung eines solchen Vergleichskriteriums wurde in einem Forumsbeitrag beschrieben (in Russisch, verwenden Sie die eingebaute Übersetzungsoption). Basierend auf dieser Methode habe ich dieses multi-Gigabyte große Archiv von Tickdaten ausgewählt. Milliarden von Ticks.

Benutzerdefinierte Ticks

Ticks können in den MetaTrader 5 Tester verwendet werden, indem man kundenspezifische Symbole verwendet. Dies kann für ein schnelles Verständnis zu kompliziert sein, deshalb verwenden wir das fertige Script ThirdPartyTicks, das solche Symbole basierend auf Daten aus dem ausgewählten Archiv der Kurse erstellt.

Das Startfenster von ThirdPartyTicks zum Herunterladen aller Kurse im Archiv


Kraftstoffzusatz

Milliarden von Ticks müssen innerhalb einer angemessenen Zeitspanne verarbeitet werden. Wir müssen Billionen von Ticks für die Eingabe des Handelsalgorithmus generieren, wenn wir nach Regelmäßigkeiten suchen. Es ist sehr zeitaufwendig, und deshalb brauchen wir einen Beschleunigungsmechanismus.

Eigentlich wird nicht jeder Tick benötigt. Da wir unseren Handelsalgorithmus kennen, müssen wir verstehen, welche Ticks nicht zu Handelsänderungen führen. Das bedeutet, dass wir leere Ticks identifizieren und aus der Historie entfernen können. Diese Filterung ist sehr effizient:

Alle Ticks (EURAUD.rann) = 61354152 (2134296Ticks/Sek.), Reserve = 80023750.
Erfassen...
Nach dem Filter (MinPips = 5) Ticks = 7820486 (12.75%)

Aus dem Protokolleintrag ist ersichtlich, dass die Anzahl der Ticks um fast eine Größenordnung reduziert wurde.

Der MetaTrader 5 Tester ist manchmal sehr sorgfältig (was durchaus nützlich sein kann) und führt eine große Anzahl von Berechnungen durch, die für die betrachtete Analyse unnötig sein können (manchmal sind sie auch fehlerhaft). Dies kann vermieden werden, wenn wir die Einzelheiten der Funktionsweise kennen, aber wir werden sie jetzt nicht berücksichtigen. Es gibt eine Forumsdiskussion zu diesem Thema (auf Russisch).

Hier ist, was wir für einen Handelsalgorithmus in MQL5 benötigen:

  • Öffnen/Schließen von Positionen nur über Limit-Orders.
  • Netting-Logik. Außerdem sollte ein Netting-Konto in MetaTrader 5 eröffnet werden.
  • Handel von 1 Lot — Gewinn in Pips.
  • Starten wir auf dem Server, auf dem es keine Provision für benutzerdefinierte Symbole im Tester gibt.
  • Das benutzerdefinierte Symbol sollte auf "exchange" gesetzt werden.

Ein einzelnes Startergebnis sollte wie folgt aussehen

Einzelstart 
    Ergebnis

Die hervorgehobene Spalte zeigt, dass eine Positionsumkehr über Limit-Orders durchgeführt wird. Sie werden alle zu genau dem gewünschten Preis ausgeführt. Eine genaue Ausführung zum gewünschten Preis ist sehr wichtig.

Trick

Das Marktverhalten hängt von der Tageszeit ab. Verwenden wir daher die Bibliothek BestInterval: dafür benötigen wir nur zwei Zeilen im EA-Quellcode:

#define BESTINTERVAL_ONTESTER // Optimization criterion - profit of the best interval.
#include <fxsaber\BestInterval\BestInterval.mqh> // Calculating the best trading interval

Dadurch werden zusätzliche Eingabeparameter im EA bereitgestellt.

Die Eingabeparameter für BestInterval

Wir optimieren nach dem Kriterium von BestInterval, das dem höchsten Gewinn erzielt, den der EA beim Handel nur zu einer bestimmten Tageszeit anzeigt.

Unser Bagger

Wir haben den Handelsalgorithmus vorbereitet. Gefilterte benutzerdefinierte Ticks sind ebenfalls verfügbar. Jetzt müssen wir sie irgendwie mittels des MetaTrader 5 Testers kombinieren. Dies kann durch die Möglichkeit des MultiTesters gelöst werden. Er verwendet automatisch jedes benutzerdefinierte Symbol und führt eine EA-Optimierung mit diesem Symbol durch.

Eingabeparameter zum Starten der Optimierung für alle benutzerdefinierten Symbole von Market Watch


Optimierungsintervall

Es hat keinen Sinn, das EA über die gesamte Geschichte zu optimieren - es wird schwer zu verstehen sein, ob es sich um eine Regelmäßigkeit oder eine Überanpassung handelt. Da wir uns von den Berechnungen einer "numerischen Dreschmaschine" leiten lassen, sollten wir mit einer großen Anzahl von Deals rechnen.

Je mehr Deals, desto besser für statistische Schlussfolgerungen. Je kleiner die Laufzeit der Deals, desto geringer das Risiko. Im Allgemeinen ist eine große Anzahl von Deals gut. Obwohl es hier nicht richtig erklärt wird.

Außerdem brauchen wir eine hohe Frequenz von Deals, daher können wir ein kleines Intervall wählen. Es kann immer noch eine gute Anzahl von Deals beinhalten.

Optimierungsintervall

Das ist etwas weniger als die letzten vier Monate.

Beginnen wir.


Artefakte

Alle Berechnungen mit 81 Symbolen (alle Daten aus der Archivquelle) wurden in 10 Stunden durchgeführt, von denen einige für den Schlaf des Autors verwendet wurden. Daher ist es sinnvoll, die Tests nachts durchzuführen. Da der MetaTrader 5 Tester mehrere Kerne verwendet, bietet er auch 10 Stunden zusätzliche Wärme.

Überprüfen Sie den Optimierungs-Cache in der MetaTrader 5 Testerdatenbank.

Optimierungs-Cache



Öffnen Sie einen Datensatz aus der Datenbank und sehen Sie sich die entsprechenden Optimierungsergebnisse für das ausgewählte Symbol an.

Alle Varianten (81) wurden manuell geprüft. Dieser Prozess kann automatisiert werden, ist aber noch nicht implementiert, deshalb musste ich eine Stunde dafür aufwenden. Lassen Sie uns eines der Symbole als Beispiel analysieren. Das Gleiche wurde für jedes der Symbole gemacht.

Ein Symbol aus den Optimierungsergebnissen


Hier ist das Optimierungsergebnis für ein Symbol, sortiert nach dem Kriterium BestInterval. Der Vorteil von benutzerdefinierten Symbolen besteht darin, dass es keine Begrenzung des negativen Saldos gibt. Das heißt, die Saldenhöhe beeinflusst den Handel nicht, also achten Sie nicht darauf.

Wir suchen nach einer großen Anzahl von Deals. Wählen Sie daher einen der Datensätze in der roten Spalte aus und führen Sie einen einzelnen Test durch. Das Handelschart ist unten dargestellt:

Der Handel Rund-um-die-Uhr



Es wurde Rund-um-die-Uhr gehandelt. Der folgende Datensatz befindet sich am Ende der Einzelprüfung:

BestInterval Action(true - single pass & MT4-style & Virtual is required) = false

Profit = -2392.00 = -2392.00 + 0.00 (0.00%) - Amount of Delete Intervals = 0 (2019.04.01 - 2019.07.20)
00:00:00 - 23:59:59 : Profit = -2392.00 (100.00%), Total = 2612 (70.64%), PF = 0.94, Mean = -0.92, DD = 3840.00, RF = -0.62
SUMMARY: 00:00:00 - 23:59:59 : Profit = -2392.00 (100.00%), Total = 2612 (70.64%), PF = 0.94, Mean = -0.92, DD = 3840.00, RF = -0.62

Profit = 4035.00 = -2392.00 + 6427.00 (-268.69%) - Amount of Delete Intervals = 1 (2019.04.01 - 2019.07.20), 20:00 - 08:00, CountHours = 11
00:00:00 - 07:58:54 : Profit = 1074.00 (26.62%), Total = 349 (76.22%), PF = 1.21, Mean = 3.08, DD = 709.00, RF = 1.51
19:41:38 - 23:59:59 : Profit = 2961.00 (73.38%), Total = 348 (76.44%), PF = 1.94, Mean = 8.51, DD = 358.00, RF = 8.27
SUMMARY: 00:00:00 - 23:59:59 : Profit = 4035.00 (100.00%), Total = 697 (76.33%), PF = 1.49, Mean = 5.79, DD = 484.00, RF = 8.34
BestInterval is saved in "TesterEA"-file in common(MT5)/base(MT4) folder.

final balance - InitBalance (10000.00) + Profit (-2392.00) without BestInterval.
OnTester - Profit (4035.00) with BestInterval.
final balance 7608.00 USD
OnTester result 4035

Aus dem Datensatz geht hervor, dass, um einen Gewinn von 4035 Pips zu erzielen, man von 20 Uhr bis 8 Uhr handeln sollte. Um zu sehen, wie der Handel aussieht, gehen wir zu den Eingabeparametern und aktivieren BestInterval

BestInterval-Aktivierung


Wir deaktivieren den Optimierungsmodus in MetaTrader 5. Hier wird er deaktiviert:

Deaktivierung der Optimierung für die BestInterval-Aktivierung


Starten und beobachten wir die Ergebnisse mit BestInterval.

BestInterval Anwendungsergebnis


Überprüfen wir die Protokolle von Einzeltests, um sicherzustellen, dass sie einwandfrei funktioniert haben.

BestInterval Action(true - single pass & MT4-style & Virtual is required) = true
Calculation time activated intervals is 2019.07.23 16:27:25 - TesterEA (common folder) 00:13:14 ago.

Amount of Delete Intervals = 1 (2019.04.01 - 2019.07.20), 20:00 - 08:00, CountHours = 11
00:00:00 - 07:58:54 : Profit = 1074.00 (26.62%), Total = 349 (76.22%), PF = 1.21, Mean = 3.08, DD = 709.00, RF = 1.51
19:41:38 - 23:59:59 : Profit = 2961.00 (73.38%), Total = 348 (76.44%), PF = 1.94, Mean = 8.51, DD = 358.00, RF = 8.27
SUMMARY: 00:00:00 - 23:59:59 : Profit = 4035.00 (100.00%), Total = 697 (76.33%), PF = 1.49, Mean = 5.79

final balance - InitBalance (10000.00) + Profit (4035.00) with BestInterval.
OnTester - Virtual InitBalance (10000.00) + Profit (-2403.00) without BestInterval. Profit is calculated with TickValue=1 and w/o Commission+Swap.
final balance 14035.00 USD
OnTester result 7597

Das Ergebnis scheint gut zu sein. Es gibt viele Deals und die Saldenkurve ist ziemlich glatt. Aber jetzt ist es notwendig, den EA über die gesamte Historie zu starten.

Überprüfen wir das Optimierungsergebnis mit der gesamten Historie.

Jedes Mal erhalten wir ein schreckliches Chart, das zeigt, dass wir eine mathematische Überanpassung der Ergebnisse im Optimierungsintervall hatten. Aber die Ergebnisse funktionieren in anderen Zeiträumen nicht. Wenn wir diese Strategie im realen Handel einführen, verlieren wir daher unser ganzes Geld.

Vorwärts-Prüfung

Der MetaTrader 5 Tester unterstützt den Vorwärtsprüfmodus. Meiner Meinung nach ist ein solches Testen eine Selbsttäuschung. Eine bessere Lösung ist es also, zwei-drei gute Ergebnisse in der gesamten Geschichte zu überprüfen. Wenn keines der Ergebnisse in der gesamten Historie gut abschneidet, verwenden wir die Strategie nicht. Der Vorwärtstest liefert viel mehr Ergebnisse, was auch eine Art Überpassung ist.

Gold

Wird der Chart immer so schlecht sein? In unserem Fall ist das so - optimierte Werte zeigen schlechte Ergebnisse, wenn sie in der gesamten verfügbaren Historie getestet werden.

Eines der Testergebnisse mit der gesamten Historie

Das Optimierungsintervall wird rot dargestellt. Wie Sie sehen können, ist eine gute Stabilität zu beobachten, wenn die Testzeit viel länger ist als das optimierte Intervall.


Juwelen schleifen

Nach allen Tests ist klar geworden, welches Symbol für die weitere Arbeit zu wählen ist: EURCHF. Der Bericht über den oben gezeigten Test:

Handelsergebnis der ganzen Historie

Die mathematische Erwartung in Pips ist rot markiert. Dies ist ein sehr wichtiger Parameter! Die Provision für EURCHF beträgt rund 4,40 Pips. Das bedeutet, dass zwei Drittel des Gewinns vom Broker genommen werden. Das ist zu viel.

Löschen wir BestInterval und fügen eine Eingabe hinzu, um die Handelszeit anzupassen. Beginnen wir mit der Optimierung am Ende der größten Drawdown-Zeit, die im obigen Diagramm grün markiert ist. Wenn es viele Parameter gibt, führen wir eine genetische Optimierung mehrmals durch.

Um starke Verzerrungen bei der Suche nach Regelmäßigkeiten während der Optimierung zu vermeiden, entfernen wir die Ausreißer.

Ungewöhnliche Spikes

Dafür schreiben wir Folgendes in den Sourcecode:

const bool TradeTime = (TimeCurrent() < D'2018.02.10') || (TimeCurrent() >= D'2018.02.12');

Dadurch ist es uns gelungen, den mathematisch Expected Payoff im ungefilterten Symbol zweimal zu erhöhen.

Martingal/Raster

Natürlich habe ich versucht, zusätzliche Methoden wie Auftragsraster und andere anzuwenden. Erstens war ich froh, das Wachstum des Expected Payoff zu sehen. Aber ich konnte den Grund nicht erklären. Ich habe herausgefunden, dass der MetaTrader 5 Tester eine andere Berechnung der Netting-Konten verwendet. Der berechnete Wert zeigt also nicht, was wir erwarten. Ich habe die richtige Berechnung geschrieben:

// Calculating expected payoff on hedging accounts corresponds to traditional calculation.
double OnTester()
{
  double Res = 0;
  
  if (HistorySelect(0, INT_MAX))
    for (int i = HistoryDealsTotal() - 1; i >= 0; i--)
      Res += HistoryDealGetDouble(HistoryDealGetTicket(i), DEAL_VOLUME);
  
  Res /= 2;
  
  if (Res)
    Res = TesterStatistics(STAT_PROFIT) / Res;
  
  return(Res);
}

Das Ergebnis bestätigte die Theorie, dass ein Raster eine gut optimierte Handelsstrategie nicht verbessern kann. Dies ist eine präzise und prägnante Schlussfolgerung.

Monetarisierung

Jetzt müssen wir entscheiden, wie wir die Idee umsetzen. Überprüfung der Handelsbedingungen verschiedener Broker (einschließlich der Preisentwicklung) und insbesondere der Umsetzung von Limit-Orders. Einige der Broker führen Limit-Orders durch Marktorders aus, was zu negativen Abweichungen führt. Einige der Orders verbieten die teilweise Ausführung von Limit-Orders. Vermeiden Sie solche Broker, da jeder Pip für uns wichtig ist (siehe Titel des Artikels). Daher müssen wir bei der Auswahl der Handelsbedingungen äußerst vorsichtig sein.

Die Handelsstrategie selbst beinhaltet eine große Anzahl von Positionen.

Beispiel eines Handels innerhalb einer Kursspanne


Ich habe es geschafft, einen geeigneten Ort zum Handeln zu finden. Die ersten Limit-Orders erreichen hier schnell den Liquiditätsgeber und erhöhen damit die Chancen der Auftragsabwicklung. Ein weiterer möglicher Bonus ist hier der mögliche Schlupf. Jeder Pip in der mathematischen Erwartung ist wichtig. Dies ermöglicht es, zumindest einen Teil der Provisionen zu decken.

Live-Handel

Der Live-Handel wurde auf der MetaTrader 4 Plattform durchgeführt. Daher habe ich die plattformübergreifende Funktion verwendet.

Um eine maximale Übereinstimmung von Real- und Testergebnissen zu erreichen, musste ich das folgende Operationsschema implementieren.

  • Beim Start des Expert Advisors wird über die Bibliothek HistoryTicks auf die Tick-Historie bis zum aktuellen Zustand zugegriffen.
  • Der Expert Advisor wird in der virtuellen Umgebung über die Virtuelle Bibliothek automatisch an diese Tick-Historie angepasst.
  • Die ganze Handelshistorie mit den angegebenen EA-Einstellungen bis zum aktuellen Zeitpunkt wird im Browser angezeigt. Dies ermöglicht die Minimierung der Fehlerwahrscheinlichkeit bei Eingabewerten. Wenn es einen Verlust gibt, dann muss es einen Fehler geben.
  • Das EA setzt den Handel in der virtuellen Umgebung beim jedem Tick fort. Wenn das EA ausgeschaltet ist, wird es nach dem Neustart so weiter gehandelt, als gäbe es keinen Stopp.
  • Die nicht-ideale reale Umgebung wird ständig mit der virtuellen Umgebung synchronisiert, wo die Ausführung perfekt ist.

Alle diese Schritte waren notwendig, um den Expected Payoff zu erhöhen. Ich würde diese Schritte jedoch für fast jedes Handelssystem anwenden. Natürlich können Sie diesen Teil weglassen, wenn Sie sich damit nicht beschäftigen wollen. Ich sehe jedoch, wie diese Schritte im realen Handel wirklich helfen können. Die Schritte sind für diese Handelsstrategie besonders wichtig.

Diversifikation

Es reicht nicht aus, nur einen Satz von Eingangswerten auszuwählen. Wir können nicht im Voraus wissen, welche der Optimierungsvarianten in Zukunft eine gute Performance aufweisen wird.

Deshalb habe ich schnell acht Varianten ausgewählt und die Balance zwischen ihnen gleichmäßig verteilt. Alle wurden gleichzeitig gestartet (auf acht Charts und jeder EA mit einer individuellen MagicNumber). Dies kann wie ein Raster aussehen. Aber es hat nichts mit einem Rasterhandel zu tun. Dies sind acht unabhängige Handelssysteme.

Kuchenstückchen

Angenommen, wir haben die Handelssysteme gestartet. Was können wir als Nächstes tun? Es gibt mehrere Möglichkeiten. Von Trust-Management und PAMMs bis hin zum Kopierdiensten von Signalen.

Da es sich um eine Pip-um-Pip Gewinnstrategie handelt, kann die Strategie als Signal nur für PR-Zwecke angeboten werden. Abonnenten werden nicht profitieren können, da sie beim Kopieren der Positionen Verluste erleiden werden. So wird der Expected Payoff für sie negativ werden. Das bedeutet, dass die Abonnenten höchstwahrscheinlich Geld verlieren werden.

Wenn eine Handelsmethode für alle veröffentlicht wird, kann dies zu einem Reverse Engineering des gesamten Systems oder seiner Grundprinzipien führen. Dies wäre eine weitere Möglichkeit, von einem öffentlich zugänglichen System zu profitieren.

Außerdem gibt es eine Möglichkeit, zu sehen, wie ein scheinbar gutes System die Einalge verliert. Das ist unvermeidlich.

Erinnerungen

Bei einer Recherche zu einem bestimmten Thema stoßen Sie auf verschiedene Situationen. Ich erinnere mich auch an einige wenige Fälle. EURDKK wurde in diesem Thread erwähnt (auf Russisch).

Das Ergebnis eines im roten Intervall optimierten Handelssystems.

Diese Grafik zeigt die Performance eines Handelssystems, das im roten Bereich optimiert wurde. Ich kann es jetzt nicht reproduzieren. Aber ich erinnere mich, dass das Bild links neben dem Optimierungsintervall besser war und als gerade Linie dargestellt wurde. Dies war fast ein Gral, der auf einem realen Konto ausgeführt wurde und eine ähnliche Leistung wie im Tester zeigte. Nach Neujahr begann er immer wieder zu verlieren. Ich war weise genug, den Handel einzustellen. Ich habe etwa 10% der früher verdienten Mittel verloren. Ich weiß immer noch nicht, was das verursacht hat.

Die wichtigste Schlussfolgerung dabei ist, dass selbst ein fast perfekter Gral Verluste verursacht. Aber ich erinnerte mich an diesen Fall aus einem anderen Grund.

Der Grund ist das Symbol NOKSEK. Haben Sie jemals auf dieses Symbol geachtet? Warum wohl?


Schlussfolgerungen

Der Artikel widmet sich einen bestimmten philosophischen Kampf: die "numerische Dreschmaschine" gegen den klassischen intellektuellen Ansatz. Sie können die zu Ihnen passende Lösung selber wählen.

Einige Tricks und Ideen könnten hilfreich sein.

Es gibt eine interessante Aussage hinter allen Überlegungen in diesem Artikel: Wenn Sie ein profitables Handelssystem in Ihren Händen haben, dann ist es wahrscheinlich, dass Sie es nie erfahren werden. Ich denke, viele gute Systeme wurden weggeworfen. Der Artikel hat gezeigt, dass das Testen eines Handelssystems nicht nur den Start mit ein/zwei Symbolen bedeutet.

Man sollte zu verschiedenen Tageszeiten testen. Die Monte-Carlo-Methode ist nicht die erste Wahl. Dies kann Rückschlüsse auf die Rentabilität des Systems erschweren.

Universelle Systeme dürften kaum Gewinne abwerfen. Sie können um jeden Pip kämpfen.

Was den MetaTrader 5 Tester betrifft, so ist es manchmal großartig! Manchmal ist es enttäuschend, aber ohne den Tester wäre es unmöglich, eine solche Studie durchzuführen. Vielen Dank an die Entwickler! Ich hoffe, dass in Zukunft verbesserte Versionen veröffentlicht werden.

Was noch?

Ich konnte das Folgende nicht in diesen Artikel aufnehmen:

  • Andere Symbole.
  • Berechnung des Schlupfs im MetaTrader 5.
  • Demonstration, wie die Provision durch die positive Abweichung der Limit-Order abgedeckt wird.
  • Der Nachweis, dass der Take-Profit vom derzeit verfügbare MetaTrader 5 nicht zur Verwendung geeignet ist.
  • Die Wirkung von Swaps auf die Ergebnisse.
  • Das EURCHF-System zeigt sehr ähnliche Verluste in den Monaten Mai 2018 und Mai 2019.
  • Erstellung von Kriterien zur Beurteilung der Gültigkeit des Handelssystems durch den Auto-Optimierer.
  • Erstellung von gemischten Symbolen.
  • Die Bedeutung der vollständigen Parameterprüfung vor der Genoptimierung.
  • Die Umkehrung eines Symbols sollte sich nicht auf die gefundenen Regelmäßigkeiten und die Performance des Handelssystems auswirken.
  • Die Interpretation der Testergebnisse ist wichtig.
  • Spread oder lokale Extrema.

Übersetzt aus dem Russischen von MetaQuotes Ltd.
Originalartikel: https://www.mql5.com/ru/articles/7113

Letzte Kommentare | Zur Diskussion im Händlerforum (8)
fxsaber
fxsaber | 24 Aug. 2019 in 23:43

Forum für Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

Diskussion des Artikels "Scratch Profit bis zum letzten Pip"

fxsaber , 24.08.2019 23:38

Genau ein Monat ist seit der Veröffentlichung des Artikels vergangen. Zwischenergebnis.

 

HaraldSchurr
HaraldSchurr | 20 Sept. 2019 in 09:35

Hallo fxsaber,


Ich denke, dass 109% im ersten Monat für sich sprechen und sehr interessant klingen.

Aber irgendwie fehlt mir total der Ansatz dazu Deine Veröffentlichung zu verstehen.

Um den Inhalt Deiner Veröffentlichung verstehen zu können hilft es vielleicht als ersten Schritt einmal Deine Motivation kennenzulernen:

Daher erlaube mir bitte folgende Fragen:

Hast Du Dir all die Mühe mit dem Artikel gegeben, weil ... :

1. ..., weil Du einen Indicator oder EA verkaufen möchtest? Dann wäre mir klar, warum ich nichts verstehe - weil es geheim ist.

2  ..., oder weil Du Menschenfreund bist und der Menschheit einen wertvollen Rat erteilen möchtest?

3. ..., weil Du bewundert werden möchtest?  

4. sonst irgendwas

Ich freue mich auf Deine Antwort.  Grüße Harald

fxsaber
fxsaber | 20 Sept. 2019 in 09:57
HaraldSchurr:

Hallo fxsaber,


Ich denke, dass 109% im ersten Monat für sich sprechen und sehr interessant klingen.

Aber irgendwie fehlt mir total der Ansatz dazu Deine Veröffentlichung zu verstehen.

Um den Inhalt Deiner Veröffentlichung verstehen zu können hilft es vielleicht als ersten Schritt einmal Deine Motivation kennenzulernen:

Daher erlaube mir bitte folgende Fragen:

Hast Du Dir all die Mühe mit dem Artikel gegeben, weil ... :

1. ..., weil Du einen Indicator oder EA verkaufen möchtest? Dann wäre mir klar, warum ich nichts verstehe - weil es geheim ist.

2  ..., oder weil Du Menschenfreund bist und der Menschheit einen wertvollen Rat erteilen möchtest?

3. ..., weil Du bewundert werden möchtest?  

4. sonst irgendwas

Ich freue mich auf Deine Antwort.  Grüße Harald

English:

I do not have enough willpower to make trading tools only for myself. When I share them, I must clearly articulate my results and should bring them into a convenient state. It helps me

I also receive feedback in the form of error messages, new ideas and suggestions. Interested parties contact me and sometimes give useful information.


German (Google Translate)

I do not have enough willpower to make trading tools only for myself. When I share them, I must clearly articulate my results and bring them into a comfortable state. It helps me

I also get feedback in the form of error messages, new ideas and suggestions. Interested parties contact me and sometimes give useful information.

fxsaber
fxsaber | 21 März 2020 in 14:28

Forum on trading, automated trading systems and testing trading strategies

Discussion of article "Extract profit down to the last pip"

fxsaber, 2020.03.21 14:25

I already know a few people who were very helpful in the article. They are in good profit at the moment. Mostly due to the storm in the markets. Those. recently.

Meanwhile, the long-running account monitored for the article made its way to Top10 on some monitoring services. We do not raise the risk, we stumble, we learn.

Optimierungsmanagement (Teil I): Erstellen einer GUI Optimierungsmanagement (Teil I): Erstellen einer GUI
Dieser Artikel beschreibt den Prozess der Erstellung einer Erweiterung für das MetaTrader-Terminal. Die vorgestellte Lösung hilft, den Optimierungsprozess zu automatisieren, indem Optimierungen in anderen Terminals durchgeführt werden. Es werden noch einige weitere Artikel zu diesem Thema geschrieben. Die Erweiterung wurde unter Verwendung der Sprache C# und der Designmuster entwickelt, was zusätzlich die Fähigkeit demonstriert, die Terminalfunktionen durch die Entwicklung benutzerdefinierter Module zu erweitern, sowie die Fähigkeit, benutzerdefinierte grafische Benutzeroberflächen mit der Funktionsvielfalt einer bevorzugten Programmiersprache zu erstellen.
Bibliothek für ein leichtes und schnelles Entwickeln vom Programmen für den MetaTrader (Teil X): Kompatibilität mit MQL4 - Ereignisse der Positionseröffnung und der Aktivierung von Pending-Orders Bibliothek für ein leichtes und schnelles Entwickeln vom Programmen für den MetaTrader (Teil X): Kompatibilität mit MQL4 - Ereignisse der Positionseröffnung und der Aktivierung von Pending-Orders
In den vorherigen Artikeln haben wir begonnen, eine große plattformübergreifende Bibliothek zu erstellen, die die Entwicklung von Programmen für MetaTrader 5 und MetaTrader 4 Plattformen vereinfacht. Im neunten Teil haben wir begonnen, die Bibliotheksklassen für die Arbeit mit MQL4 zu verbessern. Hier werden wir die Bibliothek weiter verbessern, um ihre volle Kompatibilität mit MQL4 zu gewährleisten.
Bibliothek für ein leichtes und schnelles Entwickeln vom Programmen für den MetaTrader (Teil XI). Kompatibilität mit MQL4 - Ereignisse des Schließens von Positionen Bibliothek für ein leichtes und schnelles Entwickeln vom Programmen für den MetaTrader (Teil XI). Kompatibilität mit MQL4 - Ereignisse des Schließens von Positionen
Wir setzen die Entwicklung einer großen plattformübergreifenden Bibliothek fort, die die Entwicklung von Programmen für MetaTrader 5 und MetaTrader 4 Plattformen vereinfacht. Im zehnten Teil haben wir unsere Arbeit an der Bibliothekskompatibilität mit MQL4 fortgesetzt und die Ereignisse der Eröffnung von Positionen und der Aktivierung von offenen Orders definiert. In diesem Artikel werden wir die Ereignisse des Schließens von Positionen definieren und die nicht verwendeten Auftragseigenschaften beseitigen.
Organisation einer Mailing-Kampagne mit den Google-Services Organisation einer Mailing-Kampagne mit den Google-Services
Ein Händler kann eine Mailing-Kampagne organisieren, um Geschäftsbeziehungen zu anderen Händlern, Abonnenten, Kunden oder Freunden zu pflegen. Außerdem kann es notwendig sein, Screenshots, Logs oder Berichte zu versenden. Dies sind vielleicht nicht die am häufigsten auftretenden Aufgaben, aber eine solche Möglichkeit ist eindeutig von Vorteil. Der Artikel beschäftigt sich mit der gleichzeitigen Nutzung mehrerer Google-Dienste, der Entwicklung einer geeigneten Assembly auf C# und der Integration mit MQL-Tools.