Gerçek zamanlı keneler - sayfa 21

 
Aleksey Mavrin :

İşte gün için bir resim. Tabii ki, OnBuk Tick'in eşleşip eşleşmediği kontrol edilmedi, ancak bir sonraki OnTick OnBuk'un önündeyse, karşılık gelenin ya bir sonraki ya da biraz sonra olacağı umuduyla alındı.

Elbette, ek kontroller olmadan maksimum, bir gösterge veya aykırı değer değildir veya aslında OnBuk bir yerde yavaşlar.


Ama bunu kim açıklayabilir? Neden bu kadar çok OnTick basılmamış ve aralarına tek bir OnBuk sığmıyor?


Çünkü " Kod dizde, belki bir eğri, sonuçlara bakacağım. "

 //+------------------------------------------------------------------+
//| BookEvent function                                               |
//+------------------------------------------------------------------+
void OnBookEvent ( const string &symbol)
{ 
   if ((Mode != USE_BOOK) || (symbol != Symbol ())) return ;
  TimeArrayBook[curBook]= GetMicrosecondCount ();
  curBook++
 }
void OnTick ()
{
   if (Mode != USE_TICK) return ;
  TimeArrayTick[curTick]= GetMicrosecondCount ();
  curTick++
}

Ve bir zamanlayıcıya bile ihtiyacınız yok...

 
Ama merak ediyorum, topikstarter sorusuna verilen cevaplardan memnun mu?
 
prostotrader :

Çünkü " Kod dizde, belki bir eğri, sonuçlara bakacağım. "

Ve bir zamanlayıcıya bile ihtiyacınız yok...

Sebebin koddaki hatalardan kaynaklandığını bulamadınız. Ya da soru yanlış anlaşıldı. Az önce O işlevlerinde bir zamanlayıcı olmadan bir işaret yazdırdım, hala aralarında OnBook olmayan bir keneler kalabalığı var.
 
Aleksey Mavrin :
Sebebin koddaki hatalardan kaynaklandığını bulamadınız. Ya da soru yanlış anlaşıldı. Az önce O işlevlerinde bir zamanlayıcı olmadan bir işaret yazdırdım, hala aralarında OnBook olmayan bir keneler kalabalığı var.

1. Danışman(lar)ı nasıl başlattığınızı hiç anlamıyorum

2. Andrey ve benim tarafımdan yazılmış 2 kod var.

birbirinizi onaylayın . Öyleyse neden seninkiyle uğraşıyorsun ?

3. Hem Andrey hem de ben, Vadeli İşlemler Piyasası'nda Uzman Danışmanlar'ı başlattık ve siz de Borsa'da.

Belki terminalin Fon'da bazı kusurları vardır (MT5'i Borsa'da piyasaya sürmedim bile).

Şahsen ben, Fon'da Quick aracılığıyla ticaret yapıyorum

 
prostotrader :

1. Danışman(lar)ı nasıl başlattığınızı hiç anlamıyorum

2. Andrey ve benim tarafımdan yazılmış 2 kod var.

birbirinizi onaylayın. Öyleyse neden seninkiyle uğraşıyorsun ?

3. Hem Andrey hem de ben, Vadeli İşlemler Piyasası'nda Uzman Danışmanlar'ı başlattık ve siz de Borsa'da.

Belki terminalin Fon'da bazı kusurları vardır (MT5'i Borsa'da piyasaya sürmedim bile).

Şahsen ben, Fon'da Quick aracılığıyla ticaret yapıyorum

Temiz, açık, belirgin. Yarın acilen deneyeceğim. Neden fonda MT5 kullanmıyorsunuz? Dezavantajları nelerdir?
Z.s. kod 3 satırdır) herhangi bir kontrol yapmadan Moskova saatini düzeltir, böylece işleyici tarafından kuyruğun herhangi bir şekilde yavaşlatılmaması sağlanır ve zamanlayıcıya yazdırılır ve gecikmeyi sayar. Kodunuzda, ben de tam olarak anlamadım, sonuç, genel çalışma prensibi konusunda zaten açık.
 
Aleksey Mavrin :
1. Ah, açıkçası. Yarın acilen deneyeceğim. Neden fonda MT5 kullanmıyorsunuz? Dezavantajları nelerdir?
Z.s. kod 3 satırdır) herhangi bir kontrol yapmadan Moskova saatini düzeltir, böylece işleyici tarafından kuyruğun herhangi bir şekilde yavaşlatılmaması sağlanır ve zamanlayıcıya yazdırılır ve gecikmeyi sayar. Kodunuzda, ben de tam olarak anlamadım, sonuç, genel çalışma prensibi konusunda zaten açık.

1. Brokerdeki ikinci ve sonraki terminaller ödenir ve sadece hisse ( hisse portföyleri ) ticareti yaptığım stratejilerim yok.

2. Birikmiş GetMicrosecondCount ()'u görüntüleyecekseniz, o zaman

OnDeinit() içinde zamanlayıcı olmadan yapın, EA çıktığında her şey yazdırılacaktır.

 void OnDeinit ( const int reason)
{
   if (Mode == USE_BOOK)
  {
     if (is_book == true ) MarketBookRelease ( Symbol ());
  } 
   if (reason == REASON_REMOVE )
  {
   //Распечатываем данные
  } 
}
 
prostotrader :

2. Birikmiş GetMicrosecondCount ()'u görüntüleyecekseniz, o zaman

OnDeinit() içinde zamanlayıcı olmadan yapın, EA çıktığında her şey yazdırılacaktır.

Evet, bu da mümkün, başlangıçta bunu takip etmek için netlik için yaptım. Ancak zamanlayıcı nedeniyle OnTick'ler atlanabilir, ancak OnBooks atlanmamalı, bunlar garantilidir. Belki bir şeyi hesaba katmadım, belki tüm Tiki sipariş defterinde bir değişiklik başlatmaz, yani. OnBook?
 
Aleksey Mavrin :
Evet, bu da mümkün, başlangıçta bunu takip etmek için netlik için yaptım. Ancak zamanlayıcı nedeniyle OnTick'ler atlanabilir, ancak OnBooks atlanmamalı, bunlar garantilidir. Belki bir şeyi hesaba katmadım, belki tüm Tiki sipariş defterinde bir değişiklik başlatmaz, yani. OnBook?

Ve ilerisi

Sayaçları kontrol etmeniz gerekir:

 void OnBookEvent ( const string &symbol)
{ 
   if (curBook >= 65534) return ;
   if ((Mode != USE_BOOK) || (symbol != Symbol ())) return ;
  TimeArrayBook[curBook]= GetMicrosecondCount ();
  curBook++
 }
void OnTick ()
{
   if (curTick >= 65534) return ;
   if (Mode != USE_TICK) return ;
  TimeArrayTick[curTick]= GetMicrosecondCount ();
  curTick++
}

Ve dizileri bildirirken bunu yapmanız gerekir.

 ulong TimeArrayBook[
INT_MAX];

а инициализировать так
ArrayInitialize(TimeArrayBook, 0);

	          
 
prostotrader :

Ve ilerisi

Sayaçları kontrol etmeniz gerekir:

Ve başlatma sırasında, sayı 65536 değil, 65535 olmalıdır.

Hayır, gerekli değil. Bu, hiçbir şeyi kontrol etmemek için bilerek yapılır. Onlar Uhort. Dizinin boyutu, evet, bir kenar boşluğu ile çıktı, ama sonuçta bu hiçbir şeyi etkilemiyor.
 
Aleksey Mavrin :

Ama bunu kim açıklayabilir? Neden bu kadar çok OnTick basılmamış ve aralarına tek bir OnBuk sığmıyor?

Günlük zamanına bakın. Bütün bunlar bir ms'de ve ardından (aynı ms'de) bir sürü OnBook'ta oldu.

Tüm olayları sayaç olarak sayabilirsiniz, ancak görsel olarak bile daha fazla OnBook'un olduğu açıktır.