Du wählst doch vor dem Start der Optimierung, welche Werte in der Tabelle erscheinen sollen. Genau diese findest Du dann auch auf der z-Achse wieder. Schau Dir mal die custom-Spalte an und schreib Dir eine OnTester() Funktion dafür.
Du wählst doch vor dem Start der Optimierung, welche Werte in der Tabelle erscheinen sollen. Genau diese findest Du dann auch auf der z-Achse wieder. Schau Dir mal die custom-Spalte an und schreib Dir eine OnTester() Funktion dafür.
Danke schonmal für Eure Antworten. Mir ist gerade erst aufgefallen, dass "Balance" der Endkontostand ist, d.h. das Geld was man in dem Zeitraum verdient hätte plus den Initialstand.
Ich dachte bisher, das heißt irgendwas mit ausgewogen. Okay gut...
Wie funktioniert das mit der OnTester() Funktion, wird die Funktion einfach in den EA reingschrieben oder per #include eingebunden und dann ist sie im Tester unter Custom max verfügbar?
Ach warte, hier steht was: https://www.mql5.com/de/articles/286
Gutes Neues Jahr!
- www.mql5.com
Danke schonmal für Eure Antworten. Mir ist gerade erst aufgefallen, dass "Balance" der Endkontostand ist, d.h. das Geld was man in dem Zeitraum verdient hätte plus den Initialstand.
Ich dachte bisher, das heißt irgendwas mit ausgewogen. Okay gut...
Wie funktioniert das mit der OnTester() Funktion, wird die Funktion einfach in den EA reingschrieben oder per #include eingebunden und dann ist sie im Tester unter Custom max verfügbar?
Ach warte, hier steht was: https://www.mql5.com/de/articles/286
Gutes Neues Jahr!
die gehört in den EA, Du kannst natürlich auch was schreiben, in ein Include packen und das dann über den EA aufrufen, dann kannst du es immer verwenden
https://www.mql5.com/de/docs/event_handlers/ontester
- www.mql5.com
Einfach in den EA irgendwo reinsetzen. Nimm die z.B.:
double OnTester() { double profit = TesterStatistics(STAT_PROFIT); // Gesamtgewinn // return profit; double payoff = TesterStatistics(STAT_EXPECTED_PAYOFF); // Gewinn pro Trade int trades = (int)TesterStatistics(STAT_TRADES); // Anzahl Trades double expected_slippage = 10 * _Point; // erwartete Slippage im Livebetrieb double expected_profit = trades * (payoff-exp_slippage); // erw Gewinn einschl Slippage return expected_profit; }
Hiermit kannst Du nach dem erwarteten Gewinn im Livebetrieb optimieren. Dazu setzt Du bei 'expected_slippage' einen Erfahrungswert aus den bisherigen Live-Trades ein.
Das ergibt ein viel realistischeres Bild, da die vielen Trades mit eher kleinen positiven Gewinnen rausfallen bzw sogar negativ gewertet werden.
Sieht in der 3D-Darstellung auch teilweise recht eindrucksvoll aus. Du könntest auf der x/y-Achse z.B. nach SL und TP optimieren.
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Gestern fiel mir auf, dass wenn man mit Rechtsklick in das Diagrammfenster der Optimierung klickt, ein kleines Dropdownmenu erscheint, wo man "3D Graph" auswählen kann und dann verschiedene Kombinationen von variablen Werten auf die X- und Y-Achsen legen kann um zu sehen, wie die Zusammenhänge sind. Das ist eine super Idee, nur die Umsetzung ist etwas dürftig, man kann als z-Achse nämlich gar nichts auswählen und bekommt irgendwelche "Ergebnisse", was überhaupt nicht aussagekräftig ist. Könnte man doch für die Z-Achse Gewinn eintragen, dann bräuchte man nicht mit Excel herummachen...
Aber wie immer kann ich nicht ausschließen, dass ich etwas übersehen habe. Oder vielleicht gibt es das was ich möchte ja schon in anderer Form.
Jetzt habe ich mir mal dreidimensionale Darstellungen angesehen, verstehe jedoch nicht, wie ich die Daten der Optimierung dafür verwenden kann.
Außerdem habe ich mich einmal mit der Möglichkeit beschäftigt, ein Programm zu kaufen, mit dem man aus drei Spalten X, Y, und Z eine Matrix für die dreidimensionale Darstellung in Excel erstellen kann.
Bin schon sehr gespannt und freue mich auf Eure Beiträge.
Grüße