Bibliotecas: MultiTester - página 10

 

O conjunto de testes foi concluído recentemente. Com 50 iterações, não houve passagens duplas.

Coloquei o registro, principalmente nas iterações 1, menos frequentemente 0 e 2. Mas, às vezes, raramente e não se sabe por que, há explosões de até 7-8. Manterei 50, com reserva e sem efeitos negativos.

 

No arquivo MTTester.mqh, os caminhos para o cache ou as configurações são obtidos por meio de ::TerminalInfoString(TERMINAL_PATH)+.

Mas, pessoalmente, eu o instalei (configurei tudo por padrão) em Arquivos de Programas, e o perfil é separado. Eu o corrigi para TERMINAL_DATA_PATH.

 
Pode ser útil obter não apenas GetLastOptCache (e, consequentemente, GetLastOptCacheFileName), mas, em princípio, o último. E também o último para um determinado caractere. Acrescentei esse recurso para mim, mas ele pode ser útil na versão geral.
 
traveller00:

O conjunto de testes foi concluído recentemente. Com 50 iterações, não houve passagens duplas.

Coloquei o registro, principalmente nas iterações 1, menos frequentemente 0 e 2. Mas, às vezes, raramente e não se sabe por que, há explosões de até 7-8. Manterei 50, com reserva e sem efeitos negativos.

Não tive nenhum efeito negativo com isso. Obrigado pela informação, vou colocar 50, não está pedindo comida, mas vai funcionar para outras pessoas.


traveller00:

No MTTester.mqh, os caminhos de arquivo para o cache ou as configurações são obtidos por meio de ::TerminalInfoString(TERMINAL_PATH)+

Mas, pessoalmente, eu o instalei (coloquei tudo por padrão) em Arquivos de Programas, e o perfil está separado. Eu o corrigi para TERMINAL_DATA_PATH.

Eu trabalho apenas no modo portátil, e lá TERMINAL_PATH == TERMINAL_DATA_PATH. Obrigado, farei com que o modo universal funcione em todos os trabalhos da KB.



Pode ser útil obter não apenas GetLastOptCache (e, correspondentemente, GetLastOptCacheFileName), mas, em princípio, o último. E também o último em um determinado caractere. Acrescentei esse recurso para mim, mas ele pode ser útil na versão geral.

Ao escrevê-la, fui guiado pelos cenários de uso que eu mesmo encontrei. Não considerei a opção com o último cache por símbolo, porque ainda não vejo onde ela pode ser útil.

Ela pode ser útil para comparar vários caracteres entre si. Ainda não criei um script útil.


Se você tiver suas próprias implementações ou cenários de uso, publique-os. Dessa forma, será ainda mais construtivo.

 

No momento, estou apenas na fase de finalização e desenvolvimento das ferramentas. É por isso que primeiro executei a otimização em 90 símbolos. Depois, decidi não analisar os resultados manualmente, mas de forma automatizada, e selecionar os símbolos interessantes de toda a pilha para transformá-los manualmente. E falhei com a funcionalidade básica, então precisei filtrar por símbolo.

As correções foram mínimas e compatíveis, adicionei um parâmetro opcional const string SymbName = NULL, passei por algumas funções e corrigi ligeiramente GetLastOptCacheFileName

para

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

 
traveller00:

No momento, estou apenas na fase de finalização e desenvolvimento das ferramentas. É por isso que primeiro executei a otimização em 90 símbolos. Depois, decidi não analisar os resultados manualmente, mas de forma automatizada, e selecionar os símbolos interessantes de toda a pilha para transformá-los manualmente. E falhei com a funcionalidade básica, foi quando precisei filtrar por caractere.

Entendi. Então, é lógico adicionar também o nome do EA.

As correções foram mínimas e compatíveis, adicionei um parâmetro opcional const string SymbName = NULL, passei por algumas funções e corrigi ligeiramente GetLastOptCacheFileName

para

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

Vou corrigir a geração da máscara, obrigado.

[Excluído]  

Algo está errado...

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

E há apenas 3 arquivos .opt...

Como isso é possível?

Executei uma otimização manual em um dos caracteres "perdidos". Tudo está bem....


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

Algo aconteceu...

Infelizmente, nem sempre os atualizo no KB quando encontro bugs ou maneiras de melhorar minhas soluções. Esse provavelmente é o caso aqui.

[Excluído]  
fxsaber:

Infelizmente, nem sempre os atualizo no KB quando encontro bugs ou maneiras de melhorar minhas soluções. Esse provavelmente é o caso aqui.

Portanto, não atualizei nada depois de me adaptar ao 2190.

Vamos considerar isso como uma falha do sistema. Pelo menos até o reaparecimento. )))

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

Portanto, não atualizei nada desde que o adaptei para 2190.

Eu o atualizei consideravelmente, porque encontrei e eliminei armadilhas. Também o aperfeiçoei para outros tipos de tarefas.