Всех с Новым Годом!
Скрипт анализирует результаты торговли советника по величине прибыли, которые берет из истории сделок за период HistorySelect(t0,t1) функцией HistoryDealGetDouble(ticket, DEAL_PROFIT, deal_profit). Проблема в том, что ИНОГДА скрипт выдает правильные результаты, а иногда - кривые. Для того, чтобы убедиться, что расчет верный, приходится проверять по истории сделок на платформе МТ5. Если результаты не совпадают, то запускаю скрипт несколько раз, пока не выдаст результат, совпадающий с платформой. Алгоритм скрипта собираюсь зашить в советник для самоанализа. Поэтому, такой расчет, который приходится перепроверять, мне не годится. Ставил задержку Sleep() после HistorySelect() — не помогает. Также, использую вариант bool HistoryDealGetDouble(), надеялся, что покажет ошибки чтения - не помогло, ошибок чтения не выдает.
Как добиться, чтобы гарантированно получить от платформы корректную информацию о сделках?
Спасибо.
С большой долей вероятности проблема в скрипте.
Вот здесь fxsaber выложил удобную библу, которая работает с закрытыми позициями, то есть то же, что ваш скрипт. Попробуйте её.
- 2023.11.22
- www.mql5.com
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Скрипт анализирует результаты торговли советника по величине прибыли, которые берет из истории сделок за период HistorySelect(t0,t1) функцией HistoryDealGetDouble(ticket, DEAL_PROFIT, deal_profit). Проблема в том, что ИНОГДА скрипт выдает правильные результаты, а иногда - кривые. Для того, чтобы убедиться, что расчет верный, приходится проверять по истории сделок на платформе МТ5. Если результаты не совпадают, то запускаю скрипт несколько раз, пока не выдаст результат, совпадающий с платформой. Алгоритм скрипта собираюсь зашить в советник для самоанализа. Поэтому, такой расчет, который приходится перепроверять, мне не годится. Ставил задержку Sleep() после HistorySelect() — не помогает. Также, использую вариант bool HistoryDealGetDouble(), надеялся, что покажет ошибки чтения - не помогло, ошибок чтения не выдает.
Как добиться, чтобы гарантированно получить от платформы корректную информацию о сделках?
Спасибо.