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

 
MakarFX :
Evet

Yardım için teşekkürler. Yanılmıyorsam, void OnTick() her bir onay işaretini işlemesine rağmen , içinde TimeSeconds() kullanırsanız, o zaman void OnTick() her bir onay işaretini değil, yalnızca her bir dakika mumunun başlangıcını işleyecektir. buna tüm kodun yürütme süresinden tasarruf sağlayacaktır.

Söyle bana, TimeSeconds() yerine if(Dakika() != x) ve sonunda x= Dakika() koşulunu yazarsan, etki TimeSeconds() ile aynı mı olacak?

teşekkürler

 
ANDREY :

Yardım için teşekkürler. Yanılmıyorsam, void OnTick() her bir onay işaretini işlemesine rağmen , içinde TimeSeconds() kullanırsanız, o zaman void OnTick() her bir onay işaretini değil, yalnızca her bir dakika mumunun başlangıcını işleyecektir. buna tüm kodun yürütme süresinden tasarruf sağlayacaktır.

Söyle bana, TimeSeconds() yerine if(Dakika() != x) ve sonunda x= Dakika() koşulunu yazarsan, etki TimeSeconds() ile aynı mı olacak?

teşekkürler

 bool FlagNewBar= false ,
     FlagBegin= true ;

void OnTick ()

FlagNewBar= false ;
   if (BarTime!=Time[ 0 ])
     {
      BarTime=Time[ 0 ];
      FlagNewBar= true ;
     }


   if (FlagNewBar || FlagBegin)
     {
      FlagBegin= false ;
.......

)

Daha da iyisi, zamanlayıcı sizin için ve oturumlar dışında harmanlayacaktır. Ve böylece sadece yeni bir mumda.

Ve neden böyle, çünkü ilk ekstremumdan bir mevduat ızgarası kurmak daha kolay mı? Temelde aynısınız. İlk koşul, bir ekstremum aramaktır ve daha sonra hareket aşağıysa, siparişin 30 noktasından sonra.

Grafiğe koyduktan hemen sonra çalışmak için flagbegin gereklidir. Gerekmiyorsa, o zaman flagbegin'i kaldırın.

 
Valeriy Yastremskiy :

Daha da iyisi, zamanlayıcı sizin için ve oturumlar dışında harmanlayacaktır. Ve böylece sadece yeni bir mumda.

Ve neden böyle, çünkü ilk ekstremumdan bir mevduat ızgarası kurmak daha kolay mı? Temelde aynısınız. İlk koşul, bir ekstremum aramaktır ve daha sonra hareket aşağıysa, siparişin 30 noktasından sonra.

Grafiğe koyduktan hemen sonra çalışmak için flagbegin gereklidir. Gerekmiyorsa, o zaman flagbegin'i kaldırın.

30 p'den sonra yerel minimumdan başlayan bir emrim var, yani BID eksi MINIMUM >= 30 p.
Katıldığınız için teşekkürler. Şimdi tavsiyene uyacağım...

 
Valeriy Yastremskiy :

Daha da iyisi, zamanlayıcı sizin için ve seanslar dışında harmanlayacaktır. Ve böylece sadece yeni bir mumda.

Ve neden böyle, çünkü ilk ekstremumdan bir mevduat ızgarası kurmak daha kolay mı? Temelde aynısınız. İlk koşul, bir ekstremum aramaktır ve daha sonra hareket aşağıysa, siparişin 30 noktasından sonra.

Grafiğe koyduktan hemen sonra çalışmak için flagbegin gereklidir. Gerekmiyorsa, o zaman flagbegin'i kaldırın.

Yerel bir minimum belirdi ... ve ondan kurdum, diyelim ki yerel minimumdan 30,32,34 ... puan uzaklıkta 10 gecikme. Ve sonra, fiyat ilk gecikmeye ulaşmadan önce yerel dip güncellendi ve tüm gecikmeleri tekrar ayarlamam gerekecek. Bana öyle geliyor ki, yükleme ve yeniden yükleme gecikmeleri çok uzun sürüyor. Ve onu kurtarmaya çalışıyorum.

 
Valeriy Yastremskiy :

Daha da iyisi , zamanlayıcı sizin için ve oturumlar dışında harmanlayacaktır. Ve böylece sadece yeni bir mumda.

Ve neden böyle, çünkü ilk ekstremumdan bir mevduat ızgarası kurmak daha kolay mı? Temelde aynısınız. İlk koşul, bir ekstremum aramaktır ve daha sonra hareket aşağıysa, siparişin 30 noktasından sonra.

Grafiğe koyduktan hemen sonra çalışmak için flagbegin gereklidir. Gerekmiyorsa, o zaman flagbegin'i kaldırın.

Zamanlayıcım harmanlanırsa sevinirim. Ancak MT4 test cihazında ortaya çıktığı gibi, zamanlayıcı çalışmıyor.

 
ANDREY :

Yardım için teşekkürler. Yanılmıyorsam, void OnTick() her bir onay işaretini işlemesine rağmen , içinde TimeSeconds() kullanırsanız, o zaman void OnTick() her bir onay işaretini değil, yalnızca her bir dakika mumunun başlangıcını işleyecektir. buna tüm kodun yürütme süresinden tasarruf sağlayacaktır.

Söyle bana, TimeSeconds() yerine if(Dakika() != x) ve sonunda x= Dakika() koşulunu yazarsan, etki TimeSeconds() ile aynı mı olacak?

teşekkürler

       if (TimeMinute( TimeCurrent ())!=x)
         x=TimeMinute( TimeCurrent ();
 
Valeriy Yastremskiy :

Böyle daha iyi,

Lütfen bana "FlagNewBar"ın neden gerekli olduğunu söyler misiniz?

aynı değil mi

   if (BarTime!=Time[ 0 ])
     {
      ........
      BarTime=Time[ 0 ];
     }
 

MakarFX :

 if (TimeMinute( TimeCurrent ())!=x)
         x=TimeMinute( TimeCurrent ();


Bu durumda TimeSeconds() veya Time Minute () işlevlerinin kullanımını hala anlamıyorum - bu temel ve zorunlu mu? Sonuçta, tek bir Dakika () işlevi kullanarak bu işlevlerle aynı sonucu elde edebilirsiniz.

if ( Dakika() != x)
{

eylem
x= Dakika() ;

}

Teşekkür ederim.

 
ANDREY :

Bu durumda TimeSeconds() veya Time Minute () işlevlerinin kullanımını hala anlamıyorum - bu temel ve zorunlu mu? Sonuçta, tek bir Dakika () işlevi kullanarak bu işlevlerle aynı sonucu elde edebilirsiniz.

if ( Dakika() != x)
{

eylem
x= Dakika() ;

}

Teşekkür ederim.

Gerekli değil. Sana en çok yakıştığı için
 
MakarFX :

Lütfen bana "FlagNewBar"ın neden gerekli olduğunu söyler misiniz?

aynı değil mi

TEMEL alışkanlık. Onunla sakin olun) Onsuz yapabilirsiniz.) Ve koşul birkaç yere eklenirse, kayıt daha kısadır.

Tehdit. Mantık dallara ayrılmış ve histeretikse, bayraksız bir yol yoktur. Ve yazdırmaları kolaydır