Consegui fazer um robo que da lucro . Só que ....

 

Olá,

Consegui fazer um robo que da lucro , só que existem parâmetros diferentes para períodos diferentes na otimização.

Qual o próximo passo ?

Procuro o melhor parâmetro 15 dias antes (ou 7 dias antes) e executo?

O que faço?

Potmoney.

 
potmoney:

Olá,

Consegui fazer um robo que da lucro , só que existem parâmetros diferentes para períodos diferentes na otimização.

Qual o próximo passo ?

Procuro o melhor parâmetro 15 dias antes (ou 7 dias antes) e executo?

O que faço?

Potmoney.

Olá potmoney, um robô que dá lucro é aquele que na sua conta real realmente dá lucro (com perdão da cacofonia).

Portanto se o que você conseguiu é um backtesting com lucro, o desafio agora está em encontrar qual o ajuste que, para sua estratégia, você consegue replicar na conta real.

Você vai encontrar muita teoria para isso, mas talvez o processo de tentativa e erro ainda seja o melhor, ou seja, testar as várias possibilidades e comparar os resultados.

Se encontrares um padrão de comportamento nesses testes essa pode ser uma boa descoberta, relacionada ao passado, mas que não deixa de ajudar na construção de hipóteses de análise para o futuro. 

 

Eu costumo colocar o melhor resultado da otimição dentre todos os timeframes para rodar em uma conta demo. Aí vou acompanhando esta conta e refazendo a otimização periodicamente, todo mês por exemplo, vou comparando os resultados. Aí se eles confirmarem o lucro passo para uma conta real. Tomando o cuidado para não fazer um Curve/Over Fitfing dos resultados. Se for Forex, uma opção também é criar uma conta real Nano, mas com o cuidado de ver as regras da conta, as vezes não compensa.

Uma boa estratégia para backtesting é usar o conceito de In-Date / Out-of-Date / Ratio. Mas não lembro onde li sobre isso.

 
potmoney:

Olá,

Consegui fazer um robo que da lucro , só que existem parâmetros diferentes para períodos diferentes na otimização.

Qual o próximo passo ?

Procuro o melhor parâmetro 15 dias antes (ou 7 dias antes) e executo?

O que faço?

Potmoney.

PotMoney,

Pelo q entendi vc construiu um robo que deu lucro na optimização e percebeu no processo que esse lucro é diferenciado para cada timeframe do grafico 5,15,30 min H1 etc

E vc esta na duvida em relação ao periodo para escolher esse melhor parametro/timeframe.

Vou tentar lhe ajudar com o pouco que sei:

1- Dificilmente um robo nao gera lucro em uma optimização. Ja que a optimização nao e nada alem do que a melhor escolha entre milhoes de possibilidades em relação a um periodo passado.

2- Calibrar um robo talvez seja mais dificil do que desenvolve-lo. Calibrar um robo é a busca de um parametro que ira melhor se adequar em um periodo futuro...desconhecido

3- Para isso nunca pare o seu processo sem o teste forward de optimização (nao sei se vc ja o fez) 

No seu lugar faria o seguinte:

1- Passe o robô na Optimização Genética(Rapida): bem mais rápida por ser por amostragem inteligente(descarte de parametros proximos aos ja testados com resultados ruins) 

Na Genética você precisa determinar o que vc mais procura/prioriza na optimização(balance max, profit factor, recovery factor, min drawdown, Sharp Ratio etc)

Faça uma consulta aos artigos e biblioteca da comunidade para se informar de cada um. Eu pessoalmente gosto muito do Recovery factor, mas jamais escolheria um parâmetro sem um bom profit factor e um equity drawdown bem baixo. Então escolha um parâmetro que possua um bom conjunto geral.  

2- Caso queira refina sua optimização com o processo Completa(Lenta): mais demorada e bem mais cara por ser completa (teste de todas as possibilidades)

Nesta fase vc ja tera bem menos tentativas para optimizar barateando e agilizando o seu processo.

3- Nos dois casos de optimização verifique em seu robo se ele precisa utilizar o metodo de exceução  "cada tick" . Caso contrario voce pode escolher "OHLC" ou ate mesmo "somente preços de abertura"

Isso tbm ira baratear e agilizar bastante os processos acima.

4- Apos escolha um grupo pequeno de possibilidades(parametros) e faça uma optimização lenta com o metodo forward(teste). 

O peiodo Forward serve justamente para vc testar sua optimização em um periodo desconhecido. 

Voce pode optimizar metade, 2/3 ou 3/4 do periodo e testar o restante do periodo escolhido ou ate mesmo customiza-los.

A escolha do tamanho dos periodos vai do perfil de cada investidor. Quanto maior o periodo de optimização mais defensivo e menos arriscado sera o parâmetro; porem menos lucrativo. 

Particularmente achei 7 ou 15 dias sugerido por vc pouquissimo para se determinar um comportamento de um ativo. Mas tbm nao sei o que vc pretende operar...bovespa a vista, opçoes, indice, forex...?

Espero ter ajudado

Bons negocios! 

 
PH2000:

PotMoney,

Pelo q entendi vc construiu um robo que deu lucro na optimização e percebeu no processo que esse lucro é diferenciado para cada timeframe do grafico 5,15,30 min H1 etc

E vc esta na duvida em relação ao periodo para escolher esse melhor parametro/timeframe.

Vou tentar lhe ajudar com o pouco que sei:

1- Dificilmente um robo nao gera lucro em uma optimização. Ja que a optimização nao e nada alem do que a melhor escolha entre milhoes de possibilidades em relação a um periodo passado.

2- Calibrar um robo talvez seja mais dificil do que desenvolve-lo. Calibrar um robo é a busca de um parametro que ira melhor se adequar em um periodo futuro...desconhecido

3- Para isso nunca pare o seu processo sem o teste forward de optimização (nao sei se vc ja o fez) 

No seu lugar faria o seguinte:

1- Passe o robô na Optimização Genética(Rapida): bem mais rápida por ser por amostragem inteligente(descarte de parametros proximos aos ja testados com resultados ruins) 

Na Genética você precisa determinar o que vc mais procura/prioriza na optimização(balance max, profit factor, recovery factor, min drawdown, Sharp Ratio etc)

Faça uma consulta aos artigos e biblioteca da comunidade para se informar de cada um. Eu pessoalmente gosto muito do Recovery factor, mas jamais escolheria um parâmetro sem um bom profit factor e um equity drawdown bem baixo. Então escolha um parâmetro que possua um bom conjunto geral.  

2- Caso queira refina sua optimização com o processo Completa(Lenta): mais demorada e bem mais cara por ser completa (teste de todas as possibilidades)

Nesta fase vc ja tera bem menos tentativas para optimizar barateando e agilizando o seu processo.

3- Nos dois casos de optimização verifique em seu robo se ele precisa utilizar o metodo de exceução  "cada tick" . Caso contrario voce pode escolher "OHLC" ou ate mesmo "somente preços de abertura"

Isso tbm ira baratear e agilizar bastante os processos acima.

4- Apos escolha um grupo pequeno de possibilidades(parametros) e faça uma optimização lenta com o metodo forward(teste). 

O peiodo Forward serve justamente para vc testar sua optimização em um periodo desconhecido. 

Voce pode optimizar metade, 2/3 ou 3/4 do periodo e testar o restante do periodo escolhido ou ate mesmo customiza-los.

A escolha do tamanho dos periodos vai do perfil de cada investidor. Quanto maior o periodo de optimização mais defensivo e menos arriscado sera o parâmetro; porem menos lucrativo. 

Particularmente achei 7 ou 15 dias sugerido por vc pouquissimo para se determinar um comportamento de um ativo. Mas tbm nao sei o que vc pretende operar...bovespa a vista, opçoes, indice, forex...?

Espero ter ajudado

Bons negocios! 

Olá PH2000,

Muito obrigado pela sua contribuição.

Estou começando a aprender sobre metatrader e este é meu primeiro robô que deu "certo". (comprou e vendeu)

No caso, o problema que estou vivendo são valores de parâmetros diferentes para cada período. Estou usando sempre 15min.

Estou fazendo sempre na lenta e isto está demorando demais. Agora vou mudar.

Coloquei a opção no robo para daytrade ou não. Estou usando daytrade para evitar de ter que alugar e/ou desembolsar.(alavancado)

De qualquer forma valeu mesmo.

Razão: