Ошибки, баги, вопросы - страница 2859
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
В общем, какие мысли по возможной реализации?
реализаций можно много придумать
но все равно сведется к задаче обмена данными между ЕА
самое простое - в начале каждого советника в OnTick() прописать проверку разрешения на инициализацию и саму инициализацию выполнять там же OnTick() - это позволит не восстанавливать чарты и потом запускать на них ЕА , да и сохранение перед закрытием ЕА возможно будет выполнить в OnDeinit()
ну а кто будет управлять этим зоопарком, не принципиально - или главный ЕА или сервис
В логе тестера
Что это значит?
В логе тестера
Что это значит?
Это значит, что при получении очередного значения m1 ohlc (или состояния бара при тестировании по ценам открытия) в поле time оказался 0
undefined function означает, что проблема произошла вне предопределённых функций (OnTick, OnTimer etc), то есть в основном цикле тестера
Это значит, что при получении очередного значения m1 ohlc (или состояния бара при тестировании по ценам открытия) в поле time оказался 0
undefined function означает, что проблема произошла вне предопределённых функций (OnTick, OnTimer etc), то есть в основном цикле тестера
Весь день всё работало нормально, а потом это началось. Что я могу сделать, как пользователь?
Это значит, что при получении очередного значения m1 ohlc (или состояния бара при тестировании по ценам открытия) в поле time оказался 0
undefined function означает, что проблема произошла вне предопределённых функций (OnTick, OnTimer etc), то есть в основном цикле тестера
Я не понимаю, у меня в коде ошибка или это ошибка в терминале? Стер всю историю - не помогло.
Добавлено:
Нашёл у себя функцию, отключение которой позволяет избегать ошибки, но в другом советнике эта функция работает корректно! Как так? Могу сбросить в личку.
Даже когда функция включена эта баговая, то OnTick() полностью проходит на первом баре, а потом та ошибка.
На разных терминалах ошибка подтверждается.
Запустил по тикам - ошибки нет...
Но, странность в логе:
По тикам если смотреть инструмент, то первый тик был ровно в 10:00, да и торговая сессия ещё закрыта в это время. Это в визуальном режиме, без галки первый принт приходит в 10 часов.
самое простое - в начале каждого советника в OnTick() прописать проверку разрешения на инициализацию
Это и есть основная загвоздка задачи.
Попробуйте обратить внимание на ID графиков и по старшинству запускать. Но это не отменяет взаимодействие советников. Или сделать файл или может быть база SQLite с ID графиков в последовательности запуска.
Что-то типа, при первой инициализации, если в списке отсутствует Chart_ID() то он вносится в список. Если закрывается не по причине закрытия терминала, то из списка удаляется. Таким образом можно будет настроить взаимодействие советников.
Это и есть основная загвоздка задачи.
набросал как вижу... создал 2 ЕА с таким кодом:
и один управляющий ЕА, который работает в таймере ( 5 сек )
проверил, все работает, единственное или не разобрался или не получилось через GlobalVariableSetOnCondition() сделать запись в глобальные переменные
Это и есть основная загвоздка задачи.
GlobalVariableSetOnCondition — все, что нужно для решения задачи.
Работа разрешена только тогда, когда GlobalVariableSetOnCondition вернул true.
После успешной инициализации и освобождения ресурсов возвращаем гл. переменную в исходное состояние, и другой советник стартует.
В ДеИните — безусловное удаление переменной, чтобы не нарваться на старт терминала без советников вообще (если предыдущая загрузка завершилась некорректно).
Спасибо за рекомендации. Посмотрю в сторону GlobalVariableSetOnCondition.