Pergunta sobre otimização genética

 

Decidi começar a otimizar o TS, mas como há muitos parâmetros para otimizar - 13, e o TS é projetado para M1 e não há mais de 10 negociações por mês, decidi usar um algoritmo genético e levar o histórico por 1 mês.

Na primeira corrida, o tempo calculado foi superior a 250 horas e o número de combinações foi superior a 83 bilhões. No artigo "Algoritmos Genéticos no MetaTrader 4. Uma comparação com a Busca Direta do Otimizador" afirma que não devemos nos concentrar no tempo calculado, pois ele não corresponde à realidade na otimização genética, mas o artigo foi escrito há muito tempo, talvez as últimas construções do MT4 já correspondam a ele? Então devo esperar? Não esperava problemas de otimização quando criei o TS, mas acontece que o TS parece ser bom, mas não posso defini-lo manualmente, há muitos parâmetros e pequenas mudanças neles levam a uma reestruturação significativa do sistema.

Você também pode me dizer o que significam os números no canto inferior esquerdo: o primeiro é o número de corridas, entre parênteses - o número de combinações, e o que há entre elas sob / ?

 
Angela >> :

Decidi começar a otimizar o TS, mas como há muitos parâmetros para otimizar - 13, e o TS é projetado para M1 e não há mais de 10 negociações por mês, decidi usar algoritmo genético e levar o histórico por 1 mês.

Na primeira execução, o tempo calculado foi superior a 250 horas e o número de combinações foi superior a 83 bilhões. No artigo "Algoritmos Genéticos no MetaTrader 4. Uma comparação com a Busca Direta do Otimizador" afirma que não devemos nos concentrar no tempo calculado; não corresponde à realidade na otimização genética, mas o artigo foi escrito há muito tempo, talvez as últimas construções do MT4 já correspondam a ele? Então devo esperar? Não esperava problemas de otimização quando criei o TS, mas acontece que o TS parece ser bom, mas não posso defini-lo manualmente, há muitos parâmetros e pequenas mudanças neles levam a uma reestruturação significativa do sistema.

Diga-me também, o que significam os números no canto inferior esquerdo: o primeiro é o número de corridas, entre parênteses - número de combinações, e o que há entre elas sob / ?

Os números em genética significam o número de combinações / combinações em genética.

É uma espécie de autopromoção para mostrar como somos grandes MetaQuotesters e quanto tempo podemos economizar graças à genética.

\Há muitos parâmetros a serem otimizados - 13 Aconselho a dividir os parâmetros em pares e três,

(aqui você terá que pensar o que está emparelhado com o quê) e fazer a seleção em etapas.

É mais conveniente olhar para um gráfico de otimização bidimensional dessa forma.

Em geral, a genética escolhe os máximos dispersos e ainda é melhor fazer uma busca simples.

Eu pessoalmente uso a genética para encontrar uma área local onde eu já faço uma busca completa.

 
Urain писал(а) >>

Em genética, os números se referem ao número de cota/quota em genética (o número de amostragem direta).

Este é um tipo de auto-aversão para mostrar o quanto somos legais como MetaQuotesters e quanto tempo economizamos graças à genética.

\Há muitos parâmetros a serem otimizados - 13 Aconselho a quebrar os parâmetros em pares e três,

(você terá que pensar no que está emparelhado com o que) e fazer a seleção em etapas.

É mais conveniente olhar para um gráfico de otimização bidimensional dessa forma.

Em geral, a genética escolhe os máximos dispersos e ainda é melhor fazer uma busca simples.

Eu pessoalmente uso a genética para procurar uma área local que depois usaria para fazer uma busca por força bruta.

O problema é que a maioria dos parâmetros de otimização estão relacionados uns aos outros por feedbacks e a mudança de um provoca a reestruturação de vários outros e a mudança de imagem. A estratégia é projetada de tal forma que o ótimo será procurado em todo o hiperplano dos parâmetros utilizados. Portanto, provavelmente terei que abandonar esta estratégia, embora seja uma pena, correndo-a na história desde 1.01.2007 até agora, mesmo sem otimização, o TS mostrou estabilidade, pelo menos não caiu a zero, embora tenha sido projetado para uma otimização semanal excessiva. Nos últimos 2 anos, houve altos e baixos cíclicos.

Eu irei para desestresse e começarei a elaborar uma nova estratégia.

 
Na abertura do bar, tente otimizar
 
83 bilhões podem colocá-lo no lugar errado. Pelo que entendi, um testador, se o número total de corridas exceder um certo número (e o seu certamente o faz) em genética, não mais do que 10.000 corridas. Ou seja, o testador pode, após obter resultados positivos em algum lugar em um enorme espaço de variantes, começar a cruzar para esses resultados, e pode simplesmente não ter tempo para olhar para resultados realmente bons... Você deve tentar aumentar o passo dos parâmetros. Então, haverá menos opções. E então, após uma primeira aproximação, considerar a área de maior interesse em mais detalhes.
 
Angela >> :

O problema é que a maioria dos parâmetros de otimização estão relacionados entre si por feedbacks, e mudar um leva a rearranjar alguns dos outros e o quadro muda.

Isto geralmente é bom. Assim, através de um gráfico de otimização bidimensional você pode identificar a correlação e soletrá-la através de um coeficiente no código.

excluir completamente um termo de otimização. Por exemplo, você percebe que os valores máximos em um gráfico 2D vão em diagonal.

Isto significa que você pode tornar um parâmetro dependente no código ( x2 = x1 + 3 ) e otimizar apenas x1. Boa sorte.

 

Eu não queria esperar pelo fim da otimização, por isso desliguei-o. Embora o TS seja estável e mostre bons resultados em negócios lucrativos, mas esperar semanas de otimização é demais.

Por exemplo, aqui está o intervalo mostrado no gráfico acima, mas nos últimos dois meses.

Além disso, eu tenho uma otimização separada da Compra e Venda. Além disso, há muito poucos negócios e por causa da Internet ruim eu estava contando para desligar meu sistema comercial à noite, enquanto eu podia esperar de 2 a 3 semanas à espera que os negócios fossem feitos.

Então eu removi o estresse ontem e comecei a desenvolver um novo TS. Farei mais simples e 390 linhas de código com condições lógicas é demais, e freia fortemente, os testes com preços de abertura desde 2007 levaram 4,5 horas. Além disso, dentro de um mês, eu mesmo não entenderei o que está nestas condições lógicas nakochelya.

 
Angela >> :

Além disso, em um mês eu não saberei nem mesmo o que fiz nestas condições lógicas.

Escreva comentários detalhados. ;-). Como o TS é descartado, ele pode ser publicado em base de código para edificação, talvez a refatoração possa ser feita.

 

Fazendo uma nova versão do TS. Fiz um bloco, e antes de prosseguir decidi otimizar alguns parâmetros, para poder me sintonizar mais ou menos com as configurações iniciais mais ou menos otimizadas. Eu otimizei 7 parâmetros, tempo estimado de otimização - 106 horas, embora após a execução da otimização aumente pouco a pouco, o número de combinações - 44.274.384, número estimado de execuções - 10.496. Inicialmente, eu defini o histórico para 1 mês, a otimização começou, os resultados das execuções começaram a aparecer na janela "resultados da otimização". Recebi 186 negócios durante um mês. Decidi reduzir pela metade a história para acelerar a otimização, após o lançamento o tempo foi de 57 horas, mas as janelas "resultados da otimização" e "cronograma de otimização" não mostraram nada, qual é o problema?

 
Angela >> :

Fazendo uma nova versão do TS. Fiz um bloco, e antes de prosseguir decidi otimizar alguns parâmetros, para poder me sintonizar mais ou menos com as configurações iniciais mais ou menos otimizadas. Eu otimizei 7 parâmetros, tempo estimado de otimização - 106 horas, embora após o início da otimização aumente passo a passo, número de combinações - 44.274.384, número estimado de execuções - 10.496. Inicialmente, eu defini o histórico para 1 mês, a otimização começou, os resultados das execuções começaram a aparecer na janela "resultados da otimização". Recebi 186 negócios durante um mês. Decidi reduzir pela metade a história para acelerar a otimização, depois de ter executado o robô por 57 horas, mas as janelas "resultados da otimização" e "cronograma de otimização" não mostraram nada, qual é o problema?

1 Os parâmetros na janela "Otimização" são provavelmente definidos nas restrições, que nenhuma execução foi superada por si só,

Se não houver um limiar vencedor, isso significa que não há nada por onde escolher. Deixe uma caixa de seleção ao lado de "Lucro Máximo",

Se pelo menos uma corrida superar a barreira e der pelo menos algum lucro, ela será exibida.


2 Se não for possível reduzir o número de parâmetros otimizados simultaneamente, aumente a etapa.

E depois de ver o resultado (no campo de quais valores) correr com um passo menor.

Por exemplo: Por { início, passo, fim}

Se x1 {10,10,100}, como resultado, veremos um aglomerado escuro em x1 de 60 a 80.

Faça uma segunda corrida com os parâmetros x1 {60,1,80} e encontre o ótimo.

(Quando falo de um gráfico, refiro-me a um dimensional).

 
Angela >> :

>> qual é o problema?

Quem sabe, os milagres acontecem. Normalmente, antes de executá-lo para otimização, eu o faço visualmente com os parâmetros pretendidos, exibindo o máximo de dados necessários nos comentários. Eu consigo ver muitas coisas interessantes ao mesmo tempo, assim como ao rever o diário de bordo. Mau histórico, erros indicadores, erros do Expert Advisor, etc. Após a sua eliminação, há mais confiança na precisão da otimização.