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

 
Martingal nasıl yapılır?
Doğru şekilde anladım:
Her işlemi açmadan önce, bu sihir ile bu sembol için tüm işlemleri kontrol etmeniz gerekiyor ve son işlem tarihe göre zarara uğradıysa lotu buna göre artırıyor muyuz?
 
Roman Sharanov :
Martingal nasıl yapılır?
Doğru şekilde anladım:
Her işlemi açmadan önce, bu sihir ile bu sembol için tüm işlemleri kontrol etmeniz gerekiyor ve son işlem tarihe göre zarar ediyorsa lotu buna göre artırıyor muyuz?

Aşağı yukarı böyle

 
Sergey Gritsay :

Aşağı yukarı böyle

Tüm işlemlerden en son nasıl hesaplanacağını anlamıyorum

 
Karşılaşan kişilerin, RSI üzerine bindirilmiş RSI gibi başka bir göstergeye dayalı gösterge verilerini alması gerekir.
 
Roman Sharanov :

Tüm işlemlerden en son nasıl hesaplanacağını anlamıyorum

Aşağı yukarı böyle.

 double   ProfitLastDeals()
  {
   double m_profit= 0 ;
   int total= OrdersTotal ();

   for ( int i= 0 ; i<total; i++)
     {
       if (! OrderSelect (i, SELECT_BY_POS )) continue ;
       if ( OrderMagicNumber ()!=m_magic) continue ;
       if ( OrderSymbol ()!=m_symbol) continue ;
       if ( OrderType ()==m_type)
        {
         m_profit= OrderProfit ();
        }
     }
   return (m_profit);
  }
 
Sergey Gritsay :
Karşılaşan kişilerin, RSI üzerine bindirilmiş RSI gibi başka bir göstergeye dayalı gösterge verilerini alması gerekir.

Her şey anlaşıldı, soru artık alakalı değil

 
Roman Sharanov :

Tüm işlemlerden en son nasıl hesaplanacağını anlamıyorum

Kusura bakmayın son örnek açıklardan seçiyor kapalılardan böyle olması lazım

 double   ProfitLastDealsHistory()
  {
   double m_profit= 0 ;
   int total= OrdersHistoryTotal ();

   for ( int i= 0 ; i<total; i++)
     {
       if (! OrderSelect (i, SELECT_BY_POS , MODE_HISTORY )) continue ;
       if ( OrderMagicNumber ()!=m_magic) continue ;
       if ( OrderSymbol ()!=m_symbol) continue ;
       if ( OrderType ()==m_type)
        {
         m_profit= OrderProfit ();
        }
     }
   return (m_profit);
  }
 

iBarShift() 'in garip davranışı. (-1) dizinini kesin işaretli kesin =false ile döndürür.

Hata herhangi bir zamanda rastgele oluşur, manuel olarak yakalamanın bir yolu yoktur.

Negatif bir indeks alındığında, kod yürütülen sorgunun parametrelerini ve sonucu konsola yazar.

 2019.01 . 04 10 : 40 : 24.047 CCC (GBPUSD,M1) Neg index: NZDUSD TimeCurrent : 2019.01 . 04 09 : 40 : 23 Request: 2019.01 . 04 09 : 40 : 23 TimeLastTick: 2019.01 . 04 09 : 40 : 23.44
2019.01 . 04 10 : 40 : 24.047 CCC (GBPUSD,M1) LastError: 0

İstek - bu, çubuk endeksinin talep edildiği zamandır

TimeLastTick, istenen sembol için son tik zamanıdır, MqlTick [] hata oluştuktan hemen sonra alınır.

Bu davranışın sebebi ne olabilir, başına gelen var mı?

 
SemenTalonov :

iBarShift() 'in garip davranışı. (-1) dizinini kesin işaretli kesin =false ile döndürür.

Hata herhangi bir zamanda rastgele oluşur, manuel olarak yakalamanın bir yolu yoktur.

Negatif bir indeks alındığında, kod yürütülen sorgunun parametrelerini ve sonucu konsola yazar.

İstek - bu, çubuk endeksinin talep edildiği zamandır

TimeLastTick, istenen sembol için son tik zamanıdır, MqlTick [] hata oluştuktan hemen sonra alınır.

Bu davranışın sebebi ne olabilir, başına gelen var mı?

Ve belgelerde kesin == false hakkında ne yazıyor?
 
Artyom Trishkin :
Ve belgelerde kesin == false hakkında ne yazıyor?

Belirtilen süre boyunca çubuk bulunamazsa, döndürülen değer. kesin=yanlış ise iBarShift , açılış süresi belirtilenden daha kısa olan en yakın çubuğun dizinini döndürür ( time_open < time ). Böyle bir çubuk bulunamazsa (belirtilen zamandan önce geçmiş yok), işlev -1 döndürür.

Ama hikaye şu ki, bu bir gerçek. Her şey en yeni (zaman serisinde 0.) çubukta gerçekleşir.