MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 1385

 
Vitaly Muzichenko :

Açıklanan her şey, sarı ile vurgulananın dışında, daha önce yayınlanan kodla yapılır - gereksiz ve tamamen doğru olmadığını düşünüyorum. Her nasılsa, başka bir zamanda birinin devrildiğini hiç görmedim, herkes her zaman aynı şeyi yaşıyor - 22-00 GMT'de , yanılıyor olabilirim.

Ancak çoğu zaman farklı devir süreleri ile karşılaştım, bazılarının 5 dakikası varken bazılarının bir dakikadan biraz fazla süresi var.

---

Doğrulama kodu, bir şeyi değiştirebilir misiniz:

Bu yüzden her şeyi GMT saatine bağlayın. Yerel saat ile sunucu saati arasındaki farkı anladım ve rollover'ın ne kadar sürdüğünü hemen anlayabilirsiniz. Ve 5 dakika veya 1 bence önemli bir fark değil. Herkese 5 dakika ayırın.

 
Alexey Viktorov :

Bu yüzden her şeyi GMT saatine bağlayın.Yerel saat ile sunucu saati arasındaki farkı anladım ve rollover'ın ne kadar sürdüğünü hemen anlayabilirsiniz. Ve 5 dakika veya 1 bence önemli bir fark değil. Herkese 5 dakika ayırın.

Seçeneğiniz hangisi daha iyi veya daha güvenilir?

Mümkünse kodu gösterin!
 
Vitaly Muzichenko :

Seçeneğiniz hangisi daha iyi veya daha güvenilir?

Belki hiçbir şey. Kodlarınızı takip etmedim. Sadece fikrimi belirttim.

 

Vitaly Muzichenko :

Mümkünse kodu gösterin!

rol mü yapıyorsun?

 
Alexey Viktorov :

Belki hiçbir şey. Kodlarınızı takip etmedim. Sadece fikrimi belirttim.

Hepsi tek bir gönderide:

EA'nın genişletilmiş bir spread üzerinde işlem yapmaması için rollover sırasında spread kaydını ayıklamak gerekir.

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

MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma

Vitaly Muzichenko , 2021.02.11 14:04

Açıklanan her şey, sarı ile vurgulananın dışında, daha önce yayınlanan kodla yapılır - gereksiz ve tamamen doğru olmadığını düşünüyorum. Her nasılsa, birinin farklı bir zamanda devrildiğini hiç görmedim, herkes her zaman aynı şeyi yaşıyor - 22-00 GMT'de, yanılıyor olabilirim.

Ancak çoğu zaman farklı devir süreleri ile karşılaştım, bazılarının 5 dakikası varken bazılarının bir dakikadan biraz fazla süresi var.

---

Doğrulama kodu, bir şeyi değiştirebilir misiniz:

 //+------------------------------------------------------------------+
void OnTick ( void )
{
   int sp = SymbolInfoInteger ( Symbol (), SYMBOL_SPREAD );
   static int ts= 0 ;

   if (CheckSpr(sp)) {
       // Здесь код отправки
       Comment ( sp, "=" ,ts++, "=" ,res );
   } else Comment ( "false: " ,sp, "=" ,ts++, "=" ,res );
}

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
MqlDateTime dt;
int res= 0 ;
bool CheckSpr( int _sp)
{
   TimeGMT (dt);
   static int ts= 0 ;
   static long tc= 0 ;
   if (dt.hour== 22 ) return ( false ); // ролловер
   tc++;
   ts += _sp;
   res =ts/tc;
   if (tc> LONG_MAX - 1 ) {
      tc= 0 ;
      ts= 0 ;
   }
   // Comment( res,"=",tc );
   if (tc< 500 ) return ( false ); // собираем спред на 500 тиках
   return (res>_sp? true : false );
}

 
Vitaly Muzichenko :

Hepsi tek bir gönderide:

EA'nın genişletilmiş bir spread üzerinde işlem yapmaması için rollover sırasında spread kaydını ayıklamak gerekir.


Bir saat boyunca ticaret yok mu?

   if (dt.hour== 22 ) return ( false ); // ролловер

ya da bir şeyi yanlış anladın mı?

 
Vitaly Muzichenko :

Hepsi tek bir gönderide:

EA'nın genişletilmiş bir spread üzerinde işlem yapmaması için rollover sırasında spread kaydını ayıklamak gerekir.


Yayılmanın belirli bir kaydını (dosya, veritabanı) tam olarak rollover'da varsayımsal olarak yasaklıyor muyuz?

 
Alexey Viktorov :

Bir saat boyunca ticaret yok mu?

ya da bir şeyi yanlış anladın mı?

Bu doğru, bir saat sonra - artan bir yayılma. Evet ve 5 dakika boyunca rollover'dan önce, bazı yerlerde de genişletiliyor.

 
Alexey Viktorov :

Bir saat boyunca ticaret yok mu?

ya da bir şeyi yanlış anladın mı?

Ancak şu şekilde yazabilirsiniz:

 void OnTick ( void )
{
   int sp = SymbolInfoInteger ( Symbol (), SYMBOL_SPREAD );

   if (CheckSpr(sp)) {
       // Здесь код отправки
       Comment ( sp, "=" ,res );
   } else Comment ( "false: " ,sp, "=" ,res );
}

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
MqlDateTime dt;
int res= 0 ;
bool CheckSpr( int _sp)
{
   static int ts= 0 ;
   static long tc= 0 ;
   TimeGMT (dt);
   if (dt.hour== 22 && res<_sp ) return ( false ); // Если 1 час после ролловера спред упадёт до нормального - торгуем
   tc++;
   ts += _sp;
   res =ts/tc;
   if (tc> LONG_MAX - 1 ) {
      tc= 0 ;
      ts= 0 ;
   }
   if (tc< 500 ) return ( false );
   return (res>_sp? true : false );
}

Doğru çalışması gerekiyor gibi görünüyor.

 
Vitaly Muzichenko :

Ancak şu şekilde yazabilirsiniz:

Doğru çalışması gerekiyor gibi görünüyor.

Gülümsedi) olmamalı)

Savaş normal bir yayılma ile ticaret yapmaksa, girdiye "sınırını" koymanız ve yayılma sınırın üzerindeyse ticareti görmezden gelmeniz yeterlidir.

Yayılma, devrilmeden bile işlemlerle uzatılabilir.