Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Размести программу в Маркете - это 7 миллионов потенциальных клиентов
Vadim Kazakevich
3739
Vadim Kazakevich 2016.07.29 09:24 

Доброго времени суток уважаемые программисты. В данный момент я пишу советник, который использует данные, взятые с горизонтальных линий, нанесенных вручную. По идее, при нанесении на график горизонтальной линии советник должен ее переименовать по имени таймфрейма + порядковый номер линии на данном тф. С этим я справился. Затруднение в том, что после нанесения горизонтальной линии на график, она переименовывается только после поступления тика, как и должно быть. При этом тик может поступить через минуту, или через секунду. Все зависит от момента выхода новой котировки на сервере.

Вопрос в том, как сделать так, что бы после нанесения линии на график, она переименовывалась сразу же, не зависимо от поступления тика? Пробовал функцию OnTimer(), ничего не получается, как как я до конца не понимаю, что она выполняет. Заранее спасибо за ответы.

Vladimir Karputov
Модератор
42427
Vladimir Karputov 2016.07.29 09:30  
Vadim Kazakevich:

Доброго времени суток уважаемые программисты. В данный момент я пишу советник, который использует данные, взятые с горизонтальных линий, нанесенных вручную. По идее, при нанесении на график горизонтальной линии советник должен ее переименовать по имени таймфрейма + порядковый номер линии на данном тф. С этим я справился. Затруднение в том, что после нанесения горизонтальной линии на график, она переименовывается только после поступления тика, как и должно быть. При этом тик может поступить через минуту, или через секунду. Все зависит от момента выхода новой котировки на сервере.

Вопрос в том, как сделать так, что бы после нанесения линии на график, она переименовывалась сразу же, не зависимо от поступления тика? Пробовал функцию OnTimer(), ничего не получается, как как я до конца не понимаю, что она выполняет. Заранее спасибо за ответы.

Вам поможет событие OnChartEvent. и тип события CHARTEVENT_OBJECT_CREATE — событие создания графического объекта (если для графика установлено свойство CHART_EVENT_OBJECT_CREATE=true);
Vitalii Ananev
7871
Vitalii Ananev 2016.07.29 09:37  
void OnChartEvent(const int id,         // идентификатор события   
                  const long& lparam,   // параметр события типа long 
                  const double& dparam, // параметр события типа double 
                  const string& sparam  // параметр события типа string 
  )
{
   if (id == CHARTEVENT_OBJECT_CREATE)
   {
      
     if (ObjectType(sparam)==OBJ_HLINE)
     {
        ....
     }
    }
}
Vadim Kazakevich
3739
Vadim Kazakevich 2016.07.29 09:50  
Karputov Vladimir:
Вам поможет событие OnChartEvent. и тип события CHARTEVENT_OBJECT_CREATE — событие создания графического объекта (если для графика установлено свойство CHART_EVENT_OBJECT_CREATE=true);
А можете пример показать. Что то я не пойму, как это использовать.
Vadim Kazakevich
3739
Vadim Kazakevich 2016.07.29 10:09  
Vitalii Ananev:
Спасибо! Это помогло! Теперь это все без void OnTick() работает! Большое спасибо!
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий