Pergunta para os conhecedores - página 21

 
Olá. Limitei meu trabalho à seguinte função:
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);
}

No entanto, as ordens em aberto são deixadas à sua própria sorte.

Eu gostaria que a EA não fizesse novas encomendas em um determinado momento, mas que acompanhasse as encomendas abertas.

Presumo que você será capaz de desativar/desativar a formação de um sinal em um determinado momento.

Por favor, informe como fazer isso.

 

Lembro-me que I.Kim tinha tais funções de tempo: https://www.mql5.com/ru/forum/131859 - p.9

isTradeTimeString - Devolve a bandeira permitindo o comércio por tempo.
isTradeTimeInt - Devolve a bandeira para permitir a negociação por tempo.

Para garantir que as ordens abertas não sejam "deixadas ao acaso", a condição se (isTradeTimeString()==falso) { ... ser usado somente para abertura de posições. Não utilize esta função (esta condição) para todas as outras ações (trailing, modificação, fechamento de posição).

Vinin:
Remover comentários
Obrigado.
 

Saudações a todos.

Meu indicador desenha várias linhas em uma janela separada. Por exemplo - MA de duas moedas. E também a linha de sua diferença.

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

Eu "penduro" manualmente este indicador no terminal no modo "Dados dos primeiros indicadores" para outro indicador, por exemplo, Bonds ou Envelope.

Preciso deste segundo indicador para "pendurar" exatamente na linha da diferença - buffer BufW,

Por favor, informe - como posso configurá-lo programmaticamente no código? A fim de "pendurar" qualquer outro indicador no modo "Dados dos primeiros indicadores" para escolher estritamente a linha de diferença no buffer BufW?

No momento, o segundo indicador "paira" constantemente na linha MA do primeiro símbolo Buf1.

Razão: