Вопрос к знатокам - страница 21

 
Здравствуйте. Ограничила работу по времени следующей функцией:
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);
}

Однако открытые ордера остаются на произвол...

Хочу сделать так чтобы в определенное время советник не выставлял новых ордеров но сопровождал открытые ордера.

Предполагаю что можно в определённое время запретить / разрешить формирование сигнала.

Подскажите пожалуйста как это сделать.

 

Помнится, у И.Кима были такие временные функции: https://www.mql5.com/ru/forum/131859 - стр.№9

isTradeTimeString - Возвращает флаг разрешения торговли по времени.
isTradeTimeInt - Возвращает флаг разрешения торговли по времени.

Чтобы открытые ордера "не оставались на произвол", условие if (isTradeTimeString()==false) { ... задействовать только для открытия позиций. Для всех остальных действий (трейлинг, модификация, закрытие поз.) эту функцию (это условие) не использовать.

Vinin:
Убрать комментарии
Благодарю.
 

Приветствую всех.

Индикатор у меня отрисовывает в отдельном окошечке несколько линий. К примеру - МА двух валют. А также линию их разности.

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

 Я на этот индикатор в терминале вручную  "вешаю"   в режиме "First indicators data" другой индикатор, например Бондс или Энвелоп.

Мне надо, чтобы этот второй индюк "повесился" именно на линию разности - буфер BufW,

Пож. подскажите - могу я как-то это задать в коде программно? Чтобы любой иной индикатор, будучи "повешен"  в режиме  "First indicators data" - выбирал строго линию разности в буфере    BufW ? 

В наст. момент второй индикатор постоянно "вешается" на линию МА первого символа  Buf1.