Discussão do artigo "Guia prático do MQL5: Salvando resultados de otimização de um Expert Advisor baseado em critérios especificados" - página 2

 
Anatoli Kazharski:

Não planejamos revisitar esse tópico tão cedo.

Tente formular seu problema com mais precisão e publique aqui. Talvez alguém sugira uma solução.


Minha tarefa é simples: registrar as passagens por número de sequência, não na sequência de resultados de otimização.

 
Aleksey Vyazmikin:

Minha tarefa é simples: registrar as passagens por número de sequência, não na sequência de resultados de otimização.

Adicionar à matriz dinâmica como ela é e, em seguida, classificar no final da otimização.
 
Registrar onde?
 
Anatoli Kazharski:
Adicionar à matriz dinâmica como ela é e, em seguida, classificar no final da otimização.

Ou seja, para criar uma matriz bidimensional adicional, onde colocar o número da passagem e os indicadores para ela?


E se você gravar em um arquivo de uma só vez? Ou seja, é possível fazer isso - esquecer por zeros as linhas sem valor e, depois, quando o valor aparecer, substituí-las?

 
Dennis Kirichenko:
Onde registrá-la?

Em um arquivo, é claro.

 
Aleksey Vyazmikin:

No arquivo, é claro.


Bem, Anatoly apontou corretamente para você. Colete os resultados em uma lista ou matriz dinâmica (gosto mais da lista) durante o processo de otimização, no corpo do manipulador OnTesterPass(). E, no final da otimização, no corpo do manipulador OnTesterDeinit(), classifique a lista/array pelo critério necessário e salve-a.

 
Dennis Kirichenko:

Bem, Anatoly apontou corretamente para você. Colete os resultados em uma lista ou matriz dinâmica (gosto mais da lista) durante a otimização, no corpo do manipulador OnTesterPass(). E, no final da otimização, no corpo do manipulador OnTesterDeinit(), classifique a lista/array pelo critério necessário e salve-a.


Não vi nada sobre a lista, o que você quer dizer?

 
Aleksey Vyazmikin:

Não vi nada sobre uma lista, o que você quer dizer?


Quero dizer que existe um tipo de dados - CList - uma lista. É conveniente coletar os resultados em sua tarefa. Mas os resultados devem ser agrupados no tipo de nó - ele é um descendente de CObject.

 
Dennis Kirichenko:

Quero dizer que existe esse tipo de dados - CList - uma lista. É conveniente coletar resultados nela em sua tarefa. Mas os resultados devem ser agrupados no tipo de nó previamente - ele é um descendente do CObject.


Entendo - dei uma olhada e percebi que há muitas complexidades - você precisa entendê-las se quiser usá-las... e encontrei alguns exemplos complicados. Você pode me mostrar como fazer isso no exemplo dessa tarefa específica?

 

Muito obrigado, Anatoly!

Ao testar no modo de otimização do ponto de entrada, preciso gerar informações sobre a porcentagem de negociações vencedoras/perdedoras em um arquivo.

Parece ser uma tarefa trivial, mas tive dificuldades por dois dias, depois me ofendi com o methaquot e esqueci o assunto por quinze dias.

Hoje, xingando os methaquots (eles implementaram as funções OnTester e OnTesterPass de uma forma estranha, mas também não mencionaram no livro de referência que essas funções precisam que FrameAdd e FrameNext sejam "inicializados", caso contrário, elas funcionam muito mal). ), com uma olhada em seu exemplo, terminei de escrever o que eu precisava))))