Discussão do artigo "Otimização Walk Forward Contínua (parte 5): Panorama do Projeto Otimizador Automático e Criação da Interface Gráfica" - página 2

 
Andrey Azatskiy:

Os quadros são um mecanismo completo com um conjunto de métodos para trabalhar com eles.

Pelo contrário: será um pouco incômodo. Apenas algumas linhas de código. Você pode escrever uma classe em um arquivo de plug-in. Somente OnNester() e OnTesterDeinit() terão de ser escritos no Expert Advisor. FrameInputs() produzirá todas as entradas do expert em uma matriz de strings. É possível alterar seus valores para a próxima passagem. Se você quiser, posso esboçar um exemplo. Mas ainda não sou bom em OOP.

 

Tentei executar o otimizador automático e o resultado foi o seguinte:

1. Ideia: Por que não fazer o nome ASSET como uma lista, para que a otimização possa ser feita na lista de ferramentas?

2. Adicione alturas para a cadeia de caracteres com o período de otimização. Anos e meses são cortados

calendário

3 A otimização não é iniciada. Quando executada a partir do terminal também. São lançados erros:

erros

A dll é compilada e está localizada na pasta Libraries. O meta-editor não gerou nenhum erro de compilação.
 
Good Beer:

Tentei executar o otimizador automático e o resultado foi o seguinte:

1. Ideia: Por que não fazer o nome ASSET como uma lista, para que a otimização possa ser feita na lista de ferramentas?

2. Adicione alturas para a cadeia de caracteres com o período de otimização. Anos e meses são cortados

3 A otimização não é iniciada. Quando executada a partir do terminal, também. São lançados erros:


A dll está compilada e localizada na pasta Libraries. O meta-editor não gerou nenhum erro de compilação.


Corrigirei a lista de ativos - não consegui encontrar uma maneira de obtê-la do terminal de forma adequada, portanto, por enquanto, a versão em texto
Regarding dll - você apenas não ativou o carregamento da dll (isso é feito nas configurações do terminal ).

Boa cerveja:

Exatamente o contrário: será um pouco incômodo. Apenas duas ou três linhas de código. Você pode escrever uma classe em um arquivo de plug-in. Somente OnNester() e OnTesterDeinit() terão de ser escritos no Expert Advisor. FrameInputs() produzirá todas as entradas do expert em uma matriz de strings. É possível alterar seus valores para a próxima passagem. Se você quiser, posso esboçar um exemplo. Mas ainda não sou bom em OOP.

O programa já foi projetado para arquivos xml, portanto, não quero reescrever seus principais aspectos. Quanto às entradas, estudarei a opção sugerida pelo fxsuber e possivelmente a automatizarei.

 
Andrey Azatskiy:
Lista de ativos - opção de texto por enquanto

É possível digitar apenas vírgulas?

 
Good Beer:

É possível digitar apenas uma vírgula?

Não, você precisa inserir o ativo específico no qual o processo de otimização deve ser iniciado

 

Consegui executar a otimização, até o momento sem filtragem. Apenas para o teste, uma passagem com classificação por payoff. Em seguida, cliquei na linha de resultados no histórico. Observe os diferentes resultados entre o testador e o otimizador automático:

resultado do teste

As configurações do EA na passagem eram completamente as mesmas. O que está errado aqui? E observe: você tem dois dias de alta em uma semana (indicados por uma seta).

 
Good Beer:

Consegui executar a otimização, até agora sem filtragem. Apenas para o teste, uma passagem com classificação por payoff. Em seguida, cliquei na linha de resultado no histórico. Veja como os resultados são diferentes entre o testador e o otimizador automático:

As configurações do EA na passagem eram completamente as mesmas. O que há de errado aqui? E preste atenção: você tem dois dias de alta em uma semana (indicados pela seta).

O teste foi realizado em minutos ou em ticks reais (dependendo do modo que você escolheu no botão da GUI de configurações do otimizador). E você executou o teste com um clique duplo no modo de simulação de ticks (menu suspenso no primeiro terço da tela). Além disso, o fator de recuperação não coincidirá com o que está no terminal, porque o otimizador automático o conta pelo PL fixo, enquanto o terminal o conta pela variação (gráfico verde - terminal, gráfico azul - otimizador automático). Com relação aos dias de lucros/perdas, não vejo o que você refletiu na captura de tela do terminal.

Além disso, lembre-se de que o lucro/perda por dia é calculado como um valor médio para o dia, não como um valor absoluto.

Quando eu o estava executando, o gráfico e os indicadores de lucro/perda coincidiam. No segundo artigo, descrevi como os indicadores são calculados.

 

Eu estava prestes a recalcular em ticks reais, o terminal foi atualizado. A otimização não é iniciada, ocorre um erro. A permissão de DLL nas configurações não foi quebrada. Parece uma surpresa da MQ.

erro novamente

erro

PL==profit? De qualquer forma, a diferença é muito grande para a modelagem de ticks. Se o otimizador automático voltar a funcionar, eu recalcularei. Aqui está um motivo para a localização russa - nem todos os análogos de valores são claros.

Mencionei os dias lucrativos/perdidos porque você tem um erro na interface. A seta está apontando. E onde estão esses "gráficos azuis e verdes"?

 
Good Beer:

Eu estava prestes a recalcular em ticks reais, o terminal foi atualizado. A otimização não é iniciada, ocorre um erro. A permissão de DLL nas configurações não foi quebrada. Parece ser uma surpresa do MQ.


Payoff==lucro? Ou será PL? De qualquer forma, a diferença é muito grande para a modelagem de ticks. Se o otimizador automático funcionar novamente, farei o recálculo. Aqui está um motivo para a localização russa - nem todos os análogos de valores são claros.

Mencionei os dias lucrativos/perdidos porque você tem um erro na interface. A seta está apontando. E onde estão esses "gráficos azuis e verdes"?

PL - lucro, e Payoff - coeficiente, no segundo artigo (ou no terceiro) escrevi a fórmula que uso para calculá-lo. Não pretendo fazer a localização - não pretendo, não há muito inglês por lá, além de o MetaQuotes traduzir artigos e colegas estrangeiros, por exemplo, ficarão muito mais surpresos se o programa abrir em nosso idioma)
Eu o comparei e tudo funcionou. Algumas coisas podem dar errado se você tiver uma conta de hedge, mas acho que não deveria haver tais erros. Só porque eu opero em mercados de ações, testei tudo no terminal com o sistema de cálculo de compensação (que está nos mercados de ações) e, embora eu tenha feito a contabilidade da conta de hedge, não tive oportunidade de verificar tudo em detalhes, mas os testes na conta de hedge de demonstração foram executados quando escrevi uma classe que conduzia todos os cálculos.

Com relação ao carregamento de dll - feche o terminal, execute-o normalmente e não por meio do otimizador automático e veja se o carregamento de biblioteca é permitido e se o teste está sendo executado. Se tudo estiver bem e o teste for executado, o otimizador automático poderá funcionar. E sim, você não poderá usar meu programa na otimização na nuvem, pois não é possível carregar bibliotecas dll na nuvem.

Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация о счете
Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация о счете
  • www.mql5.com
, то позиции по каждому символу разрешается закрывать только в том порядке, в котором они были открыты — сначала самую старую, затем более новую и т.д. При попытке закрыть позиции в ином порядке будет получена ошибка. Уровень залоговых средств, при достижении которого происходит принудительное закрытие самой убыточной позиции (Stop Out...
 
Andrey Azatskiy:

Com relação ao carregamento de dll - feche o terminal, execute-o normalmente e não por meio do otimizador automático e veja se as bibliotecas têm permissão para serem carregadas e se o teste está sendo executado. Se tudo estiver bem e o teste for executado, o otimizador automático poderá funcionar. E sim, você não poderá usar meu programa na otimização na nuvem, pois não é possível carregar bibliotecas de dll na nuvem.

Já encontrei a fórmula do payoff, não tive tempo de corrigi-la - responda rapidamente. As capturas de tela do erro foram tiradas do terminal. Ele não executa o teste. Não preciso da nuvem, apenas não tive esse erro antes. A conta é realmente uma conta de hedge. Mas antes da atualização do terminal, há uma hora, tudo estava funcionando.