Zum Inhalt springen
View in the app

A better way to browse. Learn more.

#T/N/X/T

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Backtest

Geschrieben

Ich würde gerne einen Backtest von verschiedenen ea´s machen. Wie kann ich das machen?

Was brauche ich? Wie gehe ich vor?

 

Grüsse Jörg

Featured Replies

Geschrieben

Hab auch noch versucht, herauszufinden, was man mit dem Häkchen bezweckt- Viel gefunden habe ich nicht, einzig verwertbar aber nicht mit MT4 : http://de.wikipedia.org/wiki/Genetischer_Algorithmus

 

Bei einem genetischen Algorithmus kann man ganz allgemein sagen das er versucht "schnell was möglichst gutes" zu finden. Er scannt dabei nicht schritt für schritt den gesamten Parameterraum, sondern nimmt eine "zufällige" Kombination aus dem Raum und testet sie. Nach ein paar solchen "zufälligen" Kombinationen versucht er sich ein Bild zu machen in welchem Bereich im Parameterraum es gute Ergebnisse geben dürfte und in welchem eher nicht. Demnach nimmt er sich von da an eher Kombinationen aus dem "guten Bereich (mit ein paar Ausreißern um zu schaun obs nicht doch woanders noch besser wäre).

Wie MT es genau implementiert hat kann man nit sagen.

Vorteil von Genetischen: Er scannt einen riesen Parameterraum recht schnell und man bekommt ein grobes Gespür wie es aussieht. Ist er intelligent programmiert bzw. passt der Algorithmus zum Problem, dann kann er sehr sehr effektiv sein.

Nachteil: Man übersieht sehr leicht das Optimum wenn es zB versteckt hinter negativen Werten liegt, oder die Entscheidungslogik vom Genetischen nit zum wahren Verhalten der Parameter passt.

 

mMn ist der genetische gut wenn man überhaupt keine Ahnung hat in welchem Bereich die Parameter gut sind, oder aus Spass einfach mal "alles" scannen will aber keine Woche Zeit hat.

Für "echte" Optimierungen die man auch auswerten und verwerten kann, sollte man aber dann den interessanten Bereich richtig durchrechnen lassen.

 

hth

  • 1 Jahr später...
Geschrieben

Da habe ich aber einen "alten" Thread zu meinem Thema gefunden, aber er paßt .

 

Es geht mir darum, dass ich gerne ein paar statistische Auswertungen zu den einzelnen (mehreren Hundert) Trades meines EA hätte . Insbesondere geht es mir um die Zeit bis der BE erreicht wird, der maximale Floating Profit und Loss bevor der Trade geschlossen wird und das entsprechende Verhältnis .

 

Alles Dinge, die sich durchaus auch Coden lassen ....aber wenn es dazu schon etwas gibt, dann wäre mir das sicher lieber .

 

Ist einem von Euch dazu ein Modul/eine Erweiterunf, Tips&Tricks bekannt ?

 

Wäre nett blush.png

 

KB

  • 4 Wochen später...
Geschrieben

Hatte aehnliche Aufgabenstellung - habe lange gesucht, letztendlich habe ich es in .xls (bei aufwaendigeren Dingen mit VBA) oder mit mySQL gemacht.

Geschrieben

Kőnntest Du dazu vielleicht Weiteres berichten , eventuell sogar Codeschnipsel beifűgen ? Die Problematik habe ich nicht nur beim Backtest sondern auch im Lifehandel, meine, will in beidem auswerten. Mich interessiert insbesondere die Zeit bis zum BreakEven und der max FloatingLoss bis zu diesem Moment. Diese Werte will ich dann speichern und kontinuierlich im EA auswerten. Ein bischen gelingt schon, aber weit weg von Speichern/Laden etc.

Gruss

KB

android & tapatalk

 

Geschrieben

Habe mal ein wenig herumgestöbert : Es gibt wohl für mich drei Möglichkeiten, die Werte, die ich wissen und auswerten möchte , zu coden .

 

1.) Möglichkeit : Ein Codeschnipsel sieht dann so aus :

 

   //                                                                                                  |
   // 2.) OP_BUY : Break Even found                                                                    |
   //                                                                                                  |
       if ((OSL < OOP)                                 &&  //                                          |
           ((Bid - OOP) > (BreakEven_IV * iDigits * 5))  ){//5                                         |
           Time1 = (TimeCurrent()- OTM)/60      ;//                                                    |
           Time2 = Time1/TimeFrame              ;// Bars zwischen OO und OBE                           |
           Buff1 = NormalizeDouble(iLow(Markt,TimeFrame,iLowest(Markt,TimeFrame,MODE_LOW,Time2,0)),Digits)  ;//
           Buff2 = NormalizeDouble((OOP - Buff1),Digits);Print("xyz  ",Buff1," , ",Buff2);//           |
           Message = "2.) Tracking => BE Buy_Order nach = "+Time1+" Min ,"+Time2+         //           |
                     " Bars und MaxFloatLoss ="+DoubleToStr(Buff2,Digits)                ;//           |
           l_price_312 = NormalizeDouble(OOP + BreakEven_IV  * iDigits,Digits);// bestimme SL          |
           l_price_320 = NormalizeDouble(OOP + TakePrft_IV_B * iDigits,Digits);// bestimme TP          |
           l_bool_32 = false                    ;//                                                    |
           // und wenn SL && TP zulässige Preise sind, dann Modify                                     |
           if (CheckStop(OrderType(), l_price_312) && CheckTarget(OrderType(),l_price_320))        //  |
               l_bool_32 = OrderModify(ls_400,OOP,l_price_312,l_price_320,0,Blue)       ;//            |
           if (l_bool_32 == true) Print("2.)Modify #",sls_400," BreakEven =>  @ Entry =",//            |
                 OOP," , SL = ",l_price_312," , TP = ",l_price_320) ;// dann informiere                |
             else                                // falls etwas schief gelaufen ist, dann informiere   |
               Print("2.) Order Modify ERROR "+sls_400+" , Code : ",GetLastError()," @ Ask "  ,//      |
                     Ask," & Bid ",Bid, " Failed BreakEven to BUY Order !! SL = ",l_price_312);//      |
           Print (Message)                      ;//                                                    |
       }                                         //5 2.)                                               |
   //                                                                                                  |

Es wird die Zeit zwischen Entry und BE gemessen . Weiter wird der FloatingLoss bis dahin festgestellt (Longtrade in diesem Fall) . Dann werden die Ergebnisse in den Logfile gedruckt . Ich kann diese dann manuell verarbeiten .

 

2.Möglichkeit : Dann könnte ich speichern und in Excel verarbeiten . Aber da muss ich mich neu einarbeiten . Das dauert mir jetzt zu lange .

 

Da ich als 3.Möglichkeit andere SW nutzen kann und werde .

 

KB

Geschrieben

Metatrader bietet einfach unglaubliche Möglichkeiten und alles völlig umsonst . Und es gibt scheinbar nichts, was nicht schon irgendein Coder vor mir angedacht hat . So kreisen meine Gedanken schon länger um einen EA herum, der sich selber kontinuierlich prüft und neu adjustiert . Keine Ahnung, ob das dann schon AI ist , vermutlich (noch)nicht sondern eine Vorstufe dahin vielleicht .

 

Egal ... jedenfalls habe ich gestern Nacht diesen Artikel gefunden , erstellt vor 6 Jahren in 2007 . Der EA schreibt virtuelle Trades mit, merkt sich das alles und macht eine feine Statistik . Ganz wie der Coder es wünscht kann er , der EA , sich auch abschalten . Muss man nur noch den Code durcharbeiten, integrieren und den eigenen Bedürfnissen anpassen , anstatt "abschalten" kann man ja auch Variable variieren .... feinjustieren "on the run" .

 

Und das alles völlig umsonst .

 

KB

Geschrieben

Du meinst kostenlos?

Ich hoffe mal, das meine Anmerkung nicht umsonst ist, kostenlos ist sie allemal, soll eine kleine Anregung zum Thema sein. blush.gif

 

In der Traders erschien bereits 12/2003 der Artikel "Surf the equity - Auf der Kapitalkurve reiten".

 

