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

 

После оптимизации обнаружил такое

У двух проходов, где прибыль и просадка очень близки, фактор восстановления отличается очень сильно.


ЗЫ Сырой режим "по пипсам". Пока не рекомендую им пользоваться. Особенно, если проводите Оптимизацию.

 

В MT5-оптимизаторе нет такой MT4-фишки.



Поэтому приходится делать так.

sinput uint inMaxOrders = 0; // Максимальное количество ордеров.
sinput double inMaxAbsoluteDD = 0; // Максимальная абсолютная просадка

bool IsMaxOrders()
{
#ifdef __MT4ORDERS__
  return(inMaxOrders && MT4ORDERS::LastTradeResult.order > inMaxOrders);
#else
  return(false);
#endif
}

bool IsMaxAbsoluteDD()
{
  static const double StartBalance = AccountInfoDouble(ACCOUNT_BALANCE);

  return(inMaxAbsoluteDD && ((StartBalance - AccountInfoDouble(ACCOUNT_EQUITY)) > inMaxAbsoluteDD));
}

void OnTick()
{
  static const bool IsTester = MQLInfoInteger(MQL_TESTER);
  
  if (IsTester && (IsMaxOrders() || IsMaxAbsoluteDD()))
  {
  #ifdef __MQL5__
    TesterStop();
  #else // __MQL5__
    ExpertRemove();
  #endif // __MQL5__
    
    return;
  }
// ....


А иначе будет очень плохо и долго.

 

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

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


Однако, они, не выгрузились.


Возможно ли сделать их выгрузку по пункту меню "Отключить" или создать пункт меню "Выгрузить принудительно"?

 
В отчете Тестера "Максимальное время удержания позиции" не учитывает выходные?
 

Производительность.

Одиночный прогон
SSD
Одиночный прогон
RAM-Drive
Второй проход Оптимизатора
SSD/RAM-Drive
Одиночный проход
Virtual
Второй проход Оптимизатора
Virtual
72 секунды 64 секунды 28 секунд 26 секунд 18 секунд


Одиночные прогоны делались "на горячую" - после первого одиночного прохода запускался сразу второй.

Что-то надо делать с тормозами одиночного прогона. В 2.5 раза медленнее, чем в Оптимизаторе.

И дело не только в избыточных логах. Virtual ничего не логирует, но все равно заметно быстрее в Оптимизаторе.

 

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


Когда загружаю сет-файл, то раньше было сразу видно, из какой оптимизации он был выбран. Теперь - нет.


ЗЫ Пока галочку не поставишь, не видишь диапазон. Очень неудобно стало. А когда галочка стоит, не видишь дефолтного значения.

 

Ребята, меня задрали логи одиночного прохода. Абсолютно невозможно работать с RAM-Drive из-за них. Гигабайты мусора за несколько одиночных проходов. Лютая гадость. RAM-Drive забивается очень быстро.

Пользуюсь Virtual. С ним никаких проблем в этом плане нет. Но все же хочу радикально решить эту проблему через WinAPI.


Подскажите, автоматически грохнуть перед запуском одиночного прогона Tester\Agent-127.0.0.1-300x\logs\*.log файлы? Хочу написать один раз решение и забыть про эту гадость навсегда.

Проблема в том, что даже вручную эти файлы не удалить - заняты Терминалом. Есть вариант Unlocker. Надо смотреть, есть ли консольный вариант.


В общем, прошу любой помощи в этом деле.


ЗЫ И что стоило сделать макс. ограничение на размер логов....

 
fxsaber:

Ребята, меня задрали логи одиночного прохода. Абсолютно невозможно работать с RAM-Drive из-за них. Гигабайты мусора за несколько одиночных проходов. Лютая гадость. RAM-Drive забивается очень быстро.

Пользуюсь Virtual. С ним никаких проблем в этом плане нет. Но все же хочу радикально решить эту проблему через WinAPI.


Подскажите, автоматически грохнуть перед запуском одиночного прогона Tester\Agent-127.0.0.1-300x\logs\*.log файлы? Хочу написать один раз решение и забыть про эту гадость навсегда.

Проблема в том, что даже вручную эти файлы не удалить - заняты Терминалом. Есть вариант Unlocker. Надо смотреть, есть ли консольный вариант.


В общем, прошу любой помощи в этом деле.


ЗЫ И что стоило сделать макс. ограничение на размер логов....

Запретить запись в папку логов?

 
Andrey Khatimlianskii:

Запретить запись в папку логов?

Такой вариант не срабатывает.


Запускаю такой батник в папке Терминала один раз после перезагрузки компа.

rem Создали RAM-Drive для Тестера.
imdisk -a -o awe -s 3G -m Z: -p "/fs:ntfs /q /y /v:MT5Tester"

mkdir z:\Tester
mklink /j Tester z:\Tester

rem Кеш оптимизатора будет сохраняться на диске.
mkdir cache
mklink /j z:\Tester\cache cache

rem Временный RAM-Drive, чтобы на него можно было перенаправить log-папки.
imdisk -a -o awe -s 3M -m Y: -p "/fs:ntfs /q /y /v:MT5Tester_Logs"

mkdir y:\logs
mklink /j Tester\logs y:\logs

mkdir y:\logs0
mkdir Tester\Agent-127.0.0.1-3000
mklink /j Tester\Agent-127.0.0.1-3000\logs y:\logs0

mkdir y:\logs1
mkdir Tester\Agent-127.0.0.1-3001
mklink /j Tester\Agent-127.0.0.1-3001\logs y:\logs1

mkdir y:\logs2
mkdir Tester\Agent-127.0.0.1-3002
mklink /j Tester\Agent-127.0.0.1-3002\logs y:\logs2

mkdir y:\logs3
mkdir Tester\Agent-127.0.0.1-3003
mklink /j Tester\Agent-127.0.0.1-3003\logs y:\logs3

mkdir y:\logs4
mkdir Tester\Agent-127.0.0.1-3004
mklink /j Tester\Agent-127.0.0.1-3004\logs y:\logs4

mkdir y:\logs5
mkdir Tester\Agent-127.0.0.1-3005
mklink /j Tester\Agent-127.0.0.1-3005\logs y:\logs5

mkdir y:\logs6
mkdir Tester\Agent-127.0.0.1-3006
mklink /j Tester\Agent-127.0.0.1-3006\logs y:\logs6

mkdir y:\logs7
mkdir Tester\Agent-127.0.0.1-3007
mklink /j Tester\Agent-127.0.0.1-3007\logs y:\logs7

rem Убили временный RAM-Drive
imdisk -D -m Y:


После этого log-файлы не создаются. На глаз пока не заметил тормозов со стороны Тестера. Вроде, рабочее решение.

 
fxsaber:

Такой вариант не срабатывает.

Как запрещаете запись?

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