Mql5 dilinin özellikleri, incelikleri ve çalışma yöntemleri - sayfa 29

 
Andrey Dik :

Test ederken, dakika verileri daha güvenilir olarak kabul edilir.

Dakika çubukları daha güvenilir mi? Onay verisi son çare değil mi? Eğer dikkate alınmıyorlarsa neden gerçek kene verilerine ihtiyacımız var?

Bunu safça yapardım: Dakikalarca test ettim, sonra keneler üzerinde test ettim, sonra son bir hassasiyet kontrolü olarak gerçek keneler üzerinde test ettim. Şimdi anlıyorum ki üçüncü kontrolde özel bir anlam yok.


bacaklar buradan büyür

https://www.mql5.com/ru/forum/188047

Не совпадают цены тестера и CopyTicks, или неверная синхронизация?
Не совпадают цены тестера и CopyTicks, или неверная синхронизация?
  • www.mql5.com
Пытаюсь сделать мультивалютный советник,но с фьючами. Запускаем в тестере простой советник на ближнем фьюче,т.к. он более живой...
 
Vladimir Karputov :


Cümleyi bağlamdan çıkarmaya gerek yok. İfade şöyle gider:

Gördüğünüz gibi, manipüle etmeye çalışmazsanız, sertifikayı yanlış yorumladığınız ortaya çıkacaktır.

Hiçbir şeyi manipüle etmedim. Kılavuz, dakikaların çok önemli olduğunu açıkça belirtiyor. Tik verilerinin olmaması nedeniyle, tikler dakika çubuklarına göre oluşturulur .

Bana göre "Real ticks" modunda gerçek tiklerden dakika zaman dilimleri oluşturulmalı, aksi halde bu modun bir anlamı yok.

 
Andrey Dik :

Benim düşünceme göre, "Real ticks" modunda gerçek tiklerden dakika zaman dilimleri oluşturulmalıdır, aksi takdirde bu modun bir anlamı yoktur.


dakika geçmişine yönlendirme ve 04/02/17 ile 04/08/17 arasında gerçek keneler olduğunda bir duruma yol açar

 2017.04 . 08 18 : 06 : 17.780 сколько тиков (GOLD- 9.17 ,H1)    Колво тиков за 2017.04 . 02 00 : 00 : 00 = 116844

test cihazı yalnızca 88 mevcut dakika çubuğu için keneler kullanır. diğer tüm keneler yalnızca içinde bir yerde bulunur...

 2017.04 . 08 18 : 05 : 17.263 Core 1   GOLD- 9.17 ,M1: 5918 ticks, 88 bars generated. Environment synchronized in 0 : 00 : 00.070 . Test passed in 0 : 00 : 03.125 (including ticks preprocessing 0 : 00 : 00.070 ).
2017.04 . 08 18 : 05 : 17.263 Core 1   GOLD- 9.17 ,M1: total time from login to stop testing 0 : 00 : 03.195 (including 0 : 00 : 02.944 for history data synchronization)
2017.04 . 08 18 : 05 : 17.263 Core 1    166135 total ticks for all symbols
2017.04 . 08 18 : 05 : 17.263 Core 1   GOLD- 9.17 : generate 5918 ticks in 0 : 00 : 00.020 , passed to tester 5918 ticks
 
test günlüğü
GOLD- 6.17 ,H1: testing of Experts\fxsaber\Test2.ex5 from 2017.04 . 03 00 : 00 to 2017.04 . 08 00 : 00 started
GOLD- 6.17 : real ticks begin from 2017.04 . 03 00 : 00 : 00
final balance 100000.00 EUR
GOLD- 6.17 ,H1: 145777 ticks , 70 bars generated. Environment synchronized in 0 : 00 : 01.388 . Test passed in 0 : 00 : 00.062 (including ticks preprocessing 0 : 00 : 00.031 ).

Ama gerçek kene sayısı


Bu Metaquotes Demosu.

Haftada 147.700 gerçek kene olduğu ve test cihazının en doğru modunda 145.777 tik verdiği ortaya çıktı.

 
fxsaber :
test günlüğü

Ama gerçek kene sayısı


Bu Metaquotes Demosu.

Haftada 147.700 gerçek kene olduğu ve test cihazının en doğru modunda 145.777 tik verdiği ortaya çıktı.


Birkaç M1 çubuğu eksik ve kıyaslama bunları temel aldığından, test cihazı gerçekte olduğundan daha az onay işareti kullanıyor.

uzak geleceklere daha iyi bakın, orada resim daha net

 
kaus_bonus :


Birkaç M1 çubuğu eksik ve kıyaslama bunları temel aldığından, test cihazı gerçekte olduğundan daha az onay işareti kullanıyor.

Son fiyat olduğunda M1 çubukları oluşur. Orada değilse, bar yoktur. Ve o sırada teklif/sor tiklerinin olduğu gerçeği göz ardı edilir!

Onlar. sorun sadece test cihazında değil, aynı zamanda çubuk oluşturma algoritmasında da.

uzak geleceklere daha iyi bakın, orada resim daha net

Yukarıda yazdığım gibi, böyle bir durumun en sık meydana geldiği uzak geleceklerde.

