Pergunta sobre otimização genética - página 3

 

Eu não entendo o que está acontecendo. Decidi simplificar a tarefa, tomei apenas 3 parâmetros para otimização, coloquei-a em otimização normal ao invés de otimização genética, não coloquei nenhuma restrição nas configurações da EA. Eu corri, nada apareceu nas janelas "Resultado da otimização" e "Gráfico de otimização", então decidi esperar até o tempo de execução, o tempo de execução da otimização foi de 8 horas e 47 minutos, nenhuma informação apareceu em "Resultado da otimização" e "Gráfico de otimização" após o tempo de execução ter terminado no meu arquivo de log:

00:44:09 ABC_exp: a otimização começou
09:31:09 ABC_exp: a otimização parou

no arquivo de registro:

2009.08.03 00:44:09 ABC_exp: otimização iniciada
2009.08.03 09:31:09 ABC_exp: otimização parada
2009.08.03 09:31:09 Houve 768 passes feitos durante a otimização, 768 resultados foram descartados como insignificantes
quando testados no mesmo intervalo, embora tenha havido perdas, mas o saldo flutuou em torno do depósito inicial.

 
Angela писал(а) >>

Eu não entendo o que está acontecendo. Decidi simplificar a tarefa, tomei apenas 3 parâmetros para otimização, coloquei-a em otimização normal ao invés de genética, não coloquei nenhuma restrição nas configurações da EA. Eu o executei e nada apareceu nas janelas "Resultado da otimização" e "Gráfico de otimização". Decidi esperar até que o tempo de execução terminasse, o tempo de execução da otimização foi de 8 horas e 47 minutos, nenhuma informação apareceu em "Resultado da otimização" e "Gráfico de otimização" depois que eu corri:

00:44:09 ABC_exp: a otimização começou
09:31:09 ABC_exp: a otimização parou

no arquivo de registro:

2009.08.03 00:44:09 ABC_exp: a otimização começou
2009.08.03 09:31:09 ABC_exp: a otimização parou
2009.08.03 09:31:09 Houve 768 passes feitos durante a otimização, 768 resultados foram descartados como insignificantes
quando testado no mesmo intervalo, embora houvesse perdas, mas o equilíbrio estava flutuando em torno do depósito inicial.

Deixe-me verificar. Vai demorar muito tempo para encontrá-lo.

 
Foram feitos 768 passes durante a otimização, 768 resultados foram descartados como insignificantes - não houve corridas lucrativas. Ou seja, o depósito final sempre foi menor do que o depósito inicial. Ou era igual a ela. Você pode tentar, quando as negociações forem executadas, escrever no arquivo o número do bilhete, preço ou qualquer outra coisa. Para entender se o algoritmo está funcionando de alguma forma. Talvez não possa negociar por causa de algo.
 
Vinin писал(а) >>

Deixe-me verificar. Vai demorar muito tempo para encontrá-lo.

Obrigado pela oferta, mas eu mesmo tentarei cavar um pouco mais.

 
OrlandoMagic писал(а) >>
Foram feitos 768 passes durante a otimização, 768 resultados foram descartados como insignificantes - não houve corridas lucrativas. Isso significa que o depósito final foi sempre menor do que o inicial. Ou era igual a ela. Você pode tentar, quando as negociações forem executadas, escrever no arquivo o número do bilhete, preço ou qualquer outra coisa. Para entender se o algoritmo está funcionando de alguma forma. Talvez não possa negociar por causa de algo.

No modo de visualização no batedor, os negócios vão.

 
Bem, é em torno desses parâmetros, que estão na esteira, que precisamos fazer a otimização.
 
OrlandoMagic писал(а) >>
Bem, é em torno desses parâmetros, que estão na pilha, que precisamos executar a otimização.

>> Eu faço.

 

Até o momento, nada de bom sai da otimização. Eu defino parâmetros otimizados e sua faixa de variação nas propriedades do Expert Advisor, executo otimização, enumero parâmetros, mas obtenho o mesmo resultado em cada etapa da otimização. Tenho a impressão de que embora o Expert Advisor busque através dos parâmetros, ele usa o mesmo conjunto de parâmetros que foi definido no início. Suspeito que eu tenha definido algo errado na função .

Primeiramente, as primeiras coisas:

Eu estabeleço parâmetros em minha EA que devem ser otimizados como os definidos no indicador:

externo int MA_Period=151; // 101 10 201
duplo externo KFK=0,9; // 0,7 0,005 1.

Eu estabeleço referência para o indicador na função int start():

B3= NormalizeDuplo(iCustom(NULL, 0, "ART",0,1),Dígitos);
BT=GlobalVariableGet(NomeGlobalVariableBT);

Pergunta: Depois de "ART", eu preciso inserir os parâmetros a serem alterados?

Se eu não o inserir, a otimização é realizada, mas o resultado é o mesmo, se eu o inserir, o resultado é zero:

1 0,00 0,00 0,00 0,00 0,00 0,00 0,00% MA_Period=101 KFK=0,8 Lotes=0,1 TrailingStop1=3110 StopLoss1=1500 TrailingStop2=3110 StopLoss2=1500 MAGIC_1=12345 MAGIC_2=23456
2 0,00 0,00 0,00 0,00 0,00 0,00 0,00% MA_Period=111 KFK=0,8 Lotes=0,1 TrailingStop1=3110 StopLoss1=1500 TrailingStop2=3110 StopLoss2=1500 MAGIC_1=12345 MAGIC_2=23456
3 0,00 0,00 0,00 0,00 0,00 0,00 0,00% MA_Period=121 KFK=0,8 Lotes=0,1 TrailingStop1=3110 StopLoss1=1500 TrailingStop2=3110 StopLoss2=1500 MAGIC_1=12345 MAGIC_2=23456
4 0,00 0,00 0,00 0,00 0,00 0,00 0,00% MA_Period=131 KFK=0,8 Lotes=0,1 TrailingStop1=3110 StopLoss1=1500 TrailingStop2=3110 StopLoss2=1500 MAGIC_1=12345 MAGIC_2=23456
5 0,00 0,00 0,00 0,00 0,00 0,00 0,00% MA_Period=141 KFK=0,8 Lotes=0,1 TrailingStop1=3110 StopLoss1=1500 TrailingStop2=3110 StopLoss2=1500 MAGIC_1=12345 MAGIC_2=23456

 

Bem, eles devem estar em algum lugar no texto do programa. Se são todos zeros, isso significa que não houve transação. Ou não?

Em geral, os parâmetros são alarmantes... Existem variáveis - MA_Period, e seus valores - 101, 102, 103, que o testador se insere durante as corridas.

B3= NormalizeDouble(iCustom(NULL, 0, "ART", MA_Period, KFK, 0, 1), Dígitos); Leia a ajuda do iCustom (desculpe por escrever as coisas óbvias)

Você também pode ver o que o indicador considera se você escrever, por exemplo, Imprimir (B3) depois dele

 
OrlandoMagic писал(а) >>

Bem, eles devem estar em algum lugar no texto do programa. Se são todos zeros, isso significa que não houve transação. Ou não?

Em geral, os parâmetros são alarmantes... Há variáveis - MA_Period, e seus valores - 101, 102, 103, que o testador se insere durante as corridas.

B3= NormalizeDouble(iCustom(NULL, 0, "ART", MA_Period, KFK, 0, 1), Dígitos); Leia a ajuda do iCustom (desculpe por escrever as coisas óbvias)

Você também pode ver o que o indicador considera, se você o seguir com, por exemplo, Print (B3)

Se eu definir parâmetros da seguinte forma: (iCustom(NULL, 0, "ART", MA_Period, KFK, 0, 1), Dígitos); - obtemos todos os zeros, como eu disse acima.

Se eu definir iCustom(NULL, 0, "ART", 0, 1), Dígitos); - então os valores calculados aparecem,

1 299,70 36 1,80 8,33 153,30 11,51% Threshold1=90 Threshold2=215 MA_Period=45 Lots=0,1 TrailingStop1=3110 StopLoss1=1500 TrailingStop2=3110 StopLoss2=1500 MAGIC_1=12345 MAGIC_2=23456 KFK=0,9 KNK=1,7 FB=0,0025 FNS=0,0005 USL=0,0051
2 299,70 36 1,80 8,33 153,30 11,51% Threshold1=91 Threshold2=215 MA_Period=45 Lots=0,1 TrailingStop1=3110 StopLoss1=1500 TrailingStop2=3110 StopLoss2=1500 MAGIC_1=12345 MAGIC_2=23456 KFK=0,9 KNK=1,7 FB=0,0025 FNS=0,0005 USL=0,0051
3 299,70 36 1,80 8,33 153,30 11,51% Threshold1=92 Threshold2=215 MA_Period=45 Lots=0,1 TrailingStop1=3110 StopLoss1=1500 TrailingStop2=3110 StopLoss2=1500 MAGIC_1=12345 MAGIC_2=23456 KFK=0,9 KNK=1,7 FB=0,0025 FNS=0,0005 USL=0,0051
4 299,70 36 1,80 8,33 153,30 11,51% Threshold1=93 Threshold2=215 MA_Period=45 Lots=0,1 TrailingStop1=3110 StopLoss1=1500 TrailingStop2=3110 StopLoss2=1500 MAGIC_1=12345 MAGIC_2=23456 KFK=0,9 KNK=1,7 FB=0,0025 FNS=0,0005 USL=0,0051
..........

mas são todos iguais, embora no testador, quando se corre com parâmetros diferentes, os resultados dos negócios sejam muito diferentes.

Razão: