Библиотеки: MultiTester - страница 10

 

Недавно закончился сет тестов. С 50 итерациями двойных проходов не было.

Поставил логирование, в основном выходит на итерации 1, реже 0 и 2. Но иногда, редко и неизвестно почему, бывают всплески до 7-8. Я себе оставлю 50, с запасом и негативных эффектов от этого нет.

 

В файле MTTester.mqh пути к кешу или конфигам получаются через ::TerminalInfoString(TERMINAL_PATH)+

Но лично у меня он установлен (ставил всё по дефолту) в Program Files, а профиль лежит отдельно. Исправил у себя на TERMINAL_DATA_PATH.

 
Может быть полезно получить не только GetLastOptCache (и соответственно GetLastOptCacheFileName) в принципе вообще последнюю. А ещё и последнюю по конкретному символу. Себе дописал, но вдруг и в общей версии пригодится.
 
traveller00:

Недавно закончился сет тестов. С 50 итерациями двойных проходов не было.

Поставил логирование, в основном выходит на итерации 1, реже 0 и 2. Но иногда, редко и неизвестно почему, бывают всплески до 7-8. Я себе оставлю 50, с запасом и негативных эффектов от этого нет.

На такое не нарывался. Спасибо за информацию, поставлю 50, кушать не просит, но у других будет работать.


traveller00:

В файле MTTester.mqh пути к кешу или конфигам получаются через ::TerminalInfoString(TERMINAL_PATH)+

Но лично у меня он установлен (ставил всё по дефолту) в Program Files, а профиль лежит отдельно. Исправил у себя на TERMINAL_DATA_PATH.

Работаю только в portable, а там TERMINAL_PATH == TERMINAL_DATA_PATH. Спасибо, сделаю рабочим универсальный режим во всех КБ-работах.


traveller00:
Может быть полезно получить не только GetLastOptCache (и соответственно GetLastOptCacheFileName) в принципе вообще последнюю. А ещё и последнюю по конкретному символу. Себе дописал, но вдруг и в общей версии пригодится.

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

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


Если есть свои реализации или сценарии использования - выкладывайте. Так еще конструктивнее.

 

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

Исправления были минимальные и совместимые, добавил опциональный параметр const string SymbName = NULL, прокинул его через пару функций и чуть подправил GetLastOptCacheFileName

на

    return(MTTESTER::GetFreshFileName(::TerminalInfoString(TERMINAL_DATA_PATH)+"\\Tester\\cache\\",SymbName != NULL ? "*."+SymbName+".*.opt" : "*.opt"));

 
traveller00:

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

Понял. Тогда логично добавить еще и название советника.

Исправления были минимальные и совместимые, добавил опциональный параметр const string SymbName = NULL, прокинул его через пару функций и чуть подправил GetLastOptCacheFileName

на

    return(MTTESTER::GetFreshFileName(::TerminalInfoString(TERMINAL_DATA_PATH)+"\\Tester\\cache\\",SymbName != NULL ? "*."+SymbName+".*.opt" : "*.opt"));

Подправлю генерацию маски, Спасибо.

 

Что-то случилось...

2019.11.29 17:21:46.241 MultiTester_Example (FTSE100,D1)        NIKK225 PERIOD_D1 TesterDate -  TesterDate (1/25) - Start.
2019.11.29 17:24:05.099 MultiTester_Example (FTSE100,D1)        NIKK225 PERIOD_D1 TesterDate -  TesterDate (1/25) - Done. Time = 00:02:19
2019.11.29 17:24:05.250 MultiTester_Example (FTSE100,D1)        NIKK225 PERIOD_D1 TesterDate -  TesterDate (2/25) - Start.
2019.11.29 17:25:54.975 MultiTester_Example (FTSE100,D1)        NIKK225 PERIOD_D1 TesterDate -  TesterDate (2/25) - Done. Time = 00:01:49
2019.11.29 17:25:55.136 MultiTester_Example (FTSE100,D1)        NIKK225 PERIOD_D1 TesterDate -  TesterDate (3/25) - Start.
2019.11.29 17:27:30.347 MultiTester_Example (FTSE100,D1)        NIKK225 PERIOD_D1 TesterDate -  TesterDate (3/25) - Done. Time = 00:01:35
2019.11.29 17:27:30.531 MultiTester_Example (FTSE100,D1)        NIKK225 PERIOD_D1 TesterDate -  TesterDate (4/25) - Start.
2019.11.29 17:29:18.129 MultiTester_Example (FTSE100,D1)        NIKK225 PERIOD_D1 TesterDate -  TesterDate (4/25) - Done. Time = 00:01:48
2019.11.29 17:29:18.333 MultiTester_Example (FTSE100,D1)        NIKK225 PERIOD_D1 TesterDate -  TesterDate (5/25) - Start.
2019.11.29 17:31:15.052 MultiTester_Example (FTSE100,D1)        NIKK225 PERIOD_D1 TesterDate -  TesterDate (5/25) - Done. Time = 00:01:57
2019.11.29 17:31:15.170 MultiTester_Example (FTSE100,D1)        SPX500 PERIOD_D1 TesterDate -  TesterDate (6/25) - Start.
2019.11.29 17:33:16.972 MultiTester_Example (FTSE100,D1)        SPX500 PERIOD_D1 TesterDate -  TesterDate (6/25) - Done. Time = 00:02:01
2019.11.29 17:33:17.092 MultiTester_Example (FTSE100,D1)        SPX500 PERIOD_D1 TesterDate -  TesterDate (7/25) - Start.
2019.11.29 17:35:00.090 MultiTester_Example (FTSE100,D1)        SPX500 PERIOD_D1 TesterDate -  TesterDate (7/25) - Done. Time = 00:01:43
2019.11.29 17:35:00.412 MultiTester_Example (FTSE100,D1)        SPX500 PERIOD_D1 TesterDate -  TesterDate (8/25) - Start.
2019.11.29 17:36:45.975 MultiTester_Example (FTSE100,D1)        SPX500 PERIOD_D1 TesterDate -  TesterDate (8/25) - Done. Time = 00:01:45
2019.11.29 17:36:46.092 MultiTester_Example (FTSE100,D1)        SPX500 PERIOD_D1 TesterDate -  TesterDate (9/25) - Start.
2019.11.29 17:38:19.975 MultiTester_Example (FTSE100,D1)        SPX500 PERIOD_D1 TesterDate -  TesterDate (9/25) - Done. Time = 00:01:33
2019.11.29 17:38:20.090 MultiTester_Example (FTSE100,D1)        SPX500 PERIOD_D1 TesterDate -  TesterDate (10/25) - Start.
2019.11.29 17:40:02.238 MultiTester_Example (FTSE100,D1)        SPX500 PERIOD_D1 TesterDate -  TesterDate (10/25) - Done. Time = 00:01:42
2019.11.29 17:40:02.352 MultiTester_Example (FTSE100,D1)        IBEX35 PERIOD_D1 TesterDate -  TesterDate (11/25) - Start.
2019.11.29 17:41:58.122 MultiTester_Example (FTSE100,D1)        IBEX35 PERIOD_D1 TesterDate -  TesterDate (11/25) - Done. Time = 00:01:56
2019.11.29 17:41:58.236 MultiTester_Example (FTSE100,D1)        IBEX35 PERIOD_D1 TesterDate -  TesterDate (12/25) - Start.
2019.11.29 17:43:37.213 MultiTester_Example (FTSE100,D1)        IBEX35 PERIOD_D1 TesterDate -  TesterDate (12/25) - Done. Time = 00:01:39
2019.11.29 17:43:37.324 MultiTester_Example (FTSE100,D1)        IBEX35 PERIOD_D1 TesterDate -  TesterDate (13/25) - Start.
2019.11.29 17:45:30.973 MultiTester_Example (FTSE100,D1)        IBEX35 PERIOD_D1 TesterDate -  TesterDate (13/25) - Done. Time = 00:01:53
2019.11.29 17:45:31.087 MultiTester_Example (FTSE100,D1)        IBEX35 PERIOD_D1 TesterDate -  TesterDate (14/25) - Start.
2019.11.29 17:47:10.246 MultiTester_Example (FTSE100,D1)        IBEX35 PERIOD_D1 TesterDate -  TesterDate (14/25) - Done. Time = 00:01:39
2019.11.29 17:47:10.362 MultiTester_Example (FTSE100,D1)        IBEX35 PERIOD_D1 TesterDate -  TesterDate (15/25) - Start.
2019.11.29 17:48:52.973 MultiTester_Example (FTSE100,D1)        IBEX35 PERIOD_D1 TesterDate -  TesterDate (15/25) - Done. Time = 00:01:42
2019.11.29 17:48:53.086 MultiTester_Example (FTSE100,D1)        DAX30 PERIOD_D1 TesterDate -  TesterDate (16/25) - Start.
2019.11.29 17:50:37.262 MultiTester_Example (FTSE100,D1)        DAX30 PERIOD_D1 TesterDate -  TesterDate (16/25) - Done. Time = 00:01:44
2019.11.29 17:50:37.376 MultiTester_Example (FTSE100,D1)        DAX30 PERIOD_D1 TesterDate -  TesterDate (17/25) - Start.
2019.11.29 17:52:48.973 MultiTester_Example (FTSE100,D1)        DAX30 PERIOD_D1 TesterDate -  TesterDate (17/25) - Done. Time = 00:02:11
2019.11.29 17:52:49.136 MultiTester_Example (FTSE100,D1)        DAX30 PERIOD_D1 TesterDate -  TesterDate (18/25) - Start.
2019.11.29 17:54:22.974 MultiTester_Example (FTSE100,D1)        DAX30 PERIOD_D1 TesterDate -  TesterDate (18/25) - Done. Time = 00:01:33
2019.11.29 17:54:23.210 MultiTester_Example (FTSE100,D1)        DAX30 PERIOD_D1 TesterDate -  TesterDate (19/25) - Start.
2019.11.29 17:56:43.272 MultiTester_Example (FTSE100,D1)        DAX30 PERIOD_D1 TesterDate -  TesterDate (19/25) - Done. Time = 00:02:20
2019.11.29 17:56:43.439 MultiTester_Example (FTSE100,D1)        DAX30 PERIOD_D1 TesterDate -  TesterDate (20/25) - Start.
2019.11.29 17:58:59.975 MultiTester_Example (FTSE100,D1)        DAX30 PERIOD_D1 TesterDate -  TesterDate (20/25) - Done. Time = 00:02:16
2019.11.29 17:59:00.168 MultiTester_Example (FTSE100,D1)        FTSE100 PERIOD_D1 TesterDate -  TesterDate (21/25) - Start.
2019.11.29 18:02:01.111 MultiTester_Example (FTSE100,D1)        FTSE100 PERIOD_D1 TesterDate -  TesterDate (21/25) - Done. Time = 00:03:01
2019.11.29 18:02:01.290 MultiTester_Example (FTSE100,D1)        FTSE100 PERIOD_D1 TesterDate -  TesterDate (22/25) - Start.
2019.11.29 18:05:07.304 MultiTester_Example (FTSE100,D1)        FTSE100 PERIOD_D1 TesterDate -  TesterDate (22/25) - Done. Time = 00:03:06
2019.11.29 18:05:07.474 MultiTester_Example (FTSE100,D1)        FTSE100 PERIOD_D1 TesterDate -  TesterDate (23/25) - Start.
2019.11.29 18:08:17.320 MultiTester_Example (FTSE100,D1)        FTSE100 PERIOD_D1 TesterDate -  TesterDate (23/25) - Done. Time = 00:03:10
2019.11.29 18:08:17.447 MultiTester_Example (FTSE100,D1)        FTSE100 PERIOD_D1 TesterDate -  TesterDate (24/25) - Start.
2019.11.29 18:10:44.184 MultiTester_Example (FTSE100,D1)        FTSE100 PERIOD_D1 TesterDate -  TesterDate (24/25) - Done. Time = 00:02:27
2019.11.29 18:10:44.361 MultiTester_Example (FTSE100,D1)        FTSE100 PERIOD_D1 TesterDate -  TesterDate (25/25) - Start.
2019.11.29 18:14:04.974 MultiTester_Example (FTSE100,D1)        FTSE100 PERIOD_D1 TesterDate -  TesterDate (25/25) - Done. Time = 00:03:20
2019.11.29 18:14:04.975 MultiTester_Example (FTSE100,D1)        Alert: Finish.
2019.11.29 18:14:04.975 MultiTester_Example (FTSE100,D1)        ExpertRemove() function called
2019.11.29 18:14:04.975 MultiTester_Example (FTSE100,D1)        Полное время оптимизации = 00:52:21

А .opt файлов только 3...

Это как так? 

Запустил вручную оптимизацию одного из "потерянных" символов. Всё нормально....


 
Сергей Таболин:

Что-то случилось...

К сожалению, не всегда, когда нахожу баги или пути улучшения в своих решениях, обновляю их в КБ. Скорее всего, здесь этот случай.

 
fxsaber:

К сожалению, не всегда, когда нахожу баги или пути улучшения в своих решениях, обновляю их в КБ. Скорее всего, здесь этот случай.

Так я после адаптации под 2190 и не обновлял ничего.

Спишем это на глюк системы. По крайней мере до повторного появления. )))

 
Сергей Таболин:

Так я после адаптации под 2190 и не обновлял ничего.

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

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