Sugestões para EA (Perder para Lucrar) - página 7

 
diostar:

Não é bem isso, nesta fase. Pode ser uma perda de tempo, testando da compra para a venda, vice versa, embora tenha dado mudanças. Quando eu digo, é isto que eu quis dizer:

Encontrar a melhor solução no mais mínimo de tempo. Enquanto no mesmo tempo (muito curto), 5-10 minutos no máximo, testar a lógica por unidade, então a lógica PODE ser uma lógica determinada, digamos. 99% boa ou 99% ruim, é praticamente confirmada.

1) Você apenas toma 1 lógica mestre, digamos por exemplo:

e retire todo o resto, e você faz isso:

isto é, por unidade de lógica - testando AMBOS comprar e vender, na hora do SAME. Portanto, se você deseja ir otimizando com esta 1 lógica mestre, você simplesmente otimizará em seus parâmetros básicos - sl,tp, lotes, etc. somente. Em seguida, analise as instâncias de suas compras e vendas, julgue se esta 1 lógica pode fazer o corte, em ambos os cenários - se ela faz uma entrada incorreta ou correta. Em ambos os cenários. Em seguida, passar para a lógica seguinte.

À medida que você se dá bem, talvez queira tentar combinações...1 lógica apenas compra, lógica 2, apenas vende, ou ambas, etc. Acho que esta maneira é mais estruturada e você pode realmente ver qual lógica precisa está realmente causando o drawdown.


Eu nunca testei um EA com estes métodos, portanto, descarnado comigo pls...

Minha pergunta é: que parâmetros eu isolei para me concentrar estritamente no lucro?

  • MA?
  • TP ...
  • SL
  • ?
 
c0d3:

Eu nunca testei um EA com estes métodos, portanto, sem saber o que fazer...

Minha pergunta é: que parâmetros eu isolei para me concentrar estritamente no lucro?

  • MAs?
  • TP
  • SL
  • ?

Eu também não tropecei nesta idéia totalmente nova enquanto trabalhava nisto. Vim de uma base bastante técnica, por isso foi fácil para mim julgar que alguma lógica é completamente incorreta/baseada/falha, nos mercados.

Mas eu estava perguntando: "Como isso pode ser provado no testador de estratégia, se é realmente assim? Certamente deve haver uma maneira". Por isso, por coincidência, eu casualmente me arrisquei com este método.

Basta pegar, neste caso, a lógica MA em condição de controle, um por um, digamos por exemplo, você começa com M240close< MA 240. YOu teste ambos os lados - compre e venda, NO MESMO TEMPO. Agora estes são os casos:


1) Agora, matematicamente, se esta lógica é de fato viável, o resultado deveria ser um pouco NEUTRAL, uma vez que cobre ambos os lados. Está de acordo? Se se tornar lucrativo - então você pode concluir olhando através, comprando e vendendo resultados, esta lógica está fazendo o corte muito, muito bem, mesmo quando está levando socos do oposto. Por isso, é muito sólida.

2) Agora, se isso se revelar desastroso, então você pode concluir, que a lógica INTEIRA, ou seja, comparar o fechamento em 240 com MA 240, é 100% falha contra todos os tipos de movimentos de mercado. Isto deve deixá-lo convencido de que toda a lógica deve ser tirada, substituída completamente.

Deixe o resto - tp, sl, para otimização. É obter a lógica, peça por peça, correto, o que é mais importante nesta fase.

Desde que usei esta abordagem, tive um progresso bastante bom com a minha própria. Antes, eu fazia as coisas praticamente da mesma forma que muitos, mas com esta nova maneira, estou fazendo progressos sérios em muito pouco tempo...;-)

 
diostar:

Eu também não. Apenas tropecei nesta idéia totalmente nova enquanto trabalhava nisto. Vim de uma base bastante técnica, por isso foi fácil para mim julgar que alguma lógica é completamente incorreta/baseada/falha, nos mercados.

