Çok Para Birimli EA'yı Geri Test Etme - sayfa 2

 
Benim durumumda çözüm IsNewBar() yöntemiydi ve EA'm yalnızca açık fiyatlar üzerinde çalışmadığı sürece "Every Tick" yürütme yöntemini açın.
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, yukarıda bahsettiğim örnek bahsettiğiniz IsNewBar() fonksiyonunun kaynağı olan ve zaten onu kullanan EA'dır.

Bunu nasıl açıklarsın?

İki sembol üzerinde işlem yapan EA'mdan bahsediyordum. bir sembol verileri ontick() ile alır

diğeri Isnewbar()'ı kullanır

veri alma yollarını değiştirdiğimde sonuç aynı. Bunu deneyebilir ve sonuçları karşılaştırabilirsiniz. ayrıca yukarıda tartışılan EA gibi isnewbar kullanarak her iki alıntıyı da almaya çalıştım ve aynı sorunları yaşadım, ancak orijinal sembolün tırnaklarını ontick() ile almak sorun çözüldü.

Tabii ki test cihazıyla ilgili bir sorun var, az önce istediğim sonuçları almayı nasıl başardığımı gösterdim.

 
kgo :
Benim durumumda çözüm IsNewBar() yöntemiydi ve EA'm yalnızca açık fiyatlar üzerinde çalışmadığı sürece "Every Tick" yürütme yöntemini açın.

Lütfen detaylandırabilir misiniz? belki göstermek için bir kod parçacığı? 3 para birimini idare edebilir misin?
 
trendick :
Lütfen detaylandırabilir misiniz? belki göstermek için bir kod pasajı? 3 para birimini idare edebilir misin?

Tamam, ne demek istediğini anlıyorum. Çiftlerden biri yeni bir bar açılmasını tetiklemek için kullanılır ve geri kalanı için anında keneleri okursunuz.

 

Kgo, ama yine de bu benim durumumda sorunu çözmüyor. Lütfen yaptıklarınızdan bir kesit gösterebilir misiniz?

teşekkürler, trend

 
TheEconmist'e teşekkürler! (Rastgele yürüyüş hipotezine bağlı kaldığınızı sanıyordum...:-)): Bunu hemen kontrol ediyorum.
 
Yeni bir test yaptım ve önceki gönderim yanlış. IsNewBar() yöntemi yardımcı olmuyor. Ekonomist, Çok Para Birimli EA için OnTick()'in nasıl uygulanması gerektiğine iyi bir örnek gösterir.
 
Bu IsNewBar() yönteminin nerede olduğunu bile bilmediğime inanabiliyor musun? Hangi sınıf?
 
TheEconomist :
Bu IsNewBar() yönteminin nerede olduğunu bile bilmediğime inanabiliyor musun? Hangi sınıf?

105. maddedeki Yönteme atıfta bulunuyoruz. İşte burada (yalnızca başlangıç ve son önemlidir):

İşte burada:

/+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);
  }