Frage zu Optimierung

Einloggen oder registrieren, um einen Kommentar zu schreiben
lippmaje
394
lippmaje  

Hallo, ich optimiere gerade einige Parameter mit dem Strategietester und habe zwei Richtungen, in die ich weiter optimieren könnte. Die eine Richtung wäre besserer Profitfaktor bei weniger Trades. Hier habe ich einen Faktor von um die 2 erreichen können, bei ca 50 Trades, Nettoertrag etwa 300 USD. Die andere Richtung wäre besserer Gesamtertrag durch mehr Trades aber schlechterem Profitfaktor. Hier könnte ich auf ca 700 USD mit 250 Trades im selben Zeitraum kommen. Also nochmal tabellarisch:

Optimierung
Trades
Payoff
Profitfaktor
Drawdown
Ertrag
 Set 1
51
5.67
2.25
 1.08%289
 Set 2
 244 2.85 1.56 1.98% 696

Wie würdet ihr euch entscheiden?

Ist es besser auf weniger Trades zu setzen, auch wenn es nach weniger Gesamtertrag aussieht? Man weiß ja nicht, ob sich das Ergebnis so ähnlich im nächsten Zeitraum wiederholt. Oder sollte man eher aggressiv optimieren und versuchen, den maximalen Ertrag mit dem Set rauszuholen in der Hoffnung, dass sich das im nächsten Zeitraum in etwa so fortsetzt. Geht man mit einer höheren Anzahl an Trades nicht auch ein höheres Risiko ein, oder wird das Risiko durch mehr Trades besser gestreut?

PS: Da es keinen Vorstellungsthread gibt, sag ich hier einfach mal nachträglich Hallo an alle. Jens

Carl Schreiber
Moderator
7766
Carl Schreiber  

Deswegen hab ich mir mal dies Optimierungsziel entwickelt:

double OnTester() {
   double pr = TesterStatistics(STAT_PROFIT),                         // the bigger the better
          ev = TesterStatistics(STAT_EXPECTED_PAYOFF),                // the bigger the more robust against slippage etc
          dd = (0.01*TesterStatistics(STAT_EQUITYDD_PERCENT));        // the smaller the more lot I can trade
   if (dd == 0.0) return(100.0*pr);

   return ( 0.001*ev*(fabs(pr)) / ( 5.5*dd*dd+0.04 ) );
}

Viel Erfolg!

lippmaje
394
lippmaje  
Carl Schreiber:

Deswegen hab ich mir mal dies Optimierungsziel entwickelt:

Viel Erfolg!

Danke. Habe die Funktion eingebaut und gleich mal nach Custom-Werten sortiert. Set 2 liegt knapp vor Set 1 (es gab noch ein paar andere) trotz des höheren Drawdowns.

Was stellen denn die Konstanten im Nenner dar?

Carl Schreiber
Moderator
7766
Carl Schreiber  
Was stellen denn die Konstanten im Nenner dar?

Kennst Du schon unsere Zaubertaste F1?

Einfach den Kursor auf TesterStatisticks stellen und F1 drücken und ...

lippmaje
394
lippmaje  
Das habe ich gemacht. Gibt allerdings keinen Einblick, wie die Konstanten zustande kommen, also die 5.5 und die 0.04. Ich finde die Formel interessant.
Carl Schreiber
Moderator
7766
Carl Schreiber  
lippmaje:
Das habe ich gemacht. Gibt allerdings keinen Einblick, wie die Konstanten zustande kommen, also die 5.5 und die 0.04. Ich finde die Formel interessant.

Ausprobiert!

Christian
2552
Christian  
lippmaje:

Hallo, ich optimiere gerade einige Parameter mit dem Strategietester und habe zwei Richtungen, in die ich weiter optimieren könnte. Die eine Richtung wäre besserer Profitfaktor bei weniger Trades. Hier habe ich einen Faktor von um die 2 erreichen können, bei ca 50 Trades, Nettoertrag etwa 300 USD. Die andere Richtung wäre besserer Gesamtertrag durch mehr Trades aber schlechterem Profitfaktor. Hier könnte ich auf ca 700 USD mit 250 Trades im selben Zeitraum kommen. Also nochmal tabellarisch:

Optimierung
Trades
Payoff
Profitfaktor
Drawdown
Ertrag
 Set 1
51
5.67
2.25
 1.08%289
 Set 2
 244 2.85 1.56 1.98% 696

Wie würdet ihr euch entscheiden?

Ist es besser auf weniger Trades zu setzen, auch wenn es nach weniger Gesamtertrag aussieht? Man weiß ja nicht, ob sich das Ergebnis so ähnlich im nächsten Zeitraum wiederholt. Oder sollte man eher aggressiv optimieren und versuchen, den maximalen Ertrag mit dem Set rauszuholen in der Hoffnung, dass sich das im nächsten Zeitraum in etwa so fortsetzt. Geht man mit einer höheren Anzahl an Trades nicht auch ein höheres Risiko ein, oder wird das Risiko durch mehr Trades besser gestreut?

PS: Da es keinen Vorstellungsthread gibt, sag ich hier einfach mal nachträglich Hallo an alle. Jens

Konzentriere dich auf die reduzierung des Risikos bei leicht steigendem Gewinn.

Faktoren für mich wären nicht € sondern 10% per anno Gewinn bei einem maxiamlen DD von 15 % . Wobei dein DD in dem Beispiel natürlich sehr gut ist.

Die meisten Konten werden zerissen wenn ausergewöhnliche Ereignisse eintreten. ( Stichwort EUR/CHF :-) ) .

Splitten splitten splitten....Risiko verteilen.

Wie sehen forward Tests aus mit den Werten ? zb. 6monate optimieren Test danach 2 Monate

lippmaje
394
lippmaje  
Christian:

Konzentriere dich auf die reduzierung des Risikos bei leicht steigendem Gewinn.

Faktoren für mich wären nicht € sondern 10% per anno Gewinn bei einem maxiamlen DD von 15 % . Wobei dein DD in dem Beispiel natürlich sehr gut ist.

Die meisten Konten werden zerissen wenn ausergewöhnliche Ereignisse eintreten. ( Stichwort EUR/CHF :-) ) .

Splitten splitten splitten....Risiko verteilen.

Wie sehen forward Tests aus mit den Werten ? zb. 6monate optimieren Test danach 2 Monate

Saugute Ratschläge, danke. Das Risiko sein Konto zu schreddern würde ich bei Forex auch sehr hoch einstufen. Ich halte den Dow schon für riskanter als den Dax, da hier durchaus mal ein paar 100 Punkte in einer Minute weg sein können. Der EA oben war dann doch nicht so gut, auf Halbjahressicht. Also wieder an die Werkbank und weiter schnitzen.

Leider spinnt der Backtest jetzt völlig rum, die Testagenten stellen sporadisch einfach ihre Arbeit ein. Ich bekomme dann entweder Task rejected, Runtime error 500 oder der Testlauf endet fehlerlos nach genau 1 Trade. Ich kapier nicht was da los ist.

Christian
2552
Christian  
lippmaje:

Saugute Ratschläge, danke. Das Risiko sein Konto zu schreddern würde ich bei Forex auch sehr hoch einstufen. Ich halte den Dow schon für riskanter als den Dax, da hier durchaus mal ein paar 100 Punkte in einer Minute weg sein können. Der EA oben war dann doch nicht so gut, auf Halbjahressicht. Also wieder an die Werkbank und weiter schnitzen.

Leider spinnt der Backtest jetzt völlig rum, die Testagenten stellen sporadisch einfach ihre Arbeit ein. Ich bekomme dann entweder Task rejected, Runtime error 500 oder der Testlauf endet fehlerlos nach genau 1 Trade. Ich kapier nicht was da los ist.

Guck dir die Log Dateien der Tester an .Aber aktuell bastelt MQ da zu viel rum im Tester. Abwarten ...wird bald besser.

Auf dem Rechner nach den Files suchen. Das Datum ist immer der Dateiname -> datum.log

Beispiel heute -> 20190303.log

amando
1437
amando  
Christian:

Guck dir die Log Dateien der Tester an .Aber aktuell bastelt MQ da zu viel rum im Tester. Abwarten ...wird bald besser.

Auf dem Rechner nach den Files suchen. Das Datum ist immer der Dateiname -> datum.log

Beispiel heute -> 20190303.log

sagt mal geht nur die optimierung nicht oder gibts auch probleme beim Backtest wenn man mehrere Timeframes berechnen will?

lippmaje
394
lippmaje  
amando:

sagt mal geht nur die optimierung nicht oder gibts auch probleme beim Backtest wenn man mehrere Timeframes berechnen will?

Bei mir spinnt auch der normale Backtest rum. Ich verwende zwei Timeframes. Der erste Lauf ist erfolgreich, aber wenn man dann nochmals auf Start klickt kommt der Button sofort zurück. Im Tester Log steht dann sowas (Ausgaben gefiltert, drei Läufe):

RJ      3       15:14:17.582    Network additional connect from 127.0.0.1
LO      3       15:14:17.682    Network previous connect context not freed
HI      2       15:14:17.682    127.0.0.1       cannot accept connect, agent is busy
...
EP      3       15:14:20.515    Network additional connect from 127.0.0.1
IH      3       15:14:20.615    Network previous connect context not freed
HQ      2       15:14:20.615    127.0.0.1       cannot accept connect, agent is busy
... 
IS      3       15:14:33.660    Network additional connect from 127.0.0.1
EH      3       15:14:33.760    Network previous connect context not freed
QN      2       15:14:33.760    127.0.0.1       cannot accept connect, agent is busy
...
CO      0       15:14:45.093    127.0.0.1       prepare for shutdown

Nach ein paar Minuten Idle kommt dann noch:

JI      0       15:20:12.997    Server  MetaTester 5 stopped

Erst nach dieser Meldung funktioniert wieder der Backtest.

Einloggen oder registrieren, um einen Kommentar zu schreiben