MetaTrader 5 Strategy Tester: bugs, bugs, sugestões para melhorias - página 59

 
Sergey Chalyshev:

Os parâmetros na linha de resultados da optimização estão correctos, correspondem aos parâmetros no registo do testador, mas o Expert Advisor é executado para um teste com parâmetros completamente diferentes.

Desajustei os parâmetros de entrada do próprio Expert Advisor. Corresponderam.

 
fxsaber:

É que os dados do símbolo original correspondem perfeitamente ao símbolo personalizado. Mas o costume passa sem erros, e o original não.

Aparentemente, não percebi o objectivo. O guião apenas escreve o csv. Como é que se faz um teste sobre eles?

 
Andrey Khatimlianskii:

Aparentemente, não percebi o objectivo. O guião apenas escreve csvs. Como é feito o teste com eles?

O script cria um símbolo personalizado e o símbolo original (importado no lado do servidor) a partir destes csvs.

Isto é, os dois símbolos têm uma história de citações idênticas, tanto por barras como por carrapatos.

 
fxsaber:

O script cria um símbolo personalizado e o símbolo original(importado no lado do servidor) a partir destes csvs.

Isto é, os dois símbolos têm uma história de citações idênticas, tanto em barras como em carraças.

Isto deveria ter sido mencionado.

Não conheço os mecanismos do servidor MT5 para trabalhar com a história.

 
Conselheiro em modo frame terminado em Terminação Anormal, após o que o ficheiro mqd de 1GB recusou a leitura. Quando fechei o Terminal, o mqd cresceu para 2GB. Isto é, o Terminal não fazia FileClose para mqd.
 

Durante a genética, o número de passe do FrameNext não corresponde ao número de passe do ficheiro opt.

Por exemplo, FrameNext devolve 10041014291 e opta por devolver 2465.

Qual é a razão das diferenças? Como faço corresponder uma coisa à outra?

Na tabela GUI, em vez do número de passe, cerca de dois números. Mas assim que reabrir o ficheiro opt após a Optimização, os números de passe tornam-se valores vazios.


Por favor, esclareça para GA.


Aprendeu a reproduzir o desajuste entre AG e AG única. A GA salva passa por estatísticas de quadros. Mas não consigo identificar de 10K passa aquele em que estou interessado. Porque Pass in FrameNext e Pass in opt são valores diferentes.

 
fxsaber:

Durante a genética, o número de passe do FrameNext não corresponde ao número de passe do ficheiro opt.

Por exemplo, FrameNext devolve 10041014291 e opta por devolver 2465.

Qual é a razão das diferenças? Como faço corresponder uma coisa à outra?

Na tabela GUI, em vez do número de passe, cerca de dois números. Mas assim que reabrir o ficheiro opt após a Optimização, os números de passe tornam-se valores vazios.


Por favor, esclareça para GA.


Aprendeu a reproduzir o desajuste entre AG e AG única. A GA salva passa por estatísticas de quadros. Mas não consigo identificar de 10K passa aquele em que estou interessado. Porque Pass in FrameNext e Pass in opt são valores diferentes.

2 números - número de geração, número individual.

Se estiver vazio, então o resultado é carregado do ficheiro opt (ou seja, resultado de optimização genética anterior)

Existem dois tipos de genética

1. o espaço do parâmetro é limitado ao número de 64 bits. Neste caso, o cálculo da composição dos parâmetros por número de genótipo é reduzido a um conjunto de operações aritméticas simples.

2. O espaço de parâmetros é limitado por um número máximo de 64 bits a partir de baixo, 1024 bits a partir de cima. Uma transformação mais complexa do genótipo num conjunto de parâmetros. Parece ser o seu caso de descoordenação de números, uma vez que os quadros contêm apenas as 64 partes mais baixas do número de passe.

Assim que um novo parâmetro é adicionado à optimização ou a paragem de arranque de um parâmetro existente é alterada, toda a numeração é alterada. Por conseguinte, não se deve seguir pelo número de passe, mas pela composição dos parâmetros

Документация по MQL5: Основы языка / Операции и выражения / Арифметические операции
Документация по MQL5: Основы языка / Операции и выражения / Арифметические операции
  • www.mql5.com
Операция инкремента и декремента применяются только к переменным, к константам не применяются. Префиксныe инкремент (++i) и декремент (--k) применяются к переменной непосредственно перед использованием этой переменной в выражении. Могут возникнуть вычислительные проблемы при переносе вышеуказанного выражения из одной среды программирования в...
 
Slava:

2 números - número de geração, número individual.

Se vazio, o resultado é carregado do ficheiro opt (ou seja, o resultado da optimização genética anterior)

Existem dois tipos de genética

1. o espaço do parâmetro é limitado ao número de 64 bits. Neste caso, o cálculo da composição dos parâmetros por número de genótipo é reduzido a um conjunto de operações aritméticas simples.

2. O espaço de parâmetros é limitado por um número máximo de 64 bits a partir de baixo, 1024 bits a partir de cima. Uma transformação mais complexa do genótipo num conjunto de parâmetros. Parece ser o seu caso de descoordenação de números, uma vez que os quadros contêm apenas um número máximo de passe de 64 bits.

Assim que um novo parâmetro é adicionado à optimização ou o start-stop de um parâmetro existente é alterado, toda a numeração é alterada. Portanto, não passe pelo número de passe, apenas pela composição dos parâmetros

Obrigado. Como combinar FrameNext_Pass e opt-Pass então?

 
fxsaber:

Aprendeu a reproduzir o desencontro entre a AG e o single. Salvado o GA passa através das estatísticas dos quadros. Mas não consigo identificar aquele em que estou interessado de entre 10K passes. Porque Pass in FrameNext e Pass in opt são valores diferentes.

Encontrei a razão para a discrepância!


Comparou a pilha obtida através da moldura durante a optimização da AG. E a pilha de um único passe.


No estado quadro, a execução baseia-se em carraças que não estão presentes na história: reparei imediatamente que há muitos acordos/ordens, que são executados em exactamente um segundo.

Por exemplo, um único passe na história tem uma entrada em 2019.06.04 02:00:00.206, mas um passe de enquadramento é 2019.06.04 02:00:00.000(a história do tick não tem tick nessa altura).


A optimização da AG passa por uma história de carrapatos diferente da passagem única! E esta história nem sempre é diferente. Por exemplo, quando faço GA num intervalo mais pequeno, está bem aí.


A suspeita da ZZY de utilizar um temporizador desaparece. Não existe um temporizador no EA.

 
fxsaber:

Encontrei a razão para a discrepância!


Comparou as estatísticas quadro a quadro durante a optimização da AG. E a pilha de uma única passagem.


No estado quadro, a execução baseia-se em carraças, que não estão na história: reparei imediatamente que há muitos acordos/ordens, que são executados em exactamente um segundo.

Por exemplo, um único passe na história tem uma entrada em 2019.06.04 02:00:00.206, mas um passe de enquadramento é 2019.06.04 02:00:00.000(a história do tick não tem tick nessa altura).


A optimização da AG passa por uma história de carrapatos diferente da passagem única! E esta história nem sempre é diferente. Por exemplo, quando faço GA num intervalo mais pequeno, está bem aí.


A suspeita da ZZY de utilizar um temporizador desaparece. Não existe um temporizador no EA.

Teste/optimização em carraças reais?

Os agentes são os seus ou da nuvem?

Se testes com um símbolo personalizado, então os agentes de nuvens estão fora da mesa. Assim, os agentes são internos e pode puxar os seus registos e ver nos registos como a história foi sincronizada