Backtesting Multi-Währungs-EA - Seite 2

 
In meinem Fall Lösung war IsNewBar() metod und schalten Sie auf "Every Tick" Ausführung metod es sei denn, meine EA Arbeit nur auf offene Preise.
Documentation on MQL5: Standard Constants, Enumerations and Structures / Indicator Constants / Price Constants
  • www.mql5.com
Standard Constants, Enumerations and Structures / Indicator Constants / Price Constants - Documentation on MQL5
 
trendick:

Ali, das Beispiel, das ich oben erwähnt habe, ist der EA, auf den Sie sich beziehen, der die Quelle der von Ihnen erwähnten IsNewBar()-Funktion ist und sie bereits verwendet.

Wie erklärst du das?

Ich sprach von meinem EA, der mit zwei Symbolen handelt. Ein Symbol erhält die Daten mit ontick()

das andere benutzt Isnewbar()

Wenn ich die Art und Weise, wie die Daten geholt werden, ändere, ist das Ergebnis dasselbe. Sie könnten dies ausprobieren und die Ergebnisse vergleichen. Ich habe auch versucht, beide Kurse mit Isnewbar zu holen, wie der oben besprochene EA, und hatte die gleichen Probleme, aber wenn ich die Kurse des ursprünglichen Symbols mit ontick() hole, ist das Problem gelöst.

Natürlich gibt es ein Problem mit dem Tester, ich habe nur gezeigt, wie ich es geschafft habe, meine gewünschten Ergebnisse zu erhalten.

 
kgo:
In meinem Fall Lösung war IsNewBar() metod und schalten Sie auf "Every Tick" Ausführung metod es sei denn, meine EA Arbeit nur auf offene Preise.

Können Sie bitte näher ausführen? vielleicht ein Code-Schnipsel zu demonstrieren? Können Sie 3 Währungen behandeln?
 
trendick:
Können Sie bitte näher erläutern? vielleicht ein Code-Schnipsel zu demonstrieren? Können Sie 3 Währungen behandeln?

Ok, ich verstehe, was Sie meinen. Eines der Paare wird verwendet, um eine neue Bar Eröffnung auslösen und für den Rest lesen Sie sofort die Ticks.

 

Kgo, aber immer noch dies nicht das Problem in meinem Fall zu lösen. Könnten Sie bitte ein Snippet zeigen, was Sie tun?

Danke, trendick

 
Danke TheEconmist! (Ich dachte, ihr haltet euch an die Random-Walk-Hypothese...:-)): Ich schaue mir das gleich mal an.
 
Ich habe einige neue Tests gemacht und mein vorheriger Beitrag ist falsch. IsNewBar() Methode ist keine Hilfe. TheEconomist zeigen gutes Beispiel, wie OnTick() für Multi-Currency EA implementiert werden müssen.
 
Können Sie glauben, dass ich nicht einmal weiß, wo diese IsNewBar()-Methode ist? Welche Klasse?
 
TheEconomist:
Können Sie glauben, dass ich nicht einmal weiß, wo diese IsNewBar()-Methode ist? Welche Klasse?

Wir beziehen uns auf die Methode aus Artikel 105. Hier ist sie (nur der Anfang und das Ende sind relevant):

Hier ist sie:

/+X================================================================X+
//| IsNewBar() function                                              |
//+X================================================================X+
bool IsNewBar(int Number,string symbol,ENUM_TIMEFRAMES timeframe)
  {
//----+
   static datetime Told[];
   datetime Tnew[1];
//----+ Declare variable to store sizes of variables arrays
   static int Size_=0;

//----+ Change size of variables arrays
   if(Number+1>Size_)
     {
      uint size=Number+1;
      //----
      if(ArrayResize(Told,size)==-1)
        {
         string word="";
         StringConcatenate(word,"IsNewBar( ",Number,
                           " ): Error!!! Unable to change sizes of variables arrays!!!");
         Print(word);
         //----          
         int error=GetLastError();
         ResetLastError();
         if(error>4000)
           {
            StringConcatenate(word,"IsNewBar( ",Number," ): Error code ",error);
            Print(word);
           }
         //----                                                                                                                                                                                                  
         Size_=-2;
         return(false);
        }
     }

   CopyTime(symbol,timeframe,0,1,Tnew);
   if(Tnew[0]!=Told[Number])
     {
      Told[Number]=Tnew[0];
      return(true);
     }
//----+
   return(false);
  }
Grund der Beschwerde: