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

 

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

И в тестере тоже пустой.

 
Andrey Kaunov #:

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

И в тестере тоже пустой.

Причина.

 
fxsaber #:

Причина.

То есть TesterPortfolio, не будет теперь работать?

У меня b3661
 
Andrey Kaunov #:

То есть TesterPortfolio, не будет теперь работать?

На b3668+ точно не будет работать до подстройки под новый tst-формат.

У меня b3661

В теории, должен работать.

 
fxsaber #:

На b3668+ точно не будет работать до подстройки под новый tst-формат.

В теории, должен работать.

Что же я не так делаю? 

Кладу .tst файлы в общую папку. Запускаю ваш советник на графике. Вываливается окно с названиями .tst файлов и прочей информацией. Тестер запускается, думает какое то время, и выдаёт нулевой отчёт.

В логах ошибка:

CS      2       21:42:11.958    Core 01 2022.01.03 23:00:00   failed market sell 10M USDCHF [Invalid volume]
CS      0       21:42:11.958    Core 01 2022.01.03 23:00:00   OrderSend(Symb,Type,Deal.GetProperty(DEAL_VOLUME),Price,0,0,0,Deal.GetProperty(DEAL_COMMENT),i)!=-1
CS      3       21:42:11.958    Core 01 TesterStop() called on 36% of testing interval
CS      0       21:42:11.958    Core 01 final balance 1000.00 USD
CS      0       21:42:11.958    Core 01 2022.01.03 23:00:00   TesterPortfolio:
CS      0       21:42:11.958    Core 01 2022.01.03 23:00:00   1: Portfolio\ePositiveNight_v14.EURUSD.M1.20220103_20230430.4.3EECD23FB550AADC49372401EE73985A.tst
CS      0       21:42:11.958    Core 01 2022.01.03 23:00:00   Experts\ePositiveNight_v14.ex5
CS      0       21:42:11.958    Core 01 2022.01.03 23:00:00   ; EURUSD
CS      0       21:42:11.958    Core 01 2022.01.03 23:00:00   ; 2022.01.03 - 2023.04.30
CS      0       21:42:11.958    Core 01 2022.01.03 23:00:00   ; 1093, 438, 1.98, 2.50, -104.77
CS      0       21:42:11.958    Core 01 2022.01.03 23:00:00   
CS      0       21:42:11.958    Core 01 2022.01.03 23:00:00   2: Portfolio\ePositiveNight_v14.GBPUSD.M1.20220103_20230430.4.988D2043AF5880BAD2DBCC3055C68683.tst
CS      0       21:42:11.958    Core 01 2022.01.03 23:00:00   Experts\ePositiveNight_v14.ex5
CS      0       21:42:11.958    Core 01 2022.01.03 23:00:00   ; GBPUSD
CS      0       21:42:11.958    Core 01 2022.01.03 23:00:00   ; 2022.01.03 - 2023.04.30
CS      0       21:42:11.958    Core 01 2022.01.03 23:00:00   ; 1455, 418, 2.00, 3.48, -161.59
CS      0       21:42:11.958    Core 01 2022.01.03 23:00:00   
CS      0       21:42:11.958    Core 01 2022.01.03 23:00:00   3: Portfolio\ePositiveNight_v14.USDCHF.M1.20220103_20230430.4.E53F87C4563D5FB4F45873C215A5C3C3.tst
CS      0       21:42:11.958    Core 01 2022.01.03 23:00:00   Experts\ePositiveNight_v14.ex5
CS      0       21:42:11.958    Core 01 2022.01.03 23:00:00   ; USDCHF
CS      0       21:42:11.958    Core 01 2022.01.03 23:00:00   ; 2022.01.03 - 2023.04.30
CS      0       21:42:11.958    Core 01 2022.01.03 23:00:00   ; 834, 273, 2.09, 3.05, -161.92
CS      0       21:42:11.958    Core 01 2022.01.03 23:00:00   
CS      0       21:42:11.958    Core 01 2022.01.03 23:00:00   Symbols:
CS      0       21:42:11.958    Core 01 2022.01.03 23:00:00   1: USDCHF
CS      0       21:42:11.958    Core 01 2022.01.03 23:00:00   2: GBPUSD
CS      0       21:42:11.958    Core 01 2022.01.03 23:00:00   3: EURUSD
 
Andrey Kaunov #:

Что же я не так делаю? 

Пришлите tst-файлы в ЛС. На выходных посмотрю.

 
Andrey Kaunov #:

Что же я не так делаю? 

Кладу .tst файлы в общую папку. Запускаю ваш советник на графике. Вываливается окно с названиями .tst файлов и прочей информацией. Тестер запускается, думает какое то время, и выдаёт нулевой отчёт.

В логах ошибка:

У меня очень похожая картина на Validate. Он останавливается посреди итогового прогона всех OOS, потому что запоминает, что сделки в конце очередного участка OOS были закрыты в 23:59 по причине end of test, а сам закрыть их не может, т.к. рынок в это время не работает:

2023.05.18 19:51:33.911 Core 01 2021.01.11 23:59:56   failed market sell 0.01 EURCHF, close #368 buy 0.01 EURCHF 1.08181 [Market closed]

2023.05.18 19:51:33.911 Core 01 2021.01.11 23:59:56   CloseOrder(Symb,1-Type,Deal.GetProperty(DEAL_VOLUME),Price,i,Deal.GetProperty(DEAL_COMMENT))

2023.05.18 19:51:33.911 Core 01 TesterStop() called on 60% of testing interval

Остановка тестера вызывается из ValidatePortfolio.mqh:286:

                if (IsNetting || (Deal.GetProperty(DEAL_ENTRY) == DEAL_ENTRY_IN))   
                  MACROS(OrderSend(Symb, Type, Deal.GetProperty(DEAL_VOLUME), Price, 0, 0, 0, Deal.GetProperty(DEAL_COMMENT), i) != -1)
                else 
                  MACROS(CloseOrder(Symb, 1 - Type, Deal.GetProperty(DEAL_VOLUME), Price, i, Deal.GetProperty(DEAL_COMMENT)))

При попытке перекомпилировать ValidatePortfolio, который управляет исполнением сделок, вылезают вот такие ошибки:

Билд 3661.

 

PS: ValidatePortfolio.mqh успешно скомпилировалось после того, как убрал ноль из MT4Orders.mqh:2093:

static MqlTradeRequest MT4ORDERS::LastTradeRequest = {0};

и добавил фигурные скобки в TypeToBytes.mqh:238:

  template <typename T1>
  T1 GetValue( const T1&, const uchar &Array[] ) const
  {
    STRUCT_READ<T1> Res = {{0}};
 
Xaba3abr #:

PS: ValidatePortfolio.mqh успешно скомпилировалось после того, как убрал ноль из MT4Orders.mqh:2093:

и добавил фигурные скобки в TypeToBytes.mqh:238:

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


 
fxsaber #:

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


Спасибо. Хотя после обновлений проблема сохранилась. Решил костылем: во время финального прогона, когда находится сделка, которая должна закрыться после конца сессии, ей меняется время закрытия на 6 минут раньше и добавляется коммент "end of test", чтобы закрыть по любой цене. По-хорошему надо это видимо на этапе формирования Portfolio из кусков OOS исправлять.