Uzmanlar için soru - sayfa 21

 
Merhaba. Çalışmayı zamanla aşağıdaki işlevle sınırladım:
 bool isTradeTimeInt( int hb= 0 , int mb= 0 , int he= 0 , int me= 0 ) {
   datetime db, de;         
   int       hc;              

  db= StrToTime ( TimeToStr ( TimeCurrent (), TIME_DATE )+ " " +hb+ ":" +mb);
  de= StrToTime ( TimeToStr ( TimeCurrent (), TIME_DATE )+ " " +he+ ":" +me);
  hc= TimeHour ( TimeCurrent ());
   if (db>=de) {
     if (hc>=he) de+= 24 * 60 * 60 ; else db-= 24 * 60 * 60 ;
  }

   if ( TimeCurrent ()>=db && TimeCurrent ()<=de) return ( True );
   else return ( False );
}

Ancak, açık emirler keyfi kalır...

Bunu, belirli bir zamanda danışmanın yeni siparişler vermemesi, ancak açık siparişlere eşlik etmesi için yapmak istiyorum.

Belli bir zamanda sinyal oluşumunu yasaklamanın/izin vermenin mümkün olduğunu düşünüyorum.

Lütfen bana nasıl yapacağımı söyle.

 

I.Kim'in böyle geçici işlevleri olduğunu hatırlıyorum: https://www.mql5.com/ru/forum/131859 - sayfa №9

isTradeTimeString - Zaman ticareti etkinleştirme bayrağını döndürür.
isTradeTimeInt - Zaman ticaret izni bayrağını döndürür.

Açık emirlerin şansa bırakılmasını önlemek için if (isTradeTimeString()==false) { ... koşulunu sadece pozisyon açmak için kullanın. Diğer tüm eylemler için (takip etme, değiştirme, bir pozisyonu kapatma), bu işlevi (bu koşul) kullanmayın.

Vinin :
Yorumları kaldır
Sayesinde.
 

Hepiniz hoşgeldiniz.

Göstergem ayrı bir pencerede birkaç çizgi çiziyor. Örneğin - iki para biriminin MA. Ve ayrıca farklılıklarının çizgisi.

 #property indicator_separate_window
#property indicator_buffers 4
... ...
// Буферы для отображения данных
double Buf1[];     // Первый инструмент ма1
double Buf2[];     // Второй инструмент ма2
double BufS[];     // Средняя линия (ма1+ма2)/2
double BufW[];     // разность ма1-ма2
double BufW_Up[]; // Восходящиая разность
double BufW_Dn[]; // Нисходящая разность

...
int init() {
 IndicatorBuffers(7);
  
  SetIndexStyle(0,DRAW_LINE);
  SetIndexBuffer(0,Buf1);
  SetIndexLabel(0, Symbol1); 

  SetIndexStyle(1,DRAW_LINE);
  SetIndexBuffer(1,Buf2);
  SetIndexLabel(1,Symbol2); 

  SetIndexStyle(2,DRAW_LINE);
  SetIndexBuffer(2,BufW_Up);
  SetIndexLabel(2,"Channel width Up");

  SetIndexStyle(3,DRAW_LINE);
  SetIndexBuffer(3,BufW_Dn);
  SetIndexLabel(3,"Channel width Down");
  
  SetIndexBuffer(4,BufW);
  SetIndexBuffer(5,BufS);

"İlk gösterge verileri" modunda terminaldeki bu göstergeye başka bir göstergeyi manuel olarak "asarım", örneğin Tahviller veya Zarf.

Bu ikinci hindinin tam olarak fark satırında "asılı" kalmasına ihtiyacım var - BufW arabelleği,

Lütfen. söyle bana - bunu bir şekilde kodda programlı olarak ayarlayabilir miyim? Başka herhangi bir gösterge için, BufW arabelleğindeki fark çizgisini kesin olarak seçmek için "İlk gösterge verileri" modunda "asılı" olmak?

şu anda ikinci gösterge, ilk sembol Buf1'in MA satırında sürekli olarak "asılır".

Neden: