Тестер стратегий MetaTrader 5: ошибки, баги, предложения по улучшению работы - страница 105

 
Aleksey Vyazmikin #:
Вообще о Форекс столько дезинформации, что обученные LLM глючат, выплёвывая часто сомнительные утверждения: "Большинство торговых операций на Форексе рассчитыватются и фиксируют прибыль/убыток именно в базовой валюте пары", ну или терминал у нас не так делает, как на Форексе...
По поводу вопроса можно EUR выразить в USD - именно так и делает терминал для расчёта маржи.

О марже в вопросе нет ни слова.

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Тестер стратегий MetaTrader 5: ошибки, баги, предложения по улучшению работы

Ivan Titov, 2026.07.03 04:39

Меняю Базовую валюту и Валюту прибыли в тестируемом символе - изменения не сохраняются:

После нажатия OK и повторного открытия:


Билд 5968


 
Alexey Viktorov #:

О марже в вопросе нет ни слова.


Обычно для форекс это одно и то же обозначение валюты.
 
Aleksey Vyazmikin #:
Обычно для форекс это одно и то же обозначение валюты.
А поконкретней? Что такое «одно» и что такое «то же»? И обратите внимание, что речь идёт о тестере, а не просто о форексе… Ваши реплики совсем невпопад…
 
Alexey Viktorov #:
А поконкретней? Что такое «одно» и что такое «то же»? И обратите внимание, что речь идёт о тестере, а не просто о форексе… Ваши реплики совсем невпопад…

Поясняю - базовая валюта и валюта маржи - одно и то же обычно - теперь понятно???

Мои реплики дают чёткий ответ на Ваш вопрос. Я исключил вариант, что Вы не понимаете, что обозначение символа может быть любым, но видимо ошибся.

 

Спасибо всем за ответы. Удалось устранить запрос других валютных пар и эту ошибку. Но осталась проблема с расхождением результатов генетической оптимизации по комплексному критерию и последующим прогоном одиночного теста по конкретному проходу оптимизации.

Оптимизирую на пользовательском символе в режиме "Каждый тик на основе реальных тиков" и "прибыль в пипсах..". Код перепроверял 10 раз на предмет инициализации глобальных переменных. Sleep() не использую. Как-то можно получить лог/историю сделок конкретного прогона оптимизации, чтобы сравнить с его одиночным тестом?

 
Ivan Titov #:
Но осталась проблема с расхождением результатов генетической оптимизации по комплексному критерию и последующим прогоном одиночного теста по конкретному проходу оптимизации.
Проверьте в коде инициализацию массивов и переменных - мусорные значения могут давать постоянно разный вариант.
Ivan Titov #:
Как-то можно получить лог/историю сделок конкретного прогона оптимизации, чтобы сравнить с его одиночным тестом?
Можно самому сохранять в csv - перебрав результаты истории во время деинициализации, или отправлять фреймом.
 
Aleksey Vyazmikin #:
Проверьте в коде инициализацию массивов и переменных

Проверил 11-й раз - всё норм.

Aleksey Vyazmikin #:
Можно самому сохранять в csv - перебрав результаты истории во время деинициализации, или отправлять фреймом.

Спасибо, попробую позже, т.к. довольно трудоемко. Пока добавил простую проверку последнего тика в начале теста:

MqlTick Tick;

int OnInit()
{
        ZeroMemory(Tick);
        if (SymbolInfoTick(_Symbol, Tick))
                Print("1st tick: ", Tick.time, ", ", Tick.time_msc, "ms, Bid=", DoubleToString(Tick.bid, _Digits), ", Ask=", DoubleToString(Tick.ask, _Digits));
}

В логе оптимизации:

1st tick: 2020.12.31 23:59:00, 1609459140000ms, Bid=1.22141, Ask=1.22164

В логе одиночного теста:

1st tick: 2020.12.31 23:59:59, 1609459199929ms, Bid=1.22141, Ask=1.22164

Ни время тика, ни цена Ask не совпадают с историей:

Причем время тика отличается даже между оптимизацией и одиночным прогоном. Настройки тестера:

Получается в MT5 нельзя доверять ни одиночному тесту, ни оптимизации?

Билд 5980.

 
Aleksey Vyazmikin #:

Поясняю - базовая валюта и валюта маржи - одно и то же обычно - теперь понятно???

Мои реплики дают чёткий ответ на Ваш вопрос. Я исключил вариант, что Вы не понимаете, что обозначение символа может быть любым, но видимо ошибся.

Вам ещё много чего надо подучить…


 
Понимаю, что тут больше внимания тестирующим, а не предоставляющим мощности, но без вторых не было бы и первых;)

А вопрос у меня такой. Появился тут комп на i5-14400 с Win 11 24H2. Установлена версия тестера 5908, AVX2. Создано 5 агентов (чтобы заведомо больше, чем Е-ядер проца и меньше, чем Р-ядер). Каждый из агентов пока сделал не более 200 проходов, но тем не менее. Обратил внимание на показатель PR этого проца. Он неожиданно низкий: 157-160. Это гораздо меньше, чем, например, у i3-9100F, у которого аж 196! Подозреваю, что дело в планировщике и/или в 4 экономичных ядрах проца. Кроме меня кого-то волнует такая проблема? А может кто-то её уже решил? Не проходите мимо, черкните пару строк!
 
Ivan Titov # :

Проверил 11-й раз - всё норм.

Спасибо, попробую позже, т.к. довольно трудоемко. Пока добавил простую проверку последнего тика в начале теста:

В логе оптимизации:

Непонятно, почему в логе после выполнения функции OnInit() в режиме оптимизации ничего не выводится.

В логе одиночного теста:

Ни время тика, ни цена Ask не совпадают с историей:

Причем время тика отличается даже между оптимизацией и одиночным прогоном. Настройки тестера:

Получается в MT5 нельзя доверять ни одиночному тесту, ни оптимизации?

Билд 5980.

Воспроизведение невозможно без пользовательского символа.