Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
MT4 это темная коробка, и о том что там происходит я сужу только тестируя в реальных условиях. Изначально sleep вообще я не использовал, но когда на некоторых часовых барах получал чушь, добавил sleep и проблема исчезла. В какой последовательности и как обновляются таймсерии MT4 я ХЗ. Пусть меня ругают "свидетели наичистейшего истинного кода", главное что я решил свои проблемы, чем и делюсь.
Сам столкнулся с этим, в тестере всё чётко, на реальном рынке - чушь.
Гоняю советник с понедельника и удивляюсь.
Несколько открытий верны, после этого снова бай, вместо селл и наоборот.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
Vitaly Muzichenko, 2021.02.15 21:48
Открыл мт4 чтобы по-быстрому проверить алгоритм.
Очень странно, что в тестере работает правильно, а после установки на реал - реверс сделок. Код простейший, всего 2 индикаторных буфера
Код индикатора простейший
Сам столкнулся с этим, в тестере всё чётко, на реальном рынке - чушь.
Гоняю советник с понедельника и удивляюсь.
Несколько открытий верны, после этого снова бай, вместо селл и наоборот.
Код индикатора простейший
Это таже хрень с которой столкнулся я до открытия этой ветки. На реале по каким-то причинам терминал дает устаревшие данные, я там выше функцию запилил isRefresh(). Попробуй с ней. У меня все заработало нормально.
А это у тебя не проскальзывание?
Код индикатора простейший
а разве индикатор открывает сделки?
стрелки стоят одинаково - проблема в коде ЕА
Начал учить, так помоги, подтверди кодом, тестами, ссылкой на тему в форуме или документации. Все остальное это мозговая мастурбация.
Уточни плиз, что осталось неясно. Прочитав показалось что основной вопрос решен и осталось обсудить насколько 4-ка устарела)
У меня не было проблем после вставки такой загрузки таймфреймов
Если вам нужно редко и нерегулярно обращаться к таймфрейму, то эту загрузку надо(но необязательно если открыт график) выполнять снова перед проверкой, или поможет такая проверка
Это таже хрень с которой столкнулся я до открытия этой ветки. На реале по каким-то причинам терминал дает устаревшие данные, я там выше функцию запилил isRefresh(). Попробуй с ней. У меня все заработало нормально.
А это у тебя не проскальзывание?
Нет, открытие на новом 0 баре, сигнал ищется по закрытому бару, то есть 1.
Вот иногда и возникает ситуация, что советник через iCustom() получает не то, что ожидается. Опять-же: иногда, но не часто.
Вот ещё есть - свежее. Открыл бай верно - по сигналу, следующий сигнал с индикатора так-же бай (внизу стрелка), но эксперт через iCustom() получил почему-то сигнал на селл, при этом закрыл бай и открыл селл, хотя там должно быть открытие второго бай.
Что-то видать не то с таймсериями, пока не разбирался, обнаружено 4 дня назад, да и разбираться скорее всего не буду, перенесу расчёт в советник. В тестере проблем не увидел ни разу
Вот прям сейчас
--- И ещё только что нашёл
И ещё, но уже вместо селл, открыт бай. Как и говорил, не часто такое, но бывает
Код индикатора простейший - нет никаких заумностей
Уточни плиз, что осталось неясно. Прочитав показалось что основной вопрос решен и осталось обсудить насколько 4-ка устарела)
У меня не было проблем после вставки такой загрузки таймфреймов
Если вам нужно редко и нерегулярно обращаться к таймфрейму, то эту загрузку надо(но необязательно если открыт график) выполнять снова перед проверкой, или поможет такая проверка
Все правильно,
это из справки:
Доступ к данным индикаторов и таймсерий осуществляется независимо от факта готовности запрашиваемых данных (так называемый асинхронный доступ). Это критически важно для расчета пользовательских индикаторов, поэтому при отсутствии запрашиваемых данных функции типа Copy...() сразу же возвращают ошибку. Однако при доступе из экспертов и скриптов производится несколько попыток получения данных с небольшой паузой, призванной обеспечить время, необходимое для загрузки недостающих таймсерий либо для расчета значений индикаторов.
Если запрашивается информация с другого графика (название инструмента и/или значение таймфрейма отличаются от текущих), то возможна ситуация, что в клиентском терминале не открыт соответствующий график и необходимые данные должны быть запрошены у сервера. В этом случае в переменную _Last_error будет помещена ошибка ERR_HISTORY_WILL_UPDATED (4066 - запрошенные исторические данные в состоянии обновления) и необходимо через некоторое время повторить попытку запроса (см. пример ArrayCopySeries()).
И ещё, но уже вместо селл, открыт бай. Как и говорил, не часто такое, но бывает
Код индикатора простейший - нет никаких заумностей
Самый достоверный метод - писать лог. На каждой сделке писать в файл значения ключевых переменных. Из опыта: не строгое условие <=0 вместо <0 вносило жуткую кривость.
Сам столкнулся с этим, в тестере всё чётко, на реальном рынке - чушь.
Гоняю советник с понедельника и удивляюсь.
Несколько открытий верны, после этого снова бай, вместо селл и наоборот.
Код индикатора простейший
А зачем прибавлять 0 в [i + 0] ?
Уточни плиз, что осталось неясно. Прочитав показалось что основной вопрос решен и осталось обсудить насколько 4-ка устарела)
У меня не было проблем после вставки такой загрузки таймфреймов
Если вам нужно редко и нерегулярно обращаться к таймфрейму, то эту загрузку надо(но необязательно если открыт график) выполнять снова перед проверкой, или поможет такая проверка
Спасибо, это по делу. А терминал реально дает ошибку 4066 после обращения через iTime к необновленной таймсерии? Я столкнулся с тем что iClose отдает необновленную информацию вместо нуля.