Новая версия платформы MetaTrader 5 build 3550: улучшения и исправления - страница 33

 
fxsaber #:

Спасибо, подтверждается. Удивительно, что получилось почти интуитивно создать такой пример.

Теперь можно будет тыкать математикам. От перемены мест слагаемых (множителей) сумма (произведение) меняется )))

 
fxsaber #:

Спасибо, подтверждается. Удивительно, что получилось почти интуитивно создать такой пример.

2023.03.02 15:49:51.710 OnTester result 75
2023.03.02 15:49:51.712 GBPUSD,H1: 2956057 ticks, 504 bars generated. Environment synchronized in 0:00:00.132. Test passed in 0:02:16.363 (including ticks preprocessing 0:00:00.109).
2023.03.02 15:51:26.565 OnTester result 74
2023.03.02 15:51:26.568 GBPUSD,H1: 2956057 ticks, 504 bars generated. Environment synchronized in 0:00:00.123. Test passed in 0:00:00.993 (including ticks preprocessing 0:00:00.125).
 
fxsaber #:
@Ilyas, очень странное поведение компилятора. Запускаю этот код в Тестере.


После немного меняю исходник.


Результат.


Почему такая огромная разница там, где ее не должно быть?

если включена максимальная оптимизация, то видимо цикл в 75 хуже развернулся чем в 74 (или вообще не развернулся, слишком длинный, для развёртываний есть пределы) .. то есть "виновен" внутренний цикл: 

for (int i = 0; i < SIZE; i++)

на самом деле это ловля блох и напрасная трата времени

 
Maxim Kuznetsov #:

если включена максимальная оптимизация, то видимо цикл в 75 хуже развернулся чем в 74 (или вообще не развернулся, слишком длинный, для развёртываний есть пределы) .. то есть "виновен" внутренний цикл: 

на самом деле это ловля блох и напрасная трата времени

Мне надо было разобраться, почему большой серьезный код тормозит. Профилировщик ничего показать не смог (отключение инлайна и оптимизации не помогли).

Сделал гипотезу и ... привел код здесь.

 
fxsaber # :
Спасибо, что посмотрели. Я обновил терминал до b3589, и ситуация разного поведения повторилась.


Настройки компилятора.


Настройки Тестера.

С вашими настройками еще не воспроизводится на моей стороне. Странный.

2023.03.02 10:16:44.887    OnTester result 74
2023.03.02 10:16:44.887    EURCAD,M1: 151686 ticks, 1440 bars generated. Environment synchronized in 0:00:00.023. Test passed in 0:00:08.797 (including ticks preprocessing 0:00:00.031).
2023.03.02 10:17:23.129    OnTester result 75
2023.03.02 10:17:23.129    EURCAD,M1: 151686 ticks, 1440 bars generated. Environment synchronized in 0:00:00.025. Test passed in 0:00:08.672 (including ticks preprocessing 0:00:00.031).

 
Разница в процессорах? Патчах? Кэширование?
 

Странно, проверим результирующий asm код после выпуска беты.

 

Коллеги, объясните пожалуйста как считает тестер стратегий свой отчёт (версия 3550).

Если убыточных трейдов два, и самый большой -12.46, то откуда Средний убыточный трейд -17.67, и общий убыток -35.33 ?

Причём, по истории сделок самый большой убыток есть

А второй убыток, вот такой -1.59

Архив отчёта прилагаю.

Файлы:
 
Andrey Kaunov #:

Архив отчёта прилагаю.

Пришлите tst-файл.


Похоже, в "Общий убыток" попадают и DEAL_ENTRY_IN сделки с комиссией.

Соответственно, "Средний убыточный трейд" = "Общий убыток" / "Убыточные трейды".

 

Вот .tst файл.

Но среднее значение никак не может быть больше самого большого. А у меня почти на каждом прогоне такое вылезает

Ну и так далее...

Да, действительно, так и выходит, что он общий убыток (включая DEAL_ENTRY_IN сделки с комиссией) делит на два убыточных трейда, это же косяк какой то в расчётах.  DEAL_ENTRY_IN сделки с комиссией вообще не должны учитываться.


P.S. Только сейчас дошло, что и убыточную сделку он неправильно считает. Он учитывает только комиссию за закрытие, а комиссия за открытие не учитывается

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

P.P.S. Ну соответственно да, и в расчёте самой прибыльной сделки считает только одну комиссию. В отчёте она 19.10

Причина обращения: