tik geçmişi - sayfa 16

 
Karputov Vladimir :

İşte sorulan şey:

Bir günde geçiş doğrudur.
Doğrulama yöntemi: terminal açıldığında, kene geçmişi dosyalarını sildi. Sonra betiği iki kez çalıştırdım (geçmiş olmadığı için, betiğin ilk çalıştırması geçmişin yüklenmesini başlattı).

Evet, teşekkürler, ben de aynısını yaptım - yardımcı oldu. Ancak, çok garip bir davranış.
 

Garip davranışlar bununla da bitmiyor. Aynı geçmişe sahip iki istek anını karşılaştırmaya karar verdim.

Cumadan pazartesiye gelme hatasını yazdığım ilk an dündü:

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

tik geçmişi

Tapochun , 2015.10.19 08:48

Biraz sonra - bu resim. TÜM 3000 onay modu:

 2015.10 . 19 11 : 46 : 33.144 test_CopyTicks_1178 (GBPUSD,M5) OnStart : # 2774 2015.10 . 16 23 : 59 : 05 : spread = 0 , ask = 0.00000 , bid = 0.00000 , last = 1.54356
2015.10 . 19 11 : 46 : 33.144 test_CopyTicks_1178 (GBPUSD,M5) OnStart : # 2775 2015.10 . 16 23 : 59 : 05 : spread = 72 , ask = 1.54428 , bid = 1.54356 , last = 0.00000
2015.10 . 19 11 : 46 : 33.144 test_CopyTicks_1178 (GBPUSD,M5) OnStart : # 2776 2015.10 . 16 23 : 59 : 06 : spread = 0 , ask = 0.00000 , bid = 0.00000 , last = 1.54356
2015.10 . 19 11 : 46 : 33.144 test_CopyTicks_1178 (GBPUSD,M5) OnStart : # 2777 2015.10 . 16 23 : 59 : 06 : spread = 75 , ask = 1.54431 , bid = 1.54356 , last = 0.00000
2015.10 . 19 11 : 46 : 33.144 test_CopyTicks_1178 (GBPUSD,M5) OnStart : # 2778 2015.10 . 16 23 : 59 : 07 : spread = 0 , ask = 0.00000 , bid = 0.00000 , last = 1.54357
2015.10 . 19 11 : 46 : 33.144 test_CopyTicks_1178 (GBPUSD,M5) OnStart : # 2779 2015.10 . 16 23 : 59 : 07 : spread = 74 , ask = 1.54431 , bid = 1.54357 , last = 0.00000
2015.10 . 19 11 : 46 : 33.144 test_CopyTicks_1178 (GBPUSD,M5) OnStart : # 2780 2015.10 . 16 23 : 59 : 10 : spread = 0 , ask = 0.00000 , bid = 0.00000 , last = 0.00000
2015.10 . 19 11 : 46 : 33.144 test_CopyTicks_1178 (GBPUSD,M5) OnStart : # 2781 2015.10 . 19 09 : 44 : 41 : spread = 18 , ask = 1.54498 , bid = 1.54480 , last = 1.54480
2015.10 . 19 11 : 46 : 33.144 test_CopyTicks_1178 (GBPUSD,M5) OnStart : # 2782 2015.10 . 19 09 : 44 : 41 : spread = 19 , ask = 1.54499 , bid = 1.54480 , last = 0.00000
2015.10 . 19 11 : 46 : 33.144 test_CopyTicks_1178 (GBPUSD,M5) OnStart : # 2783 2015.10 . 19 09 : 44 : 42 : spread = 19 , ask = 1.54499 , bid = 1.54480 , last = 1.54480
2015.10 . 19 11 : 46 : 33.144 test_CopyTicks_1178 (GBPUSD,M5) OnStart : # 2784 2015.10 . 19 09 : 44 : 42 : spread = 18 , ask = 1.54498 , bid = 1.54480 , last = 0.00000
2015.10 . 19 11 : 46 : 33.144 test_CopyTicks_1178 (GBPUSD,M5) OnStart : # 2785 2015.10 . 19 09 : 44 : 42 : spread = 18 , ask = 1.54498 , bid = 1.54480 , last = 1.54480
2015.10 . 19 11 : 46 : 33.144 test_CopyTicks_1178 (GBPUSD,M5) OnStart : # 2786 2015.10 . 19 09 : 44 : 42 : spread = 19 , ask = 1.54499 , bid = 1.54480 , last = 0.00000
2015.10 . 19 11 : 46 : 33.144 test_CopyTicks_1178 (GBPUSD,M5) OnStart : # 2787 2015.10 . 19 09 : 44 : 42 : spread = 19 , ask = 1.54499 , bid = 1.54480 , last = 1.54480

Tarihte delik. INFO modunda - benzer şekilde.

9.44.41 ve sonrasında gelen tiklere dikkat edin. Şimdi aynı sembolün, aynı zamanda, aynı modda (ALL) geçmişi sadece bugün talep edildi:

QK       0        13 : 04 : 51.698     test_CopyTicks_1178 (GBPUSD,M5) OnStart : # 289463 2015.10 . 19 09 : 44 : 41 : spread = 0 , ask = 0.00000 , bid = 0.00000 , last = 1.54480
LN       0        13 : 04 : 51.698     test_CopyTicks_1178 (GBPUSD,M5) OnStart : # 289464 2015.10 . 19 09 : 44 : 41 : spread = 19 , ask = 1.54499 , bid = 1.54480 , last = 0.00000
DO       0        13 : 04 : 51.698     test_CopyTicks_1178 (GBPUSD,M5) OnStart : # 289465 2015.10 . 19 09 : 44 : 42 : spread = 0 , ask = 0.00000 , bid = 0.00000 , last = 1.54480
ES       0        13 : 04 : 51.698     test_CopyTicks_1178 (GBPUSD,M5) OnStart : # 289466 2015.10 . 19 09 : 44 : 42 : spread = 18 , ask = 1.54498 , bid = 1.54480 , last = 0.00000
HR       0        13 : 04 : 51.698     test_CopyTicks_1178 (GBPUSD,M5) OnStart : # 289467 2015.10 . 19 09 : 44 : 42 : spread = 0 , ask = 0.00000 , bid = 0.00000 , last = 1.54480
EG       0        13 : 04 : 51.698     test_CopyTicks_1178 (GBPUSD,M5) OnStart : # 289468 2015.10 . 19 09 : 44 : 42 : spread = 19 , ask = 1.54499 , bid = 1.54480 , last = 0.00000
DI       0        13 : 04 : 51.698     test_CopyTicks_1178 (GBPUSD,M5) OnStart : # 289469 2015.10 . 19 09 : 44 : 42 : spread = 0 , ask = 0.00000 , bid = 0.00000 , last = 1.54480
DH       0        13 : 04 : 51.698     test_CopyTicks_1178 (GBPUSD,M5) OnStart : # 289470 2015.10 . 19 09 : 44 : 42 : spread = 18 , ask = 1.54498 , bid = 1.54480 , last = 0.00000
IM       0        13 : 04 : 51.698     test_CopyTicks_1178 (GBPUSD,M5) OnStart : # 289471 2015.10 . 19 09 : 44 : 42 : spread = 0 , ask = 0.00000 , bid = 0.00000 , last = 1.54480

Nakliye yöntemi farklıdır. Ve kesinlikle, milisaniyeler yeterli değil.

Ve böyle bir durumda keneler nasıl analiz edilir?!

 
Renat Fatkhullin :

Pekala.

Az önce işaret ettim - keneleri doldurmanın herhangi bir yapısı veya mantığı yoktur. Her fiyat alanı diğerlerinden bağımsızdır. Tedarikçiden gelen yayınlanır.

