Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1516
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Выбрать "Максимум пользовательского критерия"
В код советника добавить, что то типа такого.
ого спасибо тебе большое
Виталий, я только на гифке заметил что в коде
Такая хрень.
Удалите эти строки и попробуйте повторить.
Я не понимаю, зачем надо вносить свои поправки и говорить о том, что совет не работает…
потом на гифке у вас не тот индикатор который вы показываете тут…
if(rates_total-prev_calculated==0)
Это не выполнится, если будет ошибка получения данных от МА и return(0); вернёт 0
На гифке тот-же индикатор.
Можно убрать, но проблему это не решит, только будет пересчёт индикатора на каждом тике, а это не нужно.
PS. И да, убрал и проверил - проблема не ушла, только ChartSetSymbolPeriod(0,Symbol(),PERIOD_CURRENT);
Это не выполнится, если будет ошибка получения данных от МА и return(0); вернёт 0
На гифке тот-же индикатор.
Можно убрать, но проблему это не решит, только будет пересчёт индикатора на каждом тике, а это не нужно.
PS. И да, убрал и проверил - проблема не ушла, только ChartSetSymbolPeriod(0,Symbol(),PERIOD_CURRENT);
Ну как знаешь. Если без этого жить не можешь, то пусть будет так…
Как можно говорить о том, что индикатор тот-же, если в примере просто распечатка значения, а на гифке строятся графические элементы…
Ну да… Больше вносит проблему эта строка
int res=Start(rates_total); // если "0" - то данные от МА не получены
Уберите её вниз и проверьте ещё раз. И даже перерисовка графика не нужна.
Да, Виталий, извини это у меня закралась ошибка и печать шла из другого места.
Ну как знаешь. Если без этого жить не можешь, то пусть будет так…
Как можно говорить о том, что индикатор тот-же, если в примере просто распечатка значения, а на гифке строятся графические элементы…
Ну да… Больше вносит проблему эта строка
Уберите её вниз и проверьте ещё раз. И даже перерисовка графика не нужна.
Да, Виталий, извини это у меня закралась ошибка и печать шла из другого места.
объекты строятся по расчетам МА
нашел такую статью https://www.mql5.com/ru/articles/286
и в исходнике его советника такой код
но никак не соображу как выставить нужные параметры, а конкретно:
Нет.
Выбирать позицию надо не по символу, а по тикету функцией PositionGetTicket(i) и потом проверять магик и символ.
Верно ли я понимаю, что в данном случае position_symbol и magic относятся именно к данному ticket? Работает ли конкатенация, вроде ticket.magic или ticket.symbol? Верна ли запись теперь?
Верна ли следующая запись?
Небольшое уточнение к Вашему коду:
С уважением, Владимир.
Верно ли я понимаю, что в данном случае position_symbol и magic относятся именно к данному ticket? Работает ли конкатенация, вроде ticket.magic или ticket.symbol? Верна ли запись теперь?
так будет почти правильно.
У каждого свой принцип программирования и на мой взгляд вот эта строка вашего кода выглядит как-то странно
Зачем проверка if(total = 0 ……… ведь если нет открытых позиций, то и цикл выполняться просто не будет.
Да и проверка if(………magic != Magic_m)) ничего не даёт. Ведь если позиция имеет иной магик, то просто начнётся новая итерация цикла и без дополнительных команд.
Но это всё на любителя. Если нравится так, то пишите так…
автоматически выбирает эту позицию для дальнейшей работы с ней при помощи функций PositionGetDouble, PositionGetInteger, PositionGetString
Благодарю. Выяснял, что конкретно может значить это "автоматически".
так будет почти правильно.
У каждого свой принцип программирования и на мой взгляд вот эта строка вашего кода выглядит как-то странно
Зачем проверка if(total = 0 ……… ведь если нет открытых позиций, то и цикл выполняться просто не будет.
Да и проверка if(………magic != Magic_m)) ничего не даёт. Ведь если позиция имеет иной магик, то просто начнётся новая итерация цикла и без дополнительных команд.
Но это всё на любителя. Если нравится так, то пишите так…
Возможно, это из-за того, что у меня i >= 0. У Вас - больше нуля. И конкатенация, о которой я спрашивал, не принимается MetaEditor-ом. Хотя я взял ее из статьи МетаКвот (https://www.mql5.com/ru/articles/12103)...
А почему Вы не проверяете posTicket на равенство нулю? Ведь равенство нулю по документации свидетельствует об ошибке?
Касаемо ненужности проверки магика я пока не понимаю. Смысл кода - быть уверенным, что не открыта позиция именно этим экспертом на данном инструменте. Экспертов на инструменте несколько. У каждого - свое окно. Эксперты магиком и отличаются.