Inhalte aufrufen

  • Über WindowsLive anmelden Log In with Google Anmelden
  • Mitglied werden
Profilbild

Wie greift man auf die Resultate nach (während) dem Testen zu?

- - - - -

  • Du kannst leider keine neuen Themen eröffnen
  • Please log in to reply
11 Antworten zu diesem Thema

  #1
ONLINE   osterchrisii

Hallo!

 

Ich baue weiter an meinem Indikator-testenden EA. Ich kann leider fast keine Information dazu finden, wie ich nach abgeschlossenem Test auf die Ergebnisse zugreifen kann. Ich habe eine sehr einfache Rechung vor:

 

Wenn der EA fertig getestet hat würde ich gerne auf die Resultate zugreifen und drei Variablen erfassen:

Please Login or Register to see this Hidden Content

Ich hätte gerne am Ende des Tests eine Variable winratio:

Please Login or Register to see this Hidden Content

Und wenn es irgendwie ginge, wäre es toll, das in der Funktion OnTester() unterzubringen, sodass ich über diese Variable optimieren kann. Leider ist die MQL4 Dokumentation so dünn, dass ich es selbst nicht herausfinden kann.

 

Vielen Dank für jegliche Hilfe!!


Bearbeitet von osterchrisii, 10 July 2019 - 12:10 Uhr,


  #2
OFFLINE   frlaspina

Hallo Osterchrisii, mir ist deine Frage nicht ganz klar. Das Winratio dass du in der Formel wünscht, ist ja bereits im Backtest Resultat als Profitfaktor schon da, das ist doch was du möchtest oder nicht? Gruß, frlaspina

Bearbeitet von frlaspina, 10 July 2019 - 13:01 Uhr,

Klingt doof aber es ist so: Steigt der Kurs dann steigt er, fällt der Kurs dann fällt er! (Meine) Dow Theorie
"Fragen zum Trading System Development - PN an mich!"

  #3
OFFLINE   Netsrac

Wenn es nur darum geht, den Wert am Ende auszugeben (Du sprichst ja von "abgeschlossen"), könntest Du die Variablen im EA hochzählen und in der OnDeInit() schlussendlich zum Beispiel mit

Please Login or Register to see this Hidden Content

ausgeben. OnDeInit läuft ja immer dann, wenn "es zu Ende" ist.

 

EDIT: Ok. Ich sehe gerade, Du schreibst in der Überschrift "während". Dann verstehe ich auch nicht. ;-)


Bearbeitet von Netsrac, 10 July 2019 - 13:09 Uhr,

Hilfreiche Tools für den diskretionären Handel findest Du auf meiner MQL5-Seite


  #4
OFFLINE   -ixbone-

Einfach alle 5 Minuten eine Funktion aufrufen die alle Variablen (OrderSelect History Abfrage) bedient und die Werte getrennt in eine CSV speichern.

Tip: FILE_WRITE, FILE_CSV



  #5
ONLINE   osterchrisii

Okay, habe ich vielleicht vergessen, dazuzusagen: Ich will damit nur Entry-Indikatoren testen. Ich will also nicht den Profitfaktor meines EAs wissen, sondern lediglich, wie oft mein Indikator mir den richtigen Einstieg bedeutete. Also, ob er erst ins S/L oder erst ins T/P lief. Wenn mir der Indikator ein gegensätzliches Signal gibt (also während der offene Trade weder ins SL noch in TP gelaufen ist), so wird der Trade geschlossen und dieser rausgerechnet. Bis jetzt zähle ich das händisch, wenn der EA fertig ist.

 

Wegen "während" und "nach" dem Testen: Ich weiß es eben auch nicht genau. Die MQL4 Referenzen sind alle so dünn und unpraktisch, dass es mir oft unmöglich ist, etwas selber rauszufinden. Ich verstehe selber nicht ganz, wann diese Rechnung stattfinden muss, sodass ich diesen Parameter optimieren kann. Ich denke aber, es muss innerhalb OnTester() sein.

 

Ich teste auch nur fertige, daily Kerzen. Alle meine Tests dauern also nur eine Sekunde oder weniger. Ich bin rein am backtesten für jetzt.

 

Danke für den Hinweis mit der CSV, das könnte klappen, wenn auch vielleicht nicht der optimale Weg.



  #6
ONLINE   alexf82

das problem ist ja eher, dass es im mql4 keine funktion oder event "onTP" oder "onSL" gibt.

sprich, du musst das manuell zählen.

dazu hast du mehrere möglichkeiten.

du baust dir eine funktion in den ea, der die anzahl der order zählt. ändert sich die anzahl kannst du in der history nachsehen, ob der tp/sl getroffen wurde.

eben so wie ixbone geschrieben hat.

 

wenn du nur eine anzahl wissen willst, würde ich mir die arbeit mit csv nicht antun. ich würde einfach zwei variablen definieren (für tp und sl) und würde diese hochzählen und am ende im OdeInit mit Print ausgeben.



  #7
OFFLINE   CashDigger

Wegen "während" und "nach" dem Testen: Ich weiß es eben auch nicht genau. 

 

Beides. Logge "während" einfach intern die Statistik und gebe sie bei deinit ("nach") wieder aus.

 

wie @ alexf82 schreibt ZB lege zwei Variablen an:

int Anzahl_TP = 0;

int Anzahl_SL = 0;

 

Wenn TP getroffen dann Anzahl_TP++;

Wenn SL getroffen dann Anzahl_SL++;

 

Und in deinit lässt du sie dir per Print ausgeben oder schreib es in eine CSV.

 

C$D


Bearbeitet von CashDigger, 10 July 2019 - 15:41 Uhr,


  #8
ONLINE   osterchrisii

@

Please Login or Register to see this Hidden Content

, @

Please Login or Register to see this Hidden Content

, vielen Dank für den Input. Dahingehend werde ich mich bewegen.

 

Aber ich weiß leider immer noch nicht, wie ich nachgucken kann, was von beiden getroffen wurde. Ich sehe allerdings, dass es in meinen "Ergebnissen" eben die Ordertypen "S/L", "T/P" und "Close" gibt und ansonsten kommt nichts vor. Deswegen dachte ich, man kann vielleicht einfach über die Ergebnisse iterieren und halt die Anzahl da rausziehen. Da bin ich eben auf der Suche nach der Methode.


Bearbeitet von osterchrisii, 10 July 2019 - 16:40 Uhr,


  #9
OFFLINE   CashDigger

Wenn du die Order öffnest gibts du in der Orderanweisung sowieso einen TP und SL an. Diese Werte kann man zusätzlich in Variablen zwischenspeichern und jeden Tick abfragen ob sie getriggert wurden (<= oder >=, kein = denn Wert kann übersprungen werden!)



  #10
ONLINE   alexf82

entweder du machst es wie CashDigger schreibt.

oder du prüfst auf die trades in der historie. wurde der sl/tp getroffen, steht das auch im ordercomment drin!



  #11
OFFLINE   frlaspina

Nach deinen Erklärungen, denke ich dass du einfach die gewinntrades und verlusttrades selektieren kannst, die werte kannst du verarbeiten wie du es brauchst und die Ergebnisse am Bildschirm anzeigen lassen kannst. Die laufen dann im visuellen backtest mit. Die gewinnetrades sind logischer Weise die trades die TP erreicht haben und die verlusttrades sind die die SL erreicht haben. Siehe Orderselect Funktionen. Die selectierten ergebnisse kannst du je nach Formel als Anzahl, GV Pips oder Geld ausgeben lassen.

Bearbeitet von frlaspina, 10 July 2019 - 22:23 Uhr,

Klingt doof aber es ist so: Steigt der Kurs dann steigt er, fällt der Kurs dann fällt er! (Meine) Dow Theorie
"Fragen zum Trading System Development - PN an mich!"

  #12
ONLINE   osterchrisii

Habs hingekriegt. Hier mein (noch sehr frisches) Resultat für alle Interessierten:

Please Login or Register to see this Hidden Content

Achso PS: Hier nicht ersichtlich, ich errechne die geschlossenen Trades schon jeweils beim Schließen der Trades (andere Funktion).


Bearbeitet von osterchrisii, 10 July 2019 - 22:32 Uhr,




Similar Topics

  Thema Eröffnet von Statistik Letzter Beitrag




0 Benutzer lesen gerade dieses Thema

0 Mitglieder, 0 Gäste, 0 anonyme Nutzer