Добрый день, Владимир!
Установил советника на график МТ5-Демо (buil 2132), но кроме кнопок Buy и Sell ничего не появилось, т.е. советник не установил трендовые линии и отложенные ордера. При нажатии на кнопки появляются трендовые линии и отложенные ордера. Дальше с ними можно работать, как было отражено в описании советника. Можете поправить, чтобы советник при старте сам устанавливал ордера?
С уважением, Владимир.
Добрый день, Владимир!
Установил советника на график МТ5-Демо (buil 2132), но кроме кнопок Buy и Sell ничего не появилось, т.е. советник не установил трендовые линии и отложенные ордера. При нажатии на кнопки появляются трендовые линии и отложенные ордера. Дальше с ними можно работать, как было отражено в описании советника. Можете поправить, чтобы советник при старте сам устанавливал ордера?
С уважением, Владимир.
Так Вы нажмите кнопочку и появится соответствующая линия, а потом ее уже будете перемещать как нужно
Здравствуйте, Владимир!
Так написал же в предыдущем сообщении о том, что при нажатии на кнопки Buy и Sell появляются трендовые линии и отложенные ордера, и что дальше с ними можно работать, как было отражено в описании советника. Однако при установке советника на график любой из валютных пар, ничего не происходит, кроме того, как появляются эти две кнопки. Или так и было задумано? Просто на рисунке, прикрепленном к описанию Вашего советника, были показаны две трендовые линии и отложенные ордера, в результате чего создалось впечатление, что они сами устанавливаются после запуска советника в работу. Это не так?
С уважением, Владимир.
Здравствуйте, Владимир!
Так написал же в предыдущем сообщении о том, что при нажатии на кнопки Buy и Sell появляются трендовые линии и отложенные ордера, и что дальше с ними можно работать, как было отражено в описании советника. Однако при установке советника на график любой из валютных пар, ничего не происходит, кроме того, как появляются эти две кнопки. Или так и было задумано? Просто на рисунке, прикрепленном к описанию Вашего советника, были показаны две трендовые линии и отложенные ордера, в результате чего создалось впечатление, что они сами устанавливаются после запуска советника в работу. Это не так?
С уважением, Владимир.
1 установите советник на график
2 появились кнопки
3 нажмите одну из кнопок
4 появилась линия
5 появился отложенный ордер
6 переместили линию
7 переместился отложенный ордер
Вы так делаете?
1 установите советник на график
2 появились кнопки
3 нажмите одну из кнопок
4 появилась линия
5 появился отложенный ордер
6 переместили линию
7 переместился отложенный ордер
Вы так делаете?
Здравствуйте, Владимир. Большое спасибо Вам за то, что сразу откликнулись и извините меня, что Ваш вопрос остался без ответа. Дело в том, что не стал больше заглядывать в эту тему, т.к. самостоятельно разобрался с работой советника. Кстати, очень хорошо работает. Ещё раз спасибо!
С уважением, Владимир.
Так Вы нажмите кнопочку и появится соответствующая линия, а потом ее уже будете перемещать как нужно
Владимир, упустил один момент. После удаления советника (пока не понял почему, т.к. не силен в языке MQL5) на графике остаются все графические объекты (кнопки, линии). Это не совсем удобно, поэтому для себя нашёл вот такое решение:
вместо кода
//-------------------------------------------------------------------- void OnDeinit(const int reason) { switch(reason) { case REASON_ACCOUNT: //Активирован другой счет либо произошло переподключение к торговому серверу вследствие изменения настроек счета break; case REASON_CHARTCHANGE: //Символ или период графика был изменен break; case REASON_CHARTCLOSE: //График закрыт ObjectDelete(0,"cm trend line"); break; case REASON_PARAMETERS: //Входные параметры были изменены пользователем break; case REASON_RECOMPILE: //Программа перекомпилирована break; case REASON_REMOVE: //Программа удалена с графика ObjectDelete(0,"cm trend line"); break; case REASON_TEMPLATE: //Применен другой шаблон графика ObjectDelete(0,"cm trend line"); break; case REASON_PROGRAM://Эксперт прекратил свою работу, вызвав функцию ExpertRemove() ObjectDelete(0,"cm trend line"); break; default: ObjectDelete(0,"cm trend line"); } } //--------------------------------------------------------------------
вставил другой код (отдельное спасибо Владимиру Карпутову за его скрипт откуда он был взят), который полностью очищает график от всех существующих графических объектов
//-------------------------------------------------------------------- void OnDeinit(const int reason) { Comment(""); ObjectsDeleteAll(0,-1,-1); ChartRedraw(); } //--------------------------------------------------------------------
Может кому-нибудь пригодится!
С уважением, Владимир.
Владимир, упустил один момент. После удаления советника (пока не понял почему, т.к. не силен в языке MQL5) на графике остаются все графические объекты (кнопки, линии). Это не совсем удобно, поэтому для себя нашёл вот такое решение:
вместо кода
вставил другой код (отдельное спасибо Владимиру Карпутову за его скрипт откуда он был взят), который полностью очищает график от всех существующих графических объектов
Может кому-нибудь пригодится!
С уважением, Владимир.
Плохое решение. Это действие удалит все графические объекты не только нарисованные данным скриптом. Удалять нужно только то, что нарисовал скрипт.
Плохое решение. Это действие удалит все графические объекты не только нарисованные данным скриптом. Удалять нужно только то, что нарисовал скрипт.
Здравствуйте, Владимир. Спасибо за то, что откликнулись! Полностью с Вами согласен по поводу плохого решения, но в данный момент мне оно подходит.
О том, что этот код полностью очищает график от всех существующих графических объектов, специально веделил жирными буквами. Когда подучу язык MQL5, тогда напишу другое, т.е. ХОРОШЕЕ решение этой проблемы. Сейчас уже есть к чему стремиться в плане изучения языка MQL5.
С уважением, Владимир.
MrBrooklin:
... Когда подучу язык MQL5, тогда напишу другое, т.е. ХОРОШЕЕ решение этой проблемы. Сейчас уже есть к чему стремиться в плане изучения языка MQL5.
С уважением, Владимир.
УРА! Нашел ХОРОШЕЕ решение. Заменил ObjectDelete на ObjectsDeleteAll и теперь всё удаляется при закрытии советника.
//-------------------------------------------------------------------- void OnDeinit(const int reason) { switch(reason) { case REASON_ACCOUNT: //Активирован другой счет либо произошло переподключение к торговому серверу вследствие изменения настроек счета break; case REASON_CHARTCHANGE: //Символ или период графика был изменен break; case REASON_CHARTCLOSE: //График закрыт ObjectsDeleteAll(0,"cm trend line"); break; case REASON_PARAMETERS: //Входные параметры были изменены пользователем break; case REASON_RECOMPILE: //Программа перекомпилирована break; case REASON_REMOVE: //Программа удалена с графика ObjectsDeleteAll(0,"cm trend line"); break; case REASON_TEMPLATE: //Применен другой шаблон графика ObjectsDeleteAll(0,"cm trend line"); break; case REASON_PROGRAM://Эксперт прекратил свою работу, вызвав функцию ExpertRemove() ObjectsDeleteAll(0,"cm trend line"); break; default: ObjectsDeleteAll(0,"cm trend line"); } } //--------------------------------------------------------------------
С уважением, Владимир.
Здравствуйте, Владимир. Спасибо за то, что откликнулись! Полностью с Вами согласен по поводу плохого решения, но в данный момент мне оно подходит.
О том, что этот код полностью очищает график от всех существующих графических объектов, специально веделил жирными буквами. Когда подучу язык MQL5, тогда напишу другое, т.е. ХОРОШЕЕ решение этой проблемы. Сейчас уже есть к чему стремиться в плане изучения языка MQL5.
С уважением, Владимир.
Лучше будет вот такое решение
void OnDeinit(const int reason) { ObjectsDeleteAll(0,"cm trend line"); }Оно же было и изначально в моем советнике, но только удаление не всегда необходимо. Например, не нужно удалять линии при смене тренда и именно для этого я ввел выборочное удаление. Т.е. линии удалялись только если закрывался советник
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
cm ea StopOrdersTrendLine:
Советник ставит отложенный ордер на определенном расстоянии от трендовой линии. И тралит его вдоль нее.
Автор: Vladimir Khlystov