Da wird die virtuelle Kapitalkurve (= Equity) mit einem gleitenden Durchschnitt auf ein Steigen oder Fallen derselben untersucht.

Wenn die virtuelle Kapitalkurve am Fallen ist, dann wird kein realer Handel durchgeführt, erst wenn die virtuelle Equity wieder am Steigen ist, dann wird auch wieder der reale Handel aufgenommen.

 

Das ist ein anderes Konzept als in dem Metatrader-Artikel beschrieben. http://articles.mql4.com/483.

Dort werden verschiedene Filter herangezogen, aber kein gleitender Durchschnitt der virtuellen Kapitalkurve.

 

Quellen:

http://www.investox.de/Downloadseiten/strategien.htm

siehe Strategie 1: Surf the equity - Auf der Kapitalkurve reiten

bzw.

http://www.download.investox.de/Strategien/KapitalkurvenAnalyse.pdf

Geschrieben

Du meinst kostenlos?

 

Die Plattform mag an sich kostenlos sein. Und genau dies hatte mich früher zu Metatrader verleitet. Aber von wegen kostenlos: sucht mal in diesem Forum nach FXDirekt. Oder macht eine intensive suche nach Virtual Dealer Plugin. Die Wahrscheinlichkeit ist groß, dass man um sein Geld gebracht wird. Ich glaube, es gibt nur ganz wenige seriöse Metatrader Broker.

 

Nun, in erster Linie habe ich mit Zeit gezahlt. Zeit die ich verloren habe durch das erlernen von Metatrader, und Zeit die für das Erlernen eines neuen Plattforms mit Anbindungsmöglichkeiten zu einer echten Broker/Börse bietet.

 

Falls ein Anfänger hier sich für Metatrader entscheiden sollte: Do your Due Diligence!

 

Edit: Sorry, dass mein Beitrag offtopic ist. Aber aufgrund des Schwärmens über Metatrader von Kleinerbroker in Post #32 musste ich das schreiben. Ich weiß, dass er über die Gefahren völlig im Klaren ist und wahrscheinlich auch einen serösen Metatrader-Broker gefunden hat, aber die meisten Anfänger nicht.

Geschrieben

Hallo SWZ168 , völlig egal ob OT oder nicht . Dein Hinweis ist SO RICHTIG . Vielen Dank für diese wichtige Ergänzung . KB

Prinzipiell ganz sicher etwas, worauf man bei MT achten muss. Nur als Ergänzung: FXDirekt war kein MT4-Broker...

Geschrieben

Nochmal ot.gif

 

Oder macht eine intensive suche nach Virtual Dealer Plugin.

 

Sollten Beginner jetzt hellhörig geworden sein, ihr müsst nicht lange suchen.

Steht alles bei uns geschrieben:

 

Thread

 

Blog

Geschrieben

Zurück zum Thema :

 

Diese Sequenz erkennt , wenn die letzte geschlossene Order im Verlust geschlossen hat und das nicht zu lange her ist . Ist das der Fall , dann werden die Flags, die den Handel frei geben, auf "False" gesetzt :

 

   int OldOrderCount =OrdersHistoryTotal()      ;//                                                    |
   if (OrderSelect(OldOrderCount-1 , SELECT_BY_POS, MODE_HISTORY) == true      //                      |
       && OrderSymbol()      == Symbol()                             //                                |
       && OrderMagicNumber() == Magic4                               //                                |
       && OrderProfit()       < -1                                   //                                |
       && ((TimeCurrent() - OrderCloseTime()) < (UET_TF * 60 )))     //                                |
      {Fire_Long = false;Fire_Short = false;Print("Die letzte Order war nix !",OrderTicket())    ;}//  |

Aus dieser Sequenz läßt sich nun auch leicht entnehmen, wie man mehrere geschlossene Trades im laufenden EA adressieren und in Folge auslesen kann . Nur die Zeiten bis BE, max Floating Loss , temporäre Werte eben, die erhält man so nicht . Aber immerhin .

 

KB

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

Account

Navigation

Suche

Suche

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.