Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 209
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Проблема в этой строке
Поскольку на одном баре проверяется несколько валют, то кроме времени надо ещё сверять и валюту, чтобы исключить повтор алерта на одном баре и одном символе, но разрешить алерт на этом-же баре с другим символом. На первый взгляд напрашивается ещё один массив с флагами просмотрен символ или нет.
В общем или в эту строку добавить проверку добавить символа, или вообще цикл повторять только при условии открытия нового бара. Но есть опасение, что при появлении нового бара на символе с этим индикатором, на другом символе новый бар ещё не нарисовался.
Отсюда вывод: надо напрягать мышцы головы, чтобы определять появление нового бара на каждом символе отдельно, но в то-же время не растягивать количество строк до бесконечности. Готового решения у меня нет. Да и не люблю я подсказывать написанием кода...
А я не решил его проблему?
Может где-то что-то и упустил - на коленке писал код.
А я не решил его проблему?
Может где-то что-то и упустил - на коленке писал код.
Артём, последнее предложение моего поста объясняет всё. Твой код даже не смотрел. Открыл первое не прочитанное, вопрос с цитатой моего предыдущего ответа, я ответил и уже потом видел другие советы. В правильности твоего кода, даже с коленки, я не сомневаюсь...
Артём, последнее предложение моего поста объясняет всё. Твой код даже не смотрел. Открыл первое не прочитанное, вопрос с цитатой моего предыдущего ответа, я ответил и уже потом видел другие советы. В правильности твоего кода, даже с коленки, я не сомневаюсь...
Так бы и сказал, что лень ;)
Даже при первом взгляде видно, что код зависит от тиков на текущем символе. А значит нужно убирать цикл из OnTick() и пихать его в таймер. И слегка видоизменить определение времени алерта.
Здравия всем,есть недопонимание процесса,в функции "старт", в цикле mm++; и слежу за изменения в ней через Print();, так вопрос:"почему вместо 1,2,3,4 и т.д. выскакивают четырёхзначные числа? "
сам код
Здравия всем,есть недопонимание процесса,в функции "старт", в цикле mm++; и слежу за изменения в ней через Print();, так вопрос:"почему вместо 1,2,3,4 и т.д. выскакивают четырёхзначные числа? "
сам код
При первом запуске, секунд 10 IndicatorCounted()=0
значит limit= макс. баров в истории-1
При первом запуске, секунд 10 IndicatorCounted()=0
значит limit= макс. баров в истории-1
чот всё равно не понятно, объявление и инициалицация нулём вне цикла int mm=0; и помещено в цикл mm++; в print() видно как четырёхзначные числа меняются с разницей в одну единицу только почему то в сторону убывания
Alexey Viktorov:
...надо напрягать мышцы головы...
Благодарю всех, кто откликнулся.
Artyom Trishkin: Например, так:
Ограничение проверки на новом баре не подойдёт, потому что будут ещё условия, которые нужно проверять на каждом тике.
В ваш код пытаюсь добавить OnTimer(), работало в советнике когда OnTick() а как сделать с OnCalculate ?
Подскажите, почему не открывает ордера ?
Благодарю всех, кто откликнулся.
Артём, почему вы пишите, что не решили? Сигналит по всем инструментам, только грузит систему сильно. Есть возможность снизить нагрузку?
Ограничение проверки на новом баре не подойдёт, потому что будут ещё условия, которые нужно проверять на каждом тике.
В ваш код пытаюсь добавить OnTimer(), работало в советнике когда OnTick() а как сделать с OnCalculate ?
Так попробуйте. Таймер на 200 милисекунд