Скачать MetaTrader 5

Советник закрывает график на котором установлен

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Andrey Anisimov
4192
Andrey Anisimov  

Здравствуйте, у меня советник в котором есть такой код:

long id_chart=ChartOpen(OrderSymbol(),15);     // Открытие нового графика
  ChartApplyTemplate(id_chart,"screen.tpl");   // Применение шаблона к графику
     if(id_chart==ChartID())continue;          // Поставил на всякий случай
        funkciya();                            // Выполняются действия на графике
           ChartClose(id_chart);               // Закрытие нового графика

Работает нормально, но случается что закрывается график на котором установлен сам советник.

Скажите в чем тут дело?
Vladimir Karputov
Модератор
61400
Vladimir Karputov  
sdfzx:

Здравствуйте, у меня советник в котором есть такой код:

Работает нормально, но случается что закрывается график на котором установлен сам советник.

Скажите в чем тут дело?
Cтрочкой 
ChartClose(id_chart);               // Закрытие нового графика
график, который создал эксперт, закрывается.
Andrey Anisimov
4192
Andrey Anisimov  
barabashkakvn:
Cтрочкой график, который создал эксперт, закрывается.

Дело в том, что закрывается график на котором стоит сам эксперт. Редко, но такое случается, даже строчка:

if(id_chart==ChartID())continue;

не помогает.

Vladimir Karputov
Модератор
61400
Vladimir Karputov  
ChartClose
больше нигде не встречается? А что за функция "funkciya()"?
Vladimir Karputov
Модератор
61400
Vladimir Karputov  
И еще - не понятно в каком блоке советника Ваш код: в OnInit() или в OnTick() или ....?
Andrey Anisimov
4192
Andrey Anisimov  
barabashkakvn:
больше нигде не встречается? А что за функция "funkciya()"?
Нет, ChartClose больше нигде нет. А функция "funkciya() снимает скриншот. В OnTimer().
Vladimir Karputov
Модератор
61400
Vladimir Karputov  
sdfzx:
Нет, ChartClose больше нигде нет. А функция "funkciya() снимает скриншот. В OnTimer().
То есть Вы в таймере создаете график, затем его закрываете? Поставьте перед ChartOpen оператор Print и посмотрите, сколько раз у Вас создается график.
Aleksey Lebedev
6094
Aleksey Lebedev  
может как-то так
long id_chart=ChartOpen(OrderSymbol(),15);   // Открытие нового графика
ChartApplyTemplate(id_chart,"screen.tpl");   // Применение шаблона к графику
funkciya();                                  // Выполняются действия на графике
if(id_chart!=ChartID()) ChartClose(id_chart);// Закрытие нового графика
Andrey Anisimov
4192
Andrey Anisimov  
Спасибо, буду пробовать. Сбой довольно редкий, так что займет время. Возможно просто баг в новом Build.
pashan1
36
pashan1  
Здравствуйте Андрей! не знаю как с вами связаться -решил тут!я скачал ваши скрипты по закрытию ордеров -отлично работают только они из всех перебранных по закрытию! но мне нужна от скрипта еще одна функция ! мой адрес pashan1@yandex.ru
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий