Domanda per gli intenditori - pagina 21

 
Ciao, ho limitato il mio lavoro alla seguente funzione:
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);
}

Tuttavia, gli ordini aperti sono lasciati a se stessi...

Vorrei che l'EA non piazzasse nuovi ordini ad una certa ora, ma che accompagnasse gli ordini aperti.

Presumo che sarà possibile disabilitare/disabilitare la formazione di un segnale in un certo momento.

Per favore, consigliate come fare questo.

 

Ricordo che I.Kim aveva queste funzioni temporali: https://www.mql5.com/ru/forum/131859 - p.9

isTradeTimeString - Restituisce la bandiera che permette di negoziare in base al tempo.
isTradeTimeInt - Restituisce la bandiera per permettere il trading in base al tempo.

Per assicurarsi che gli ordini aperti non siano "lasciati al caso", la condizione if (isTradeTimeString()==false) { ... si applicano solo alle posizioni aperte. Non usate questa funzione (questa condizione) per tutte le altre azioni (trascinamento, modifica, chiusura della posizione).

Vinin:
Rimuovere i commenti
Grazie.
 

Saluti a tutti.

Il mio indicatore disegna diverse linee in una finestra separata. Per esempio - MA di due valute. E anche la linea della loro differenza.

#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);

Ho "appeso" manualmente questo indicatore nel terminale nella modalità "Dati dei primi indicatori" ad un altro indicatore, ad esempio Obbligazioni o Inviluppo.

Ho bisogno che questo secondo indicatore si "appenda" esattamente alla linea della differenza - buffer BufW,

Per favore consigliatemi - come posso specificarlo nel codice in modo programmatico? Per "appendere" qualsiasi altro indicatore nella modalità "Dati primi indicatori" per scegliere rigorosamente la linea di differenza nel buffer BufW?

Al momento, il secondo indicatore si "blocca" costantemente sulla linea MA del primo simbolo Buf1.

Motivazione: