"CopyTicks"in Test Edilmesi - sayfa 13

 
prostotrader :

Böyle bir bilgiyi nereden edindin?

Plaza II'ye ek olarak FAST / FIX protokolü de bulunmaktadır.

1 ms'de yüzlerce işlem gerçekleştirilir

Kenelerin tarihi, RTS geleceğinde böyle bir şey olmadığını gösteriyor.
 
fxsaber :

Bu nasıl olabilir? Sonuçta, HFT bile 1 ms'den daha kısa bir limit emrini iptal edemez.

  • Birkaç eylemi aynı anda birleştiren özel piyasa emir türleri vardır (MT5 değil).
  • Eylemlerin ayrıklığının 1 ms'lik bir zamanlama ile ayarlanması gerektiğini kim söyledi? Aslında herhangi bir alım satım işlemi, bir veritabanı olan borsanın çekirdeğindeki bir kayıttır. Veritabanına yazmak 1 ms'den çok daha hızlıdır. Aynı nedenle, isteklerin eşleşmesi, başlangıcı aynı olan, saniyenin milyonda birine kadar uzun tik dizileri oluşturur. Onlar. işlemler aslında aynı anda gerçekleşir (veritabanında kayıt), ancak bunlar grafikte uzun bir Son dizi olarak görüntülenir.
 
Vasiliy Sokolov :
  • Birkaç eylemi aynı anda birleştiren özel piyasa emir türleri vardır (MT5 değil).
  • Eylemlerin ayrıklığının 1 ms'lik bir zamanlama ile ayarlanması gerektiğini kim söyledi? Aslında herhangi bir alım satım işlemi, bir veritabanı olan borsanın çekirdeğindeki bir kayıttır.
Bir milisaniyede dört tik bulamadım. Üç - bir kez. İki - on yüz binlerce.
  • Veritabanına yazmak 1 ms'den çok daha hızlıdır. Aynı nedenle, isteklerin eşleşmesi, başlangıcı aynı olan, saniyenin milyonda birine kadar uzun tik dizileri oluşturur. Onlar. işlemler aslında aynı anda gerçekleşir (veritabanında kayıt), ancak bunlar grafikte uzun bir Son dizi olarak görüntülenir.
Gerçek şu ki, izlenen paletler değil, en iyi gruplardı (COPY_TICKS_INFO). Bu nedenle 1 ms makul. HFT varsa, neredeler? Senaryoya bakılırsa, bunlar bir tür fren.
 
Komut dosyası, sıfır fiyatlarla COPY_TICKS_INFO çıktısı verir
 #property script_show_inputs

sinput int Count = 100000 ; // Количество тиков на проверку

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

string TickToString( const MqlTick &Tick )
{
   static int i = 0 ;
  
  i++;
  
   return ( "Tick" + ( string )i + ":" + TOSTRING(time) + "." + ( string )(Tick.time_msc % 1000 ) +
         TOSTRING(bid) + TOSTRING(ask) + TOSTRING(last)+ TOSTRING(volume));
}

void OnStart ()
{
   MqlTick Ticks[];
  
   const int Amount = CopyTicks ( _Symbol , Ticks, COPY_TICKS_INFO , 0 , Count);
  
   for ( int i = 0 ; i < Amount; i++)
     if ((Ticks[i].bid == 0 ) || (Ticks[i].ask == 0 ))
       Print (TickToString(Ticks[i]));
}

Sonuç

 2016.09 . 13 18 : 02 : 06.297 Test (RTS- 9.16 ,M1)      Tick2: time = 2016.09 . 12 18 : 52 : 36.378 bid = 0.0 ask = 0.0 last = 98480.0 volume = 1
2016.09 . 13 18 : 02 : 06.297 Test (RTS- 9.16 ,M1)      Tick1: time = 2016.09 . 12 18 : 44 : 59.951 bid = 0.0 ask = 0.0 last = 98480.0 volume = 1

CopyTicks hatası mı?

 

Gösterge, CopyTicks'in son keneleri döndürmeyebileceğini gösterir.

 #property indicator_chart_window
#property indicator_buffers 0
#property indicator_plots    0

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

string TickToString( const MqlTick &Tick )
{
   static int i = 0 ;
  
  i++;
  
   return ( "Tick" + ( string )i + ":" + TOSTRING(time) + "." + ( string )(Tick.time_msc % 1000 ) +
         TOSTRING(bid) + TOSTRING(ask) + TOSTRING(last)+ TOSTRING(volume));
}

bool MySymbolInfoTick( const string Symb, MqlTick &Tick, const uint Type = COPY_TICKS_ALL )
{
   MqlTick Ticks[];
   const int Amount = :: CopyTicks (Symb, Ticks, Type, 0 , 1 );
   const bool Res = (Amount > 0 );
  
   if (Res)
    Tick = Ticks[Amount - 1 ];
  
   return (Res);
}

int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[] )
{
   MqlTick Tick1, Tick2;
  
   if ( SymbolInfoTick ( _Symbol , Tick2) && MySymbolInfoTick( _Symbol , Tick1))
     if (Tick1.time_msc != Tick2.time_msc)
       Print (TickToString(Tick1) + "\n" + TickToString(Tick2) + "\n" );
  
   return (rates_total);
}

Sonuç

 2016.09 . 14 12 : 55 : 23.047 Test2 (Si- 9.16 ,M1)      Tick250: time = 2016.09 . 14 12 : 55 : 04. 521 bid = 64999.0 ask = 65002.0 last = 65002.0 volume = 2
2016.09 . 14 12 : 55 : 23.047 Test2 (Si- 9.16 ,M1)      Tick249: time = 2016.09 . 14 12 : 55 : 04. 513 bid = 64999.0 ask = 65002.0 last = 65002.0 volume = 2
 
fxsaber :
Komut dosyası, sıfır fiyatlarla COPY_TICKS_INFO çıktısı verir

Sonuç

CopyTicks hatası mı?

Bayraklar da
 
Slawa :
Bayraklar da

örneğin

 string GetTickFlag( uint tickflag)
  {
   string flag= "" ;
//---
   if ((tickflag& TICK_FLAG_BID )== TICK_FLAG_BID )
      flag=flag+ "TICK_FLAG_BID" ;

   if ((tickflag& TICK_FLAG_ASK )== TICK_FLAG_ASK )
      flag=flag+ " TICK_FLAG_ASK" ;

   if ((tickflag& TICK_FLAG_LAST )== TICK_FLAG_LAST )
      flag=flag+ " TICK_FLAG_LAST" ;

   if ((tickflag& TICK_FLAG_VOLUME )== TICK_FLAG_VOLUME )
      flag=flag+ " TICK_FLAG_VOLUME" ;

   if ((tickflag& TICK_FLAG_BUY )== TICK_FLAG_BUY )
      flag=flag+ " TICK_FLAG_BUY" ;

   if ((tickflag& TICK_FLAG_SELL )== TICK_FLAG_SELL )
      flag=flag+ " TICK_FLAG_SELL" ;
   if ( StringLen (flag)== 0 )
       return ( "FLAG_UNKNOWN" );
   return (flag);
  }
//+------------------------------------------------------------------+
 
Slawa :
Bayraklar da

ince ayar

 #property script_show_inputs

sinput int Count = 100000 0 ; // Количество тиков на проверку

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

string TickToString( const MqlTick &Tick )
{
   static int i = 0 ;
  
  i++;
  
   return ( "Tick" + ( string )i + ":" + TOSTRING(time) + "." + ( string )(Tick.time_msc % 1000 ) +
         TOSTRING(bid) + TOSTRING(ask) + TOSTRING(last)+ TOSTRING(volume) + TOSTRING(flags) );
}

void OnStart ()
{
   MqlTick Ticks[];
  
   const int Amount = CopyTicks ( _Symbol , Ticks, COPY_TICKS_INFO , 0 , Count);
  
   for ( int i = 0 ; i < Amount; i++)
     if ((Ticks[i].bid == 0 ) || (Ticks[i].ask == 0 ))
       Print (TickToString(Ticks[i]));
}

BCS-MetaTrader5'te Sonuç

 2016.09 . 14 13 : 37 : 03.896 Test (Si- 9.16 ,M1)       Tick23: time = 2016.09 . 13 18 : 52 : 35.505 bid = 0.0 ask = 0.0 last = 65253.0 volume = 35 flags = 6