Renat, tedarikçiden gelen aynı tiklerin, talebin zamanına bağlı olarak farklı şekillerde de gelebileceği ortaya çıktı!?

Geçmiş biçimi, bağlı olduğu sunucuya bağlı mı?

 
Tapochun :

Söz verildiği gibi, bir sonraki yapımda olacak ve eminim ki orada da çipler olacak.

"Çip" olmasaydı iyi olurdu ve bu normaldir, aksi takdirde bir test cihazı değil, bir oyuncaktır. Ve barları kapatma stratejilerinde çok fazla yulaf lapası yapamazsınız ..

 
Maxim Dmitrievsky :

"Çip" olmasaydı iyi olurdu ve bu normaldir, aksi takdirde bir test cihazı değil, bir oyuncaktır. Ve barları kapatma stratejilerinde çok fazla yulaf lapası yapamazsınız ..

Cips olmadan, nadiren hemen olur. Teak hikayesi uzun zamandır bekliyor ve bir an önce aklıma getirmek istiyorum. Hem testte hem de gerçek hayatta. Ne yazık ki, çok fazla geri dönüş olmadı. Umarım akla getirme çalışmaları devam eder.

 
Karputov Vladimir :

Lütfen onay işaretlerini almak için bayrağı kontrol edin COPY_TICKS_INFO (yalnızca Teklif Et ve Sor) - Teklif Ver ve Talep "0" değeriyle veya COPY_TICKS_INFO modunda devam edebilir - Teklif ve Talep sıfır içermeyecek ve onayların akışı olduğu gibi olacaktır terminalde , "Piyasa İzleme" penceresinde "Ticks" sekmesinde?


1200 derlemesinde karar verecek:

MQL5: Genişletilmiş MqlTick yapı biçimi. Şimdi, tıklama varış zamanını milisaniye cinsinden ve ayrıca hangi belirli tick parametresinin değiştiğini belirlemenize izin veren bayrakları iletir.
 struct MqlTick
  {
   datetime      time;           // Время последнего обновления цен
   double        bid;           // Текущая цена Bid
   double        ask;           // Текущая цена Ask
   double        last;           // Текущая цена последней сделки (Last)
   ulong         volume;         // Объем для текущей цены Last
   long          time_msc;       // Время последнего обновления цен в миллисекундах
   uint          flags;         // Флаги тиков
  };
Her onay işareti için, verilerin bir önceki onay işaretine göre değişip değişmediğine bakılmaksızın tüm parametreler her zaman doldurulur. Bu, kene geçmişinde önceki değerlere bakmadan her zaman fiyatların güncel durumuna sahip olmanızı sağlar. Örneğin, yalnızca teklif fiyatı bir işaret ile değişebilir, ancak yeni fiyata ek olarak, yapıda başka parametreler de belirtilecektir: önceki satış fiyatı, hacim vb. Geçerli onay işaretiyle tam olarak hangi verilerin değiştiğini öğrenmek için işaretlerini analiz edin:

  • TICK_FLAG_BID - teklif fiyatını değiştiren onay işareti
  • TICK_FLAG_ASK - onay fiyatını değiştirdi
  • TICK_FLAG_LAST - tik, son işlemin fiyatını değiştirdi
  • TICK_FLAG_VOLUME - değiştirilen ses seviyesini işaretleyin
  • TICK_FLAG_BUY - bir satın alma anlaşmasının sonucu olarak onay işareti oluştu
  • TICK_FLAG_SELL - bir satış anlaşmasının sonucu olarak tik oluştu

MqlTick yapısı iki yöntemde kullanılır:

  • CopyTicks - yöntem eski yapı biçimini desteklemiyor. Eski onay biçimi kullanılarak önceden derlenmiş EX5 dosyaları, CopyTicks işlevi çağrılırken 4006 hatası (ERR_MQL_INVALID_ARRAY) döndürür.
  • SymbolInfoTick - yöntem hem eski hem de yeni yapı biçimini destekler.
 

Böyle:

MetaTrader 5 x64 build 1192 started (MetaQuotes Software Corp.)
...
authorized on MetaQuotes-Demo through Access Point Asia (ping: 556.27 ms)

ve güncellenmiş MqlTick yapısı:

Güncellenmiş MqlTick yapısı

 
Karputov Vladimir :

Böyle:

ve güncellenmiş MqlTick yapısı:


Ve terminale yeni bir kene gelişini nasıl takip edebilirim? Örneğin, bir test cihazında.

"OnTick() işlevi her tik için bir işleyici değildir, piyasadaki değişiklikler hakkında EA'yı bilgilendirir. Değişiklikler paketlenebilir: terminale aynı anda birkaç tik gelebilir, ancak OnTick() işlevi çağrılacaktır. EA'yı piyasanın en son durumu hakkında bilgilendirmek için yalnızca bir kez. "

 
Maxim Dmitrievsky :

Ve terminale yeni bir kene gelişini nasıl takip edebilirim? Örneğin, bir test cihazında.

"OnTick() işlevi her tik için bir işleyici değildir, piyasadaki değişiklikler hakkında EA'yı bilgilendirir. Değişiklikler paketlenebilir: terminale aynı anda birkaç tik gelebilir, ancak OnTick() işlevi çağrılacaktır. EA'yı piyasanın en son durumu hakkında bilgilendirmek için yalnızca bir kez. "

Her keneyi izlemeniz gerekiyorsa, bunu göstergede yapmanız gerekir. Gösterge, danışmanın aksine her bir onay işaretini işler.

Eklendi: artık Expert Advisor'daki tüm onay işaretlerini analiz etmek mümkündür - yalnızca çekleri girmeniz yeterlidir (örneğin, 5 onay derinliğine sahip bir CopyTicks isteğini analiz edin).

 

1192 oluşturun. Windows 10 x32.

Daha önce MetaQuotes-Demo sunucusunun tick geçmişi klasörünü tamamen sildim. gösterge

 //+------------------------------------------------------------------+
//|                                                         test.mq5 |
//|                        Copyright 2015, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property indicator_chart_window
#property indicator_plots 0
//--- input parameter
input int    InpShowTicks= 500 ;     // клубина истории тиков
//--- parameters
MqlTick      arr_mql_tick[];       // массив структур хранящий тики
bool         bingo= false ;         // false - скачано тиков меньше запрошенного
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int OnInit ()
  {
   Comment ( "" );
   ResetLastError ();
//--- новый размер массива структур тиков
   if ( ArrayResize (arr_mql_tick,InpShowTicks)==- 1 )
     {
       Print ( "Error OnInit #1" , GetLastError ());
       return ( INIT_FAILED );
     }
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
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[])
  {
   static int count;
   string text= "" ;
   if (bingo)
       return (rates_total);
   int copied=CopyTicks( _Symbol ,arr_mql_tick,COPY_TICKS_INFO, 0 ,InpShowTicks);
   if (copied==InpShowTicks)
      bingo= true ;
   text= "Запрошено " + IntegerToString (InpShowTicks)+ " тиков, скачано " + IntegerToString (copied);
   Comment (text);
   count++;
   return (rates_total);
  }
//+------------------------------------------------------------------+

Kenelerin indirilmesini kontrol ediyorum. Bazı araçlarda, gerekli 500 tik birinci veya ikinci tik üzerinde tam anlamıyla indirilir ve en fazla 200 KB indirilir (enstrümanları "Piyasa İzleme" den grafiğe sürüklerim).

Ancak bazılarında mucizeler başlıyor: kene geçmişi bana gerekli 500 keneyi vermek istemiyor, ancak aynı zamanda terminal yaklaşık 20 MB geçmiş indiriyor (10 ve 9 aylık geçmiş).

Dosyalar:
test.mq5  3 kb