Bunu doğru bir şekilde fark ettiniz, bu durumun sadece daha net bir kanıtını vereceğim.

GOLD- 9.17 ,H1: testing of Experts\fxsaber\Test2.ex5 from 2017.04 . 03 00 : 00 to 2017.04 . 08 00 : 00 started
GOLD- 9.17 : real ticks begin from 2017.04 . 03 00 : 00 : 00
final balance 100000.00 EUR
GOLD- 9.17 ,H1: 5918 ticks , 39 bars generated. Environment synchronized in 0 : 00 : 00.032 . Test passed in 0 : 00 : 00.046 .

En doğru modda 116844 gerçek kene, 5918 test kenesi var. 20 kat daha az mütevazı.


PS Bu durumun test cihazının aynı keneleri kaçırmasından kaynaklandığı hipotezinin çürütülmesi

 #include <TypeToBytes.mqh>

#define TOSTRING(A) #A + " = " + ( string )(A) + " "

void OnStart ()
{
   MqlTick Ticks[];
  
   const int Amount = CopyTicksRange( _Symbol , Ticks, COPY_TICKS_ALL , D'2017.04.03' * 1000 , D'2017.04.08' * 1000 );
  
   int Count = 1 ;
  
   for ( int i = 1 ; i < Amount; i++)
     if (_R(Ticks[i]) != Ticks[i - 1 ])
      Count++;
      
   Print (TOSTRING(Amount) + TOSTRING(Count));
}
Sonuç
Test2 (GOLD- 9.17 ,H1)    Amount = 116844 Count = 116840

Sadece 4 aynı kene kaçırılabilir.

 
MqlTick'i dizeye dönüştür

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

Kitaplıklar: Price_Compare

fxsaber , 2016.10.19 17:18

string GetTickFlag( uint tickflag )
{
   string flag = "" ;

#define TICKFLAG_MACRO(A) flag += (( bool )(tickflag & TICK_FLAG_ ##A)) ? " TICK_FLAG_" + #A : "" ;
  TICKFLAG_MACRO(BID)
  TICKFLAG_MACRO(ASK)
  TICKFLAG_MACRO(LAST)
  TICKFLAG_MACRO(VOLUME)
  TICKFLAG_MACRO(BUY)
  TICKFLAG_MACRO(SELL)
#undef TICKFLAG_MACRO

   if (flag == "" )
    flag = " FLAG_UNKNOWN (" + ( string )tickflag + ")" ;
    
   return (flag);
}

#define TOSTRING(A) " " + #A + " = " + ( string )Tick.A

string TickToString( const MqlTick &Tick )
{
   return (TOSTRING(time) + "." + ( string ) IntegerToString (Tick.time_msc % 1000 , 3 , '0' ) +
         TOSTRING(bid) + TOSTRING(ask) + TOSTRING(last)+ TOSTRING(volume) + GetTickFlag(Tick.flags));
}

void OnStart ()
{
   MqlTick Tick;
  
   if ( SymbolInfoTick ( _Symbol , Tick))
     Print (TickToString(Tick));
}
Sonuç
time = 2017.04 . 07 23 : 58 : 18.000 bid = 110620.0 ask = 110640.0 last = 110630.0 volume = 1 TICK_FLAG_BID TICK_FLAG_ASK TICK_FLAG_LAST TICK_FLAG_VOLUME
 
fxsaber :
MqlTick'i dizeye dönüştür
Sonuç

okunamıyor :

time = 2017.04 . 07 23 : 58 : 18.000 bid = 110620.0 ask = 110640.0 last = 110630.0 volume = 1 TICK_FLAG_BID TICK_FLAG_ASK TICK_FLAG_LAST TICK_FLAG_VOLUME
 
Dennis Kiriçenko :

okunamıyor :

anlamadım Ben bu seçeneği herhangi bir basit yapıyı, türü ve diziyi yazdırmak için kullanıyorum.

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

MetaEditor yapı 1463

fxsaber , 2016.11.10 10:42

 class PRINTCLASS
{
public :  
   template < typename T>
   static void MyPrint( const T &Value )
  {
    T Array[ 1 ];
    
    Array[ 0 ] = Value;
    
    ::ArrayPrint(Array, _Digits , NULL , 0 , WHOLE_ARRAY , ARRAYPRINT_HEADER|ARRAYPRINT_LIMIT|ARRAYPRINT_ALIGN);
  }
  
   template < typename T>
   static void MyPrint( const T Value )
  {
    :: Print (Value);
  }

   template < typename T>
   static void MyPrint( const T &Value[] )
  {
    ::ArrayPrint(Value);
  }
};

#define Print (A) PRINTCLASS::MyPrint(A)

void OnStart ()
{
   MqlTick Tick;
  
   if ( SymbolInfoTick ( _Symbol , Tick))
     Print (Tick);
}

Sonuç
             [time]   [bid]   [ask]  [last] [volume]    [time_msc] [flags]
2017.04 . 07 23 : 58 : 18    110620    110640    110630          1 1491609498000        30

Her şey hedeflere bağlıdır.
 
Bu konu ile ilgili olmayan yorumlar " MQL4, yardım ve algoritmalar ve kodlar hakkında tartışma " bölümüne taşınmıştır.