2016.09 . 14 13 : 37 : 03.896 Test (Si- 9.16 ,M1)       Tick22: time = 2016.09 . 13 18 : 44 : 59.978 bid = 0.0 ask = 0.0 last = 65253.0 volume = 35 flags = 6
2016.09 . 14 13 : 37 : 03.895 Test (Si- 9.16 ,M1)       Tick21: time = 2016.09 . 13 00 : 02 : 36.809 bid = 0.0 ask = 0.0 last = 0.0 volume = 0 flags = 6
2016.09 . 14 13 : 37 : 03.895 Test (Si- 9.16 ,M1)       Tick20: time = 2016.09 . 13 00 : 02 : 36.809 bid = 0.0 ask = 0.0 last = 0.0 volume = 0 flags = 6
2016.09 . 14 13 : 37 : 03.895 Test (Si- 9.16 ,M1)       Tick19: time = 2016.09 . 12 18 : 52 : 35.635 bid = 0.0 ask = 0.0 last = 64721.0 volume = 2 flags = 6
2016.09 . 14 13 : 37 : 03.895 Test (Si- 9.16 ,M1)       Tick18: time = 2016.09 . 09 18 : 52 : 09.8 bid = 0.0 ask = 0.0 last = 64729.0 volume = 43 flags = 6
2016.09 . 14 13 : 37 : 03.895 Test (Si- 9.16 ,M1)       Tick17: time = 2016.09 . 09 18 : 44 : 59.923 bid = 0.0 ask = 0.0 last = 64729.0 volume = 43 flags = 6
2016.09 . 14 13 : 37 : 03.894 Test (Si- 9.16 ,M1)       Tick16: time = 2016.09 . 08 23 : 53 : 05.468 bid = 0.0 ask = 0.0 last = 64118.0 volume = 1 flags = 6
2016.09 . 14 13 : 37 : 03.894 Test (Si- 9.16 ,M1)       Tick15: time = 2016.09 . 08 18 : 51 : 59.107 bid = 0.0 ask = 0.0 last = 63870.0 volume = 99 flags = 6
2016.09 . 14 13 : 37 : 03.894 Test (Si- 9.16 ,M1)       Tick14: time = 2016.09 . 08 18 : 44 : 59.570 bid = 0.0 ask = 0.0 last = 63870.0 volume = 99 flags = 6
2016.09 . 14 13 : 37 : 03.893 Test (Si- 9.16 ,M1)       Tick13: time = 2016.09 . 07 23 : 56 : 45.427 bid = 0.0 ask = 0.0 last = 64263.0 volume = 1 flags = 6
2016.09 . 14 13 : 37 : 03.893 Test (Si- 9.16 ,M1)       Tick12: time = 2016.09 . 07 18 : 52 : 00.724 bid = 0.0 ask = 0.0 last = 64472.0 volume = 6 flags = 6
2016.09 . 14 13 : 37 : 03.893 Test (Si- 9.16 ,M1)       Tick11: time = 2016.09 . 07 18 : 44 : 59.713 bid = 0.0 ask = 0.0 last = 64472.0 volume = 6 flags = 6
2016.09 . 14 13 : 37 : 03.893 Test (Si- 9.16 ,M1)       Tick10: time = 2016.09 . 06 23 : 53 : 48.388 bid = 0.0 ask = 0.0 last = 64720.0 volume = 1 flags = 6
2016.09 . 14 13 : 37 : 03.893 Test (Si- 9.16 ,M1)       Tick9: time = 2016.09 . 06 23 : 53 : 48.388 bid = 0.0 ask = 0.0 last = 64720.0 volume = 1 flags = 6
2016.09 . 14 13 : 37 : 03.893 Test (Si- 9.16 ,M1)       Tick8: time = 2016.09 . 06 18 : 53 : 15.598 bid = 0.0 ask = 0.0 last = 64679.0 volume = 5 flags = 6
2016.09 . 14 13 : 37 : 03.893 Test (Si- 9.16 ,M1)       Tick7: time = 2016.09 . 06 18 : 44 : 59.960 bid = 0.0 ask = 0.0 last = 64679.0 volume = 5 flags = 6
2016.09 . 14 13 : 37 : 03.892 Test (Si- 9.16 ,M1)       Tick6: time = 2016.09 . 05 23 : 59 : 06.607 bid = 0.0 ask = 0.0 last = 65225.0 volume = 3 flags = 6
2016.09 . 14 13 : 37 : 03.892 Test (Si- 9.16 ,M1)       Tick5: time = 2016.09 . 05 23 : 59 : 06.607 bid = 0.0 ask = 0.0 last = 65225.0 volume = 3 flags = 6
2016.09 . 14 13 : 37 : 03.892 Test (Si- 9.16 ,M1)       Tick4: time = 2016.09 . 05 23 : 59 : 03.529 bid = 0.0 ask = 0.0 last = 65225.0 volume = 3 flags = 6
2016.09 . 14 13 : 37 : 03.892 Test (Si- 9.16 ,M1)       Tick3: time = 2016.09 . 05 23 : 54 : 00.315 bid = 0.0 ask = 0.0 last = 65225.0 volume = 3 flags = 6
2016.09 . 14 13 : 37 : 03.892 Test (Si- 9.16 ,M1)       Tick2: time = 2016.09 . 05 18 : 51 : 40.877 bid = 0.0 ask = 0.0 last = 65178.0 volume = 2 flags = 6
2016.09 . 14 13 : 37 : 03.892 Test (Si- 9.16 ,M1)       Tick1: time = 2016.09 . 05 18 : 44 : 59.998 bid = 0.0 ask = 0.0 last = 65178.0 volume = 2 flags = 6
 
fxsaber :

BCS-MetaTrader5'te Sonuç

Bu gerçek mi yoksa demo mu? Demo hesaplarda da benzer bir şey vardı hatırladığım kadarıyla.
 
Rashid Umarov :
Bu gerçek mi yoksa demo mu? Demo hesaplarda da benzer bir şey vardı hatırladığım kadarıyla.

Gerçek. oynayamıyor musun?