Проблемы с оптимизацией build 1596

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Konstantin Polyaev
30
Konstantin Polyaev  

Добрый день! При оптимизации советника в режиме "1 минута OHLC" возникают ошибки типа:

QI 2 18:02:58.157 Core 1 pass 5 tested with error "history processing error (tester bar time error)" in 0:00:00.016

FD 0 18:02:58.160 Core 2 connection closed

PR 2 18:02:58.160 Core 1 pass 6 tested with error "task rejected by tester agent" in 0:00:00.000

KF 2 18:02:58.160 Core 1 pass 7 tested with error "task rejected by tester agent" in 0:00:00.000

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

Воспроизвести проблему в тестере не получается- возникает исключительно при оптимизации.

Тестируемый советник использует 7 инструментов, и DLL для чтения ряда параметров их xml-файла (Функции DLL вызываются только в обработчике OnInit). Историю перегружал, bases чистил, терминал переставлял. Как оно на других билдах не знаю- так уж сложилось, что до оптимизации дело дошло только на этом билде.

Описания такой ошибки нигде найти не могу, собственно вопрос, что бы это значило?

Nexxtor
728
Nexxtor  

Привет. 

У меня тоже самое сейчас вылезло. DLL не использую. Тестирую на EURUSD M30 Только цены открытия.

"Задание отклонено агентом тестера" как исправить?


Konstantin Polyaev
30
Konstantin Polyaev  

Я для себя нашел корявенькое решение- тестирую на М1 по ценам закрытия, при этом в настройках эксперта ставлю нужный ТФ (мой советник это позволяет). На данной стадии меня это устраивает.

А вообще похоже на проблемы тестера.

Konstantin Polyaev
30
Konstantin Polyaev  

Я решил посмотреть что же происходит поподробнее. Для чего добавил в ЕА запись лога в событиях OnInit, OnDeinit, OnTick.

CKuklovodExp* Exp;

int g_hFile=INVALID_HANDLE;

ulong g_tick_no=0;


//+------------------------------------------------------------------+

struct SYSTEMTIME {

  ushort wYear;

  ushort wMonth;

  ushort wDayOfWeek;

  ushort wDay;

  ushort wHour;

  ushort wMinute;

  ushort wSecond;

  ushort wMilliseconds;

};

#import "Kernel32.dll"

void  GetLocalTime(

  SYSTEMTIME& lpSystemTime

);

uint GetCurrentThreadId(void);

#import


string STToString(void)

{

  SYSTEMTIME ST;

  GetLocalTime(ST);

  return(IntegerToString(ST.wDay,2,'0')+"."+IntegerToString(ST.wMonth,2,'0')+"."+IntegerToString(ST.wYear,4,'0')+" "+IntegerToString(ST.wHour,2,'0')+":"+IntegerToString(ST.wMinute,2,'0')+":"+IntegerToString(ST.wSecond,2,'0'));

}


string ThIdToString(void)

{

  return(IntegerToString(GetCurrentThreadId(),8));

}

//+------------------------------------------------------------------+


//+------------------------------------------------------------------+

//| Expert initialization function                                   |

//+------------------------------------------------------------------+

int OnInit()

{

//--- create timer

  g_hFile=FileOpen("Kuklovod_"+ThIdToString()+".log",FILE_READ | FILE_WRITE | FILE_TXT | FILE_ANSI | FILE_SHARE_WRITE | FILE_COMMON,'\t',CP_ACP);

  if (g_hFile != INVALID_HANDLE)

  {

    FileSeek(g_hFile,0,SEEK_END);

    FileWriteString(g_hFile,STToString()+"\t"+ThIdToString()+"\t OnInit() Entry\n");

    FileWriteString(g_hFile,STToString()+"\t"+ThIdToString()+"\t "+string(e_open_on_fly)+" "+string(e_tp_on_fly)+" "+string(e_sl_on_fly)+" "+string(e_wpr_period)+"\n");

  }


  EventSetTimer(60);


  Exp=new CKuklovodExp;

//---

  bool res=true;

  do {

    if (!(res=res && Exp.TradeSettings(e_lev_sl,e_lev_tp,e_lev_open_min,e_lev_open_max,e_open_on_fly,e_tp_on_fly,e_sl_on_fly)))

      break;

    if (!(res=res && Exp.Kit(e_kit)))

      break;

    if (!(res=res && Exp.Magic(e_magic)))

      break;

    if (!(res=res && Exp.Lot(e_lot)))

      break;

    if (!(res=res && Exp.ReadConfig()))

      break;

    if (!(res=res && Exp.CreateInd(e_timeframe,e_depth,e_wpr_period)))

      break;

  }

  while (false);

  

  if (!res)

    return(INIT_FAILED);

    

  if (g_hFile != INVALID_HANDLE)

  {

    FileSeek(g_hFile,0,SEEK_END);

    FileWriteString(g_hFile,STToString()+"\t"+ThIdToString()+"\t OnInit() success\n");

  }

  

//---

  return(INIT_SUCCEEDED);

}

//+------------------------------------------------------------------+

//| Expert deinitialization function                                 |

//+------------------------------------------------------------------+

void OnDeinit(const int reason)

{

//--- destroy timer

  EventKillTimer();

  if (CheckPointer(Exp) == POINTER_DYNAMIC)

    delete Exp;

  if (g_hFile != INVALID_HANDLE)

  {

    FileSeek(g_hFile,0,SEEK_END);

    FileWriteString(g_hFile,STToString()+"\t"+ThIdToString()+"\t OnDeinit() End\n");

    FileClose(g_hFile);

  }

}

//+------------------------------------------------------------------+

//| Expert tick function                                             |

//+------------------------------------------------------------------+

void OnTick()

{

  if (g_hFile != INVALID_HANDLE)

  {

    FileSeek(g_hFile,0,SEEK_END);

    FileWriteString(g_hFile,STToString()+"\t"+ThIdToString()+"\t Tick#: "+string(g_tick_no++)+"\n");

  }

//---

  Exp.OnTick();

}

Запускаем оптимизацию по трем параметрам типа bool:

ED 0 23:38:13.674 Tester complete optimization started

IQ 0 23:38:13.674 Tester size of initial task batch is 4

CS 0 23:38:13.705 Core 1 agent process started

GG 0 23:38:13.705 Core 1 connecting to 127.0.0.1:3000

HP 0 23:38:13.705 Core 2 agent process started

CH 0 23:38:13.705 Core 2 connecting to 127.0.0.1:3001

PM 0 23:38:17.245 Core 1 connected

GL 0 23:38:17.249 Core 1 authorized (agent build 1596)

EH 0 23:38:17.263 Core 2 connected

OP 0 23:38:17.268 Core 2 authorized (agent build 1596)

JJ 0 23:38:17.523 Core 1 common synchronization completed

PE 0 23:38:18.136 Core 2 common synchronization completed

MQ 2 23:38:26.204 Core 2 pass 5 tested with error "history processing error (tester bar time error)" in 0:00:00.078

DL 2 23:38:26.204 Core 2 pass 6 tested with error "task rejected by tester agent" in 0:00:00.000

OP 2 23:38:26.204 Core 2 pass 7 tested with error "task rejected by tester agent" in 0:00:00.000

В логе ЕА:

27.05.2017 23:38:18    2988 OnInit() Entry

27.05.2017 23:38:18    2988 false false false 20

27.05.2017 23:38:18    2988 OnInit() success

27.05.2017 23:38:18    2988 Tick#: 0

... //--skiped

27.05.2017 23:38:26    2988 Tick#: 5423

27.05.2017 23:38:26    2988 OnDeinit() End

27.05.2017 23:38:26    2988 OnInit() Entry

27.05.2017 23:38:26    2988 true false false 20

27.05.2017 23:38:26    2988 OnInit() success

27.05.2017 23:38:26    2988 Tick#: 0

//--tester thread crash

Лог тестера дальше:

HJ 2 23:38:26.272 Core 1 pass 1 tested with error "history processing error (tester bar time error)" in 0:00:00.062

LE 2 23:38:26.272 Core 1 pass 2 tested with error "task rejected by tester agent" in 0:00:00.000

OI 2 23:38:26.272 Core 1 pass 3 tested with error "task rejected by tester agent" in 0:00:00.000

В логе ЕА:

27.05.2017 23:38:18    3660 OnInit() Entry

27.05.2017 23:38:18    3660 false false true 20

27.05.2017 23:38:18    3660 OnInit() success

27.05.2017 23:38:18    3660 Tick#: 0

...

27.05.2017 23:38:25    3660 Tick#: 5423

27.05.2017 23:38:25    3660 OnDeinit() End

27.05.2017 23:38:26    3660 OnInit() Entry

27.05.2017 23:38:26    3660 true false true 20

27.05.2017 23:38:26    3660 OnInit() success

27.05.2017 23:38:26    3660 Tick#: 0

//--tester thread crash

Лог тестера дальше:

LL 0 23:38:26.287 Core 2 connection closed

QK 0 23:38:26.375 Core 1 connection closed

ER 0 23:38:27.272 Core 1 connecting to 127.0.0.1:3000

QL 0 23:38:27.272 Core 2 connecting to 127.0.0.1:3001

II 0 23:38:27.272 Core 1 connected

ON 0 23:38:27.273 Core 2 connected

EO 0 23:38:27.278 Core 2 authorized (agent build 1596)

DD 0 23:38:27.278 Core 1 authorized (agent build 1596)

FN 0 23:38:27.285 Core 1 common synchronization completed

QF 0 23:38:28.077 Core 2 common synchronization completed

KN 0 23:38:31.408 Tester optimization finished, total passes 8

QJ 0 23:38:31.418 Statistics optimization done in 0 minutes 18 seconds

LR 0 23:38:31.418 Statistics local 14 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)

QQ 0 23:38:31.418 Core 1 connection closed

GL 0 23:38:31.419 Core 2 connection closed

FE 0 23:38:31.422 Tester 8 records written to file cache C:\...

Дальше агенты (перезапустились/ запустили новые потоки) и выполнили оставшиеся проходы, включая те, на которых они вначале покрашились. Вот такая непонятная штука.


Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий