Добрый день!
По сколько знаний в MQL5 не достаточно для написания советника с нуля, взял за основу советник MACD Sample из папки Example, поставляемый с терминалом MT5.
По сути поменял только индикаторы и соответственно условия. Советник должен находить уровень по фракталам, рисовать линию по найденному уровню и открывать позицию от этого уровня.
Все необходимы данные вычисляются, но линия не отрисовывается и позиции не открываются. Причем функция отрисовки линии в другом советнике (более простом) работает.
Помогите пожалуйста разобраться в чем ошибка.
Посмотрел код, не увидел ни одного тестового принта. Почему вы их не вставили? Во всех местах, где не происходит желаемое, например, не рисуется линия вставьте Print(список всех важных переменных). Скорее всего, ситуация прояснится.
Посмотрел код, не увидел ни одного тестового принта. Почему вы их не вставили? Во всех местах, где не происходит желаемое, например, не рисуется линия вставьте Print(список всех важных переменных). Скорее всего, ситуация прояснится.
Так я ж взял за основу готовый советник, который работал. И линия рисовалась в другом советнике из которого взял эту функцию. А в функции открытии позиций есть принт при невозможности открыть позицию, но он молчит.
Так я ж взял за основу готовый советник, который работал. И линия рисовалась в другом советнике из которого взял эту функцию. А в функции открытии позиций есть принт при невозможности открыть позицию, но он молчит.
Ну так значит что-то порушили. Вот вам лень принты вставить, а почему думаете, что кому-то интересно в этих багах ковыряться? Вставьте принты, учитесь искать ошибки самостоятельно.
Линию малек поправил, она начала рисоваться, но только по первому значению параметра level, а дальше перерисовывается, но опять с первоначальным значением. Почему-то level (для цены) не обновляется в функции создания линии. Хотя level то обновляется и принты выводят корректные значения. Кстати вставил принт
if(!HLineCreate(0,InpName,0,level,clrRed,InpStyle,InpWidth,InpBack, InpSelection,InpHidden,InpZOrder)) Print("name=",InpName, " Price=",level);
но он ничего не выводит.
Ваш принт сработает только если линия, по каким то причинам, не сможет отрисоваться.
if(Fractal_Up_LP>Fractal_Up_Level && rt[1].close<Up_Body) { level=Up_Body; Print("ShortLevel=",level); if(!HLineCreate(0,InpName,0,level,clrBlue,InpStyle,InpWidth,InpBack, InpSelection,InpHidden,InpZOrder)) { return(false); } //--- перерисуем график и подождем 1 секунду Print(HLineCreate()); ChartRedraw(); Sleep(1000);
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Добрый день!
По сколько знаний в MQL5 не достаточно для написания советника с нуля, взял за основу советник MACD Sample из папки Example, поставляемый с терминалом MT5.
По сути поменял только индикаторы и соответственно условия. Советник должен находить уровень по фракталам, рисовать линию по найденному уровню и открывать позицию от этого уровня.
Все необходимы данные вычисляются, но линия не отрисовывается и позиции не открываются. Причем функция отрисовки линии в другом советнике (более простом) работает.
Помогите пожалуйста разобраться в чем ошибка.