Mas eu estava perguntando: "Como isso pode ser provado no testador de estratégia, se é realmente assim? Certamente deve haver uma maneira". Por isso, por coincidência, eu casualmente me arrisquei com este método.

Basta pegar, neste caso, a lógica MA em condição de controle, um por um, digamos por exemplo, você começa com M240close< MA 240. YOu teste ambos os lados - compre e venda, NO MESMO TEMPO. Agora estes são os casos:


1) Agora, matematicamente, se esta lógica é de fato viável, o resultado deveria ser um pouco NEUTRAL, uma vez que cobre ambos os lados. Está de acordo? Se se tornar lucrativo - então você pode concluir olhando através, comprando e vendendo resultados, esta lógica está fazendo o corte muito, muito bem, mesmo quando está levando socos do oposto. Por isso, é muito sólida.

2) Agora, se isso se revelar desastroso, então você pode concluir, que a lógica INTEIRA, ou seja, comparar o fechamento em 240 com MA 240, é 100% falha contra todos os tipos de movimentos de mercado. Isto deve deixá-lo convencido de que toda a lógica deve ser tirada, substituída completamente.

Deixe o resto - tp, sl, para otimização. É obter a lógica, peça por peça, correto, o que é mais importante nesta fase.

Desde que usei esta abordagem, tive um progresso bastante bom com a minha própria. Antes, eu fazia as coisas praticamente da mesma forma que muitos, mas com esta nova maneira, estou fazendo progressos sérios em muito pouco tempo...;-)

Por que não apenas otimizar todas as varíbulas ao mesmo tempo? Pode demorar um pouco para chegar ao teste de otimização, mas, é por isso que tenho 2 computadores. Um para testes, outro para desenvolvimento.

Supondo que você tenha um EA shell que funcione corretamente, ou seja, SL, TP, Trailing SL, Increment, Stack, Risk, muitas horas para negociar, e-mail, relatórios, abertura de ordens de fechamento, trabalhos em múltiplos pares, etc. Assumindo que tudo isso funciona corretamente, o que não é uma tarefa menor, você fica então com qualquer lógica que use para entrar em uma negociação. No meu caso, eu tenho Comércio() que retorna 1,0 ou -1. A lógica em Trade() pode ser qualquer sistema que você queira conectar.

Eu testei meu sistema de lógica comercial em modo visual primeiro, então me certifiquei de que a lógica está funcionando corretamente, por exemplo, as paradas estão definidas no lugar correto, a entrada está no nível correto da barra e o que quer que o sistema exija. Uma vez que isso é feito, geralmente isso leva uma hora ou mais para testar, a menos que eu tenha perdido completamente a cabeça. Em seguida, executo toda a otimização para as faixas de TP,SL Stack, horas de operação e qualquer variável que precise ser testada dentro da lógica de operação Ma, padrões de barras, o que quer que seja.

Se você executar todas as otimizações e ao mesmo tempo lhe dará uma idéia melhor se a estratégia funcionar. Se você quiser reduzir o tempo de teste, opte por um período de tempo mais curto, apenas para ter uma idéia do sistema, digamos, 1-2 meses. Isto não deve levar muito tempo, mais ou menos 4-8 horas, se você mantiver as faixas baixas. Se parecer promissor, então execute um verdadeiro teste de retrocesso que lhe dará uma noção real de como o sistema está funcionando. Nada diz que você não pode parar um backktest depois de 100 corridas, pois já parece um perdedor.

Em meus testes, estou olhando para o drawdown como minha estatística número um, se minha EA empata mais de 12% com um risco de 2%, então estou de qualquer forma de volta à estaca zero. Se isso funcionar, eu olho para a porcentagem de ganho/perda, e a relação de ganho/perda média. Não tenho certeza se você vai conseguir esses números mais rápido fazendo isso à sua maneira. Se a maioria, 80-90% das minhas corridas de opt-out não puxam a conta para 0, então você tem uma boa chance de obter uma EA lucrativa. Então eu faço as corridas de lucro médio e faço a média e a reoptimização com faixas menores para obter minhas configurações para um teste em tempo real de dados. Só isso pode levar um mês. Eu não correria com dinheiro real, a menos que isso fosse feito.

Com tudo o que foi dito acima, esta é exatamente a maneira como eu trabalho, pelo menos com EA's.

Eu não concordo com 1 ou 2.

1) Não creio que você possa provar ou mesmo saber se o sistema será lucrativo, a menos que você execute uma opção de corrida com todas as variáveis possíveis. E se, SL,TP,Stack, distância entre Stack, ou MoveStop fizer do Stack um vencedor, Não é realmente um "e se", é um fato. Se você testar seu caminho, ainda precisa de um SP ou TP ou o que quer que seja para ver um ganho ou uma perda. Se você tiver um 100 pip SL em um gráfico de 1 minuto, você provavelmente terá um grande sistema com 85 -> 98% de vitórias. Posso lhe dizer que ele não terá esse desempenho quando você o executar através de uma execução otimizada. Você pode ter uma taxa de ganho de 30% e uma EA muito lucrativa. Você também pode ter uma taxa de ganho de 90% e o drawdown pode ser de 70% e 3000 de 4000 opt runs drenam a conta. No final, você vai fazer uma corrida completa de qualquer maneira. Por que não fazer isso primeiro e codificar um novo sistema em paralelo?

2) Pode se transformar em um desastre e você joga um sistema sem um teste completo. Pode ser como jogar uma ficha de loteria no lixo porque você acabou de verificar o número da ficha de loteria e sabe que não acertou o jackpot. Você tinha os outros cinco números e simplesmente jogou um vencedor de 250K no lixo, agora algum pombo tem um ninho realmente caro.

Oponto principal é que eu acho que a codificação real do sistema é a parte do processo de desenvolvimento que consome menos tempo. O teste é a parte mais longa e importante e eu quero passar a maior parte do meu tempo na fase de teste. Também tenho a tendência de aprender mais com minhas EA falhadas, sei que é o que todos dizem, mas as falhas nos testes tendem a ajudar a reduzir as faixas de parâmetros para futuras otimizações, o que faz com que os testes sejam mais rápidos e promissores no final.

Apenas meus 2 centavos.

 
danjp:

Por que não apenas otimizar todas as varíbulas ao mesmo tempo? Pode demorar algum tempo para chegar ao teste de otimização, mas, é por isso que tenho 2 computadores. Um para testes, outro para desenvolvimento.

Supondo que você tenha um EA shell que funcione corretamente, ou seja, SL, TP, Trailing SL, Increment, Stack, Risk, muitas horas para negociar, e-mail, relatórios, abertura de ordens de fechamento, trabalhos em múltiplos pares etc. Assumindo que tudo isso funciona corretamente, o que não é uma tarefa menor, você fica com qualquer lógica que use para entrar em uma negociação. No meu caso, eu tenho Comércio() que retorna 1,0 ou -1. A lógica em Trade() pode ser qualquer sistema que você queira conectar.

Eu testei meu sistema de lógica comercial em modo visual primeiro, então me certifiquei de que a lógica está funcionando corretamente, por exemplo, as paradas estão definidas no lugar correto, a entrada está no nível correto da barra e o que quer que o sistema exija. Uma vez que isso é feito, geralmente isso leva uma hora ou mais para testar, a menos que eu tenha perdido completamente a cabeça. Em seguida, executo toda a otimização para as faixas de TP,SL Stack, horas de operação e qualquer variável que precise ser testada dentro da lógica de operação Ma, padrões de barras, o que quer que seja.

Se você executar todas as otimizações e ao mesmo tempo lhe dará uma idéia melhor se a estratégia funcionar. Se você quiser reduzir o tempo de teste, opte por um período de tempo mais curto, apenas para ter uma idéia do sistema, digamos, 1-2 meses. Isto não deve levar muito tempo, mais ou menos 4-8 horas, se você mantiver as faixas baixas. Se parecer promissor, então execute um verdadeiro teste de retrocesso que lhe dará uma noção real de como o sistema está funcionando. Nada diz que você não pode parar um backktest depois de 100 corridas, pois já parece um perdedor.

Em meus testes, estou olhando para o drawdown como minha estatística número um, se minha EA empata mais de 12% com um risco de 2%, então estou de qualquer forma de volta à estaca zero. Se isso funcionar, eu olho para a porcentagem de ganho/perda, e a relação de ganho/perda média. Não tenho certeza se você vai conseguir esses números mais rápido fazendo isso à sua maneira. Se a maioria, 80-90% das minhas corridas de opt-out não puxam a conta para 0, então você tem uma boa chance de obter uma EA lucrativa. Então eu faço as corridas de lucro médio e faço a média e a reoptimização com faixas menores para obter minhas configurações para um teste em tempo real de dados. Só isso pode levar um mês. Eu não correria com dinheiro real, a menos que isso fosse feito.

Com tudo o que foi dito acima, esta é exatamente a maneira como eu trabalho, pelo menos com EA's.

Eu não concordo com 1 ou 2.

1) Não creio que você possa provar ou mesmo saber se o sistema será lucrativo, a menos que você execute uma opção de corrida com todas as variáveis possíveis. E se, SL,TP,Stack, distância entre Stack, ou MoveStop fizer do Stack um vencedor, Não é realmente um "e se", é um fato. Se você testar seu caminho, ainda precisa de um SP ou TP ou o que quer que seja para ver um ganho ou uma perda. Se você tiver um 100 pip SL em um gráfico de 1 minuto, você provavelmente terá um grande sistema com 85 -> 98% de vitórias. Posso lhe dizer que ele não terá esse desempenho quando você o executar através de uma execução otimizada. Você pode ter uma taxa de ganho de 30% e uma EA muito lucrativa. Você também pode ter uma taxa de ganho de 90% e o drawdown pode ser de 70% e 3000 de 4000 opt runs drenam a conta. No final, você vai fazer uma corrida completa de qualquer maneira. Por que não fazê-lo primeiro e codificar um novo sistema em paralelo?

2) Pode se transformar em um desastre e você joga um sistema sem um teste completo. Pode ser como jogar no lixo um bilhete de Powerball vencedor porque você acabou de verificar o número da Powerball e sabe que não acertou o jackpot. Você tinha os outros cinco números e simplesmente jogou um vencedor de 250K no lixo, agora algum pombo tem um ninho realmente caro.

O ponto principal é que eu acho que a codificação real do sistema é a parte do processo de desenvolvimento que consome menos tempo. O teste é a parte mais longa e importante e eu quero passar a maior parte do meu tempo na fase de teste. Também tenho a tendência de aprender mais com minhas EA falhadas, sei que é o que todos dizem, mas as falhas nos testes tendem a ajudar a reduzir as faixas de parâmetros para futuras otimizações, o que faz com que os testes sejam mais rápidos e promissores no final.

Apenas meus 2 centavos.

Bem, então vamos concordar em discordar.... e obrigado por escrever um post realmente longo. talvez este artigo sirva. otimização = TRAP, você pode cair dentro. https://www.mql5.com/en/articles/1434

 

@c0d3: Aqui está um conselho que me foi dado por alguns grandes desenvolvedores neste fórum. Nunca use o Otimizador de Estratégias (exceto para o ajuste fino). O processo de desenvolvimento ideal é: 1) Você acha que uma estratégia faz sentido. 2) Você codifica e testa a estratégia. 4) A estratégia sai lucrativa. 5) Você usa o Otimizador para ajustar o ajuste fino. 6) Você aprende com as áreas onde falhou.

O Otimizador é um #-cruncher que faria com que 1-pip Sl/Tp se tornasse a diferença entre ganhar ou perder. Otimizar as variáveis 1- de cada vez ou tudo-em-um não faz diferença, IMO. Aqui está meu holy-grail quando eu era 1-Mês novo. Se fosse assim tão fácil, eu não estaria ainda procurando melhores métodos.

 
ubzen:

@c0d3: Aqui está um conselho que me foi dado por alguns grandes desenvolvedores neste fórum. Nunca use o Otimizador de Estratégias (exceto para o ajuste fino). O processo de desenvolvimento ideal é: 1) Você acha que uma estratégia faz sentido. 2) Você codifica e testa a estratégia. 4) A estratégia sai lucrativa. 5) Você usa o Otimizador para ajustar o ajuste fino. 6) Você aprende com as áreas onde falhou.

O Otimizador é um #-cruncher que faria com que 1-pip Sl/Tp se tornasse a diferença entre ganhar ou perder. Otimizar as variáveis 1- de cada vez ou tudo-em-um não faz diferença, IMO. Aqui está meu holy-grail quando eu era 1-Mês novo. Se fosse assim tão fácil, eu não estaria ainda procurando melhores métodos.

Estes pontos são exatamente o que o artigo tinha sobre otimização. E minha própria opinião pessoal também sobre o testador. Estou bastante surpreso porque até mesmo aconselhei o contrário. Contradições de negócios?

Em resumo, o comércio é um jogo relativamente "simples", se você considerar este fato. Ninguém, nem mesmo os geniais negociam o dia inteiro como fazem alguns robôs - os bons e excepcionais levam apenas 15-30 minutos, no máximo 1 hora para entrar, puxar 70-100 pips de trilha e sair para almoçar. Parece difícil o suficiente para um robô? Se você pode fazer isso semanalmente, ou diariamente, e adora fazer isso até ficar velho como aquela velhinha da YTE, isso é o que eu chamo de um Santo Graal. não um robô que precisa ser consertado para sempre.

Mas, por acaso, você quer complicar as coisas com um robô, então esteja preparado para ter na ponta dos dedos certos conhecimentos sobre o que realmente faz um programa de computador funcionar, além dos mercados. Você pode precisar de habilidades que cobrem várias áreas, não apenas programação, mas também tópicos fundamentais - a lógica booleana é definitiva, a matemática e a engenharia serão úteis, etc., etc. Estes podem estar além de algumas pessoas.

Se você quiser saber mais, o que eu posso compartilhar, esperançosamente, é teste e otimização, nada mais é do que uma força estatística mecânica inteligente para agitar os dados por alguma lógica que VOCÊ deu para seguir. Mas a verdade é que os mercados não funcionam por leis estatísticas ou pela SUA lógica, se você ainda não descobriu isso, ainda.

Eu tenho recomendado bem os EAs comerciais, que me deram resultados retroativos agradáveis, mas que ainda me dão um enorme, enorme esp. de drawdown nos últimos meses. Agora, se você já passou por isso, você saberá melhor o que quero dizer. Existe algo como um Santo Graal, mas definitivamente não um mecânico que requer um ajuste apenas para se ajustar ao momento. E seus gloriosos resultados retroativos.

Meu conselho é o seguinte: tome este conserto como um hobby e faça o comércio SEPARATAMENTE. Se você deseja combinar ambos, então esteja preparado para ser seu próprio sacrifício, a longo prazo.

 

99% das pessoas que negociam Forex perderão. Estes são comerciantes Não-Robot. Os robôs não são maus, são uma ferramenta. O robô é apenas tão bom quanto o dinheiro e o tempo que você paga por eles ;)

 
diostar:

Bem, então vamos concordar em discordar.... e obrigado por escrever um post realmente longo. talvez este artigo seja suficiente. otimização = TRAP, você pode cair dentro. https://www.mql5.com/en/articles/1434


A otimização é uma armadilha, se você deixar que ela o prenda. Eu uso a Otimização para conseguir o maior número possível de negócios ao longo de alguns anos. Enquanto estou fazendo outra coisa. Eu não colocaria um centavo do meu dinheiro com um robô que não tenha sido testado, testado por trás e testado por trás. O problema é o tempo, quanto tempo você vai esperar para trocar dinheiro de verdade. Há mais ou menos 5 anos, o benefício de um robô sobre um úmen é isto, ele faz o que você programou para fazer. Ele não liga a CNBC e ouve o que algum idiota pensa, não espera por um novo lançamento, não fica nervoso ou pára uma troca mais cedo porque tinha a sensação de que o mercado iria girar. Também funciona se você não for um comerciante em tempo integral.

Se você executar 12.000 simulações no otimizador e 70% dessas execuções falharem, e 10% dessas execuções lhe renderem 2000% ou qualquer número louco que as pessoas estejam procurando, então você praticamente tem um sistema perdedor e não vale a pena o tempo de testá-lo.

Se você acha que vai testar um sistema manualmente ao longo de vários anos e ajustá-lo após cada corrida alterando um parâmetro de cada vez, isso é mais louco do que executar o otimizador. No entanto, se você executar digamos 15.000 passes na opção e nenhum desses passes for um perdedor, então você tem um sistema que está pronto para pelo menos cair em uma conta de demonstração para testes de avanço por, digamos, 4 semanas. BTW neste ponto, você vai encontrar os verdadeiros erros de codificação.

Mostre-me uma pessoa que negocia 15-30 minutos por dia e bancos 100-150 pips e depois está fora para almoçar, eu lhe mostrarei alguém que não negocia dinheiro de verdade. Negociar é um trabalho em tempo integral, como qualquer outro trabalho.

Se este é um hobby, não sei por que você perderia tempo fazendo este tipo de codificação. É muito fácil tecnicamente e você não vai ganhar quase tanto dinheiro quanto ganharia em um trabalho de desenvolvimento normal. Eu trabalho em um sistema em meu trabalho diário que tem quase 2 milhões de linhas de código usando 4 langs e roda em mainframes, PCs, todos os sabores de UNIX e a maioria dos sistemas operacionais Linux.

Na minha humilde opinião, o artigo foi interessante. Isso não significa que eu acredite em cada palavra nele. É apenas a opinião do autor, Eles provavelmente tiveram que executar muitas otimizações para chegar à conclusão de que o optimazion é uma armadilha. Se eles fizeram isso, então como o artigo pode ser correto, já que a otimização não funciona.

 
ubzen:

@c0d3: Aqui está um conselho que me foi dado por alguns grandes desenvolvedores neste fórum. Nunca use o Otimizador de Estratégias (exceto para o ajuste fino). O processo de desenvolvimento ideal é: 1) Você acha que uma estratégia faz sentido. 2) Você codifica e testa a estratégia. 4) A estratégia sai lucrativa. 5) Você usa o Otimizador para ajustar o ajuste fino. 6) Você aprende com as áreas onde falhou.

O Otimizador é um #-cruncher que faria com que 1-pip Sl/Tp se tornasse a diferença entre ganhar ou perder. Otimizar as variáveis 1- de cada vez ou tudo-em-um não faz diferença, IMO. Aqui está meu holy-grail quando eu era 1-Mês novo. Se fosse assim tão fácil, eu não estaria ainda procurando melhores métodos.

  • Concordo plenamente, o back-testing só é bom para testar a lógica (técnica, visual), e nunca deve ser usado como um indicador de potencial de lucro.
  • Por isso, eu só encaminho EAs de teste para medir seu desempenho, então coisas como otimização é um assunto completamente novo, sobre o qual eu ainda estou cético
 
danjp:

Se você acha que vai testar um sistema manualmente ao longo de vários anos e ajustá-lo após cada corrida alterando um parâmetro de cada vez, isso é mais louco do que executar o otimizador. No entanto, se você executar digamos 15.000 passes na opção e nenhum desses passes for um perdedor, então você tem um sistema que está pronto para pelo menos cair em uma conta de demonstração para testes de avanço por, digamos, 4 semanas. BTW neste ponto, você vai encontrar os verdadeiros erros de codificação.


Este é um bom ponto, sobre os testes de costas

Razão: