Otimização! Compartilhe suas experiências, por favor. - página 3

 
solandr писал (а):
Eu dei um link para a proposta de Bakeev de comparar os resultados da otimização no martingale para entender como seu algoritmo pode ser afiado para uma curva aleatória (como é viável a idéia do algoritmo). E a partir daí você deve decidir se quer ou não fazê-lo.

Você está viciado em Bakeev:):):):)
Acho que um testador executado em um "pedaço" de história não otimizável é o suficiente.
 
sashken:

Você está viciado em Bakeev:):):):):):):):)
Acho que um testador executado em um "pedaço" não otimizável da história é suficiente.

Os resultados da execução em um pedaço não otimizável da história (fora da amostra) podem acabar sendo aleatórios. Devido a isso, há duas situações problemáticas possíveis:
1. Adoção de uma estratégia de drenagem, se ela mostrar um lucro na parte não otimizada da história.
2. Não utilizar uma estratégia lucrativa, se ela mostrasse um drawdown na parte não otimizada da história.

De modo geral, o problema de contra-ajuste é provavelmente o mais complexo na construção da MTS. E apenas para dizer que devemos otimizar mais ou menos e não mais é como apontar o dedo no céu, porque provavelmente não existe uma resposta exata, IMHO. É necessário considerar todas as opções possíveis para testar a estratégia antes de colocá-la em dinheiro real. Considero as instruções sobre Bakeev como uma das opções adicionais para considerar uma estratégia de uso no comércio. Eu mesmo ainda não alcancei sua aplicação na prática, mas pretendo utilizá-la num futuro próximo. Como eles dizem, eu apenas compartilhei meus pensamentos com uma pessoa que chegou a um impasse, ao qual TODOS os escritores da EA, independentemente do nível de treinamento e visão de mundo, vão quando colocam o testador MT4 para otimizá-lo. Mais ainda, com o advento doalgoritmo genético no testador, a capacidade de encaixar QUALQUER curva só tem aumentado!
 
Vita:
AndyGri:
É possível ajustar os parâmetros para tantas negociações e o mercado pode mudar tão imediatamente? O que fazer?

A maneira mais fácil de verificar "não há ajuste de curva?" é mudar um ou dois parâmetros em 5-10% e obter maus resultados nos testes. Você já verificou?

Não, mas eu vou. Obrigado!
 
Reshetov:
AndyGri:
sashken:
Por que você não se gaba? :) E afixar o código do Expert Advisor?
Ou pelo menos relatórios de teste. Talvez a imagem fique mais clara:)

Relatório de teste de estratégia
chas_GBP_TP_TSnorm_SLlowHigh

Símbolo GBPUSD (Libra esterlina versus dólar americano)
Período 1 Hora (H1) 2006.01.01 23:00 - 2007.03.21 00:00 (2006.01.01 - 2007.03.21)
Modelo Todos os carrapatos (com base nos menores períodos disponíveis com interpolação fractal de cada carrapato)
Parâmetros porog=1; MAmor=2; MAtrend=24; risco=0,1; CandleBar=0,55; TP=120; TS=70; SL=54; TimeCH=10; VolP=1,5; t=0; porogSL=10; candleEX=17; MAporog=17; DellOrd=23;
Bares na história 8494 Carrapatos modelados 1576481 Qualidade da simulação 57.67%
Depósito inicial 1000.00
Lucro líquido 3745.64 Lucro total 7681.59 Perda total -3935.95
Rentabilidade 1.95 Pagamento previsto 25.14
Desembolso absoluto 0.00 Máximo de drawdown 384.68 (12.31%) Drawdown relativo 12.31% (384.68)
Total de negócios 149 Posições curtas (% ganho) 60 (65.00%) Posições longas (% ganho) 89 (75.28%)
Ofícios rentáveis (% de todos) 106 (71.14%) Perdas comerciais (% do total) 43 (28.86%)
A maior comércio lucrativo 120.00 perdendo negócio -263.31
Média negócio lucrativo 72.47 transação perdida -91.53
Número máximo ganhos contínuos (lucro) 8 (547.11) Perdas contínuas (perda) 3 (-249.45)
Máximo Lucro contínuo (número de vitórias) 635.18 (7) Perda contínua (número de perdas) -263.31 (1)
Média prêmios contínuos 3 Perda contínua 1

Tudo está claro. Teste e otimização no relógio, e negociação real 2 vezes em 3 dias, ou seja, um completo descompasso entre o tempo do teste e o real. Você deve mover os testes para a tabela diária, ela está mais próxima da verdade. Ou, se for inconveniente produzir no final do prazo americano, então execute a EA em uma determinada hora, mas adicione-a ao código:
...
// a hora do início do assessor
hora int exterior = 12;

...

int start() {
se (hora != TimeHour(Time[0])) retornar(0);
// Código EA
...
}

Observe que o tempo que você definiu na variável hora corresponde ao tempo de sua corretora, não ao tempo em seu computador. Portanto, ela pode ser deslocada.

Obrigado pela dica. Comecei com castiçais diários, mas os mudei para assistir, porque há mais informações para análise. Em geral... os resultados são mais estáveis.
 
solandr:
AndyGri:
A amostra é grande - menos de 160-200 entradas no mercado, e 2 semanas não é o prazo para grandes mudanças. É possível ajustar os parâmetros a tantos negócios e o mercado pode mudar tão imediatamente? O que fazer?
160-200 negócios - você está brincando? Com 5-7 parâmetros otimizáveis você pode facilmente encaixar uma curva de milhares de negócios (E você tem 16 parâmetros externos para otimização!!!! - Dezenas de milhares de ofícios serão adequados a QUALQUER curva se você tiver tempo suficiente e um computador mais potente! :o) Procure por exemplo aqui:
https://www.mql5.com/ru/forum/50458 solandr 18.03.06 20:11
Esta infância em que estive envolvido há um ano. Esse sistema foi então lançado com sucesso no mundo real (relatei sobre isso mais tarde, em algum lugar em maio de 2006). A idéia do sistema foi condicionalmente tirada do teto (picos de captação do ruído). Portanto, você não é o primeiro a pisar no ancinho da adaptação.
Em meu primeiro post deste solandr 23.03.2007 15:43 eu dei um link para a sugestão de Bakeev sobre a comparação de resultados de otimização em martingale para entender como seu algoritmo pode ser ajustado a uma curva aleatória (como é viável sua idéia de algoritmo). E então cabe a você decidir se quer ou não fazê-lo.

Obrigado, era exatamente disso que eu tinha medo, mas queria ouvir! Intuitivamente, entendo que este é exatamente o caso. Mas eu não posso nem provar nem refutar fisicamente. Mas a experiência é a melhor prova. Mais uma vez, obrigado!
 
Olá!
Por favor, resolva o enigma do algoritmo genético.
Aqui está um exemplo de duas execuções do otimizador:


Em ambos os casos os mesmos 2 (dois) parâmetros são otimizados, exatamente nas mesmas faixas
O primeiro parâmetro tem 11 passos, o segundo tem 21 passos - 11x21 = 231.

Primeira vez com o algoritmo genético desabilitado, segunda vez decidi habilitar a genética.
De onde veio o número de 1280 corridas e o tempo de 53 minutos?
 

Osalgoritmos genéticos são apropriados quando estamos falando de milhares de execuções. No seu caso, 231 é um número muito pequeno para a genética. Então talvez algo tenha dado errado ao usar o algoritmo genético para otimização em uma gama tão pequena de execuções? Somente os desenvolvedores podem responder a esta pergunta com mais precisão.

 
solandr:

Osalgoritmos genéticos são apropriados quando estamos falando de milhares de execuções. No seu caso, 231 é um número muito pequeno para a genética. Então talvez algo tenha dado errado ao usar o algoritmo genético para otimização em uma gama tão pequena de execuções? Somente os desenvolvedores podem responder a esta pergunta com mais precisão.


Estou vendo, obrigado!
Foi o que eu pensei que era algum tipo de falha... fácil de reproduzir, no entanto.

Agora, quanto à experiência de otimização.
Eu nunca tentei otimizar todos os parâmetros de uma só vez. Acho que é um desperdício excessivo de recursos de informática.
É melhor gastar tempo estudando as relações dos parâmetros e otimizá-los através de pequenos grupos relacionados.
Tenho dois deles: um deles está relacionado com a entrada no comércio e a colocação de pedidos, o outro - para sair do comércio.
Eu otimizo primeiro a entrada e depois a saída. O período máximo de otimização é de meio ano.
Após a otimização, faço um teste em toda a matriz - se não houver problemas, começo a trabalhar com parâmetros.
Se houver um grande drawdown em algum fragmento muito próximo, eu otimizo durante este mesmo período (novamente, não mais do que seis meses).
Mais uma vez, repito a análise em todo o banco de dados. Faço-o a cada 2-3 meses, ou mais freqüentemente, se não gostar dos resultados da última negociação.

Não vejo a vantagem de otimizar desde 19... ano, então o mercado e agora - é, como dizem, duas grandes diferenças!

Todos disseram apenas IMHO.
 
AndyGri:
Senhores, estou começando a perder a fé nos EAs, ou em mim mesmo :(. Escreveu um monte de variantes. Principalmente sobre a libra nos relógios. Utilizo muwings, estocásticos e análise horária. Utilizo a história anual para escrever e otimizar. O Expert Advisor entra no mercado em média 2 vezes em 3 dias. Tudo é legal nos testes. Mas!! ... na vida real, nas próximas duas semanas perdemos dinheiro... E nem tudo é assim :(. Falando sobre os parâmetros sendo ajustados por um período de um ano e o mercado mudando constante e rapidamente...? sim, de alguma forma eu não acredito nisso. A amostra é grande - menos de 160-200 saídas de mercado, e 2 semanas não é um prazo para grandes mudanças. Pode-se ajustar os parâmetros a um número tão grande de negociações e o mercado pode mudar tão rapidamente? Diga-me como fazer isso. Se algo funciona, gabe-se disso e me dê fé. Eu perdi a esperança.

nas últimas 2 semanas perdidas são as mesmas ? quero dizer, o Expert Advisor abre negócios no mesmo lugar onde estão os dados históricos ?
 
PSmith:
solandr:

Osalgoritmos genéticos são apropriados quando estamos falando de milhares de execuções. No seu caso, 231 é um número muito pequeno para a genética. Então talvez algo tenha dado errado ao usar o algoritmo genético para otimização em uma gama tão pequena de execuções? Somente os desenvolvedores podem responder a esta pergunta de forma mais precisa.


Estou vendo, obrigado!
Eu achei que era algum tipo de falha... mas facilmente reproduzível.

Agora, quanto à experiência de otimização.
Eu nunca tentei otimizar todos os parâmetros de uma só vez. Acho que é um desperdício excessivo de recursos de informática.
É melhor gastar tempo estudando as relações dos parâmetros e otimizá-los por pequenos grupos relacionados.
Tenho dois deles: um deles está relacionado com a entrada no comércio e a colocação de pedidos, o outro - para sair do comércio.
Eu otimizo primeiro a entrada e depois a saída. O período máximo de otimização é de meio ano.
Após a otimização, faço um teste em toda a matriz - se não houver problemas, começo a trabalhar com parâmetros.
Se houver um grande drawdown em algum fragmento muito próximo, eu otimizo durante este mesmo período (novamente, não mais do que seis meses).
Mais uma vez, repito a análise em todo o banco de dados. Faço-o a cada 2-3 meses, ou mais freqüentemente, se não gostar dos resultados da última negociação.

Não vejo a vantagem de otimizar desde 19... ano, então o mercado e agora - é, como dizem, duas grandes diferenças!

Todos disseram apenas IMHO.
Você está falando do cronograma horário da EA? De que prazo estamos falando quando você menciona todo o conjunto? Como a EA se comporta em anos diferentes, como 2004, 2005, 2006? Meu Conselheiro Especialista tem dinâmica alternada. Ou tem lucro 0 ou ganhou (estou falando sobre os testes de história). Obrigado antecipadamente por sua resposta! :)
Razão: