DuranRobot: Danrop SET + Analise comparativa



  • Fala cambada, Danrop na área.

    Faz um tempo que venho estudando a fundo o MT5 e suas versões anteriores, com objetivo de entender melhor seus parâmetros e melhorar de forma considerável as estratégias automatizadas, os famosos EA ou Robôs. Se você não sabe do que estou falando recomendo olhar este outro post que fiz com o básico do básico sobre Robôs: https://forum.portaldotrader.com.br/topic/393/conc...

    Sou fissurado em analise de dados e fiz alguns cursos sobre Data Science e Data Mining, por isso utilizo ferramentas e conceitos de forma mesclada para fazer minhas analises. Porém o mais importante para um "Cientista dos Dados" são basicamente os dados rsrs E vamos falar deles aqui nesse post.


    Voltando o tema, nosso querido amigo e mestre @Rodrigo-Cohen, dividiu sua expertise com a gente e liberou um SET de sua autoria, o famoso 18 de Abril, que por sinal foi incrivelmente bem configurado. Como não sou bobo, comecei pelo SET dele e através que algumas analises, que considero imprescindível para qualquer um que for operar com robôs, consegui um belo ganho de Performance.


    Antes de chegar no SET propriamente dito, quando eu digo Performance, não me refiro simplesmente a mais lucro, mas sim em um equilíbrio de todos os parâmetros resultantes da operação do robô.

    Sendo assim não adianta aumentar o lucro, se você vai perder Z-Pontuação, por exemplo.

    O que nos leva a outro ponto, se você não sabe o que os resultados (ex: Z-Pontuação) significam, fica impossível analisar e buscar novos caminhos para melhorar um SET.

    Porém para explicar todos os paramentos resultantes do MT5 vou precisar de outro post. :) Em breve pessoal.


    Ainda sobre melhorias de Performance, não estou falando apenas da optimização, que dá um trabalhão, mas falo da lógica por trás da construção do SET, e por consequência da lógica da estratégia que foi automatizada.

    Entenda que algumas estratégia automatizadas são muito mais abrangentes, digo genéricas, e outras muito mais pontuais ou situacionais.

    Algumas estratégias genéricas chegam ao ponto de rodar o histórico de anos de um ativo e ainda se dar bem. Do outro lado, temos por exemplo o SET do @Ruy: Bom dia Duran, completamente situacional.


    Por isso é necessário um equilíbrio, a busca de harmonia entre o quão genérico ou quão situacional a sua estratégia automatizada deve ser. O SET, ou as configurações dessa estratégia, herdam essa necessidade de equilíbrio.

    Outro ponto que reforça esse trabalho de equilíbrio das estratégias e consequentemente do SET, é o fato de não podemos confiar cegamente nos dados que temos, por um simples motivo: existem divergências entre corretoras e plataformas.

    Mencionei no inicio do post, os dados são a base, a parte mais importe para quem se atreve a mergulhar de cabeça e encontrar novos caminhos. Exemplo prático: Você encontra um padrão porém com dados imprecisos, logo seu padrão pertence única e exclusivamente ou seu mundinho impreciso.


    Buscando uma analise mais profunda, utilizei algumas técnicas de engenharia reversa para poder analisar os dados que a plataforma MT5 recebe da corretora e posteriormente monta o seu gráfico bunitin de candles rsrs

    Então temos o seguinte Fluxo:


    Fiz esse processo para várias séries históricas de diversas corretoras que eu tinha acesso, o ideal seria conseguir o marketdata puro da Bolsa, mas como não estou nesse nível ainda, vamos deixar para o futuro.


    analise_01.jpg


    Aqui eu reconstruí o gráfico de variação de preço e volume de negociações, no período gráfico de 5 minutos, em um dia especifico qualquer. Na verdade analisei vários dias para saber se existia realmente inconsistência entre os dados.

    Nesse exemplo, a variação do preço e o volume são parecidos, mas não se engane existem diferenças, além disso as faixas de preço aonde as variações ocorrem, para minha surpresa são divergentes, apesar de estarmos olhando o mesmo dia e ativo. Porém isso não atrapalha muito, tanto faz em que faixa de preço está, o mais importante é a variação coincidir.

    Podemos concluir que esse é um ponto a favor da analise focada em equilíbrio de estratégias automatizas e seus respectivos SET’s.

    diversas_analises.png


    Depois de uma porrada de combinações e avaliações de cada um dos SET’s resultantes das minhas optimizações, focadas em equilíbrio, conquistei algumas coisas muito interessantes:

    1. Aprendi muito sobre a Estratégia que foi automatizada.
    2. Aprendi mais ainda sobre o Ativo em questão.
    3. Melhorei minhas habilidades de Data Science.
    4. Melhorei meu conhecimento sobre a plataforma: MT5.

    Por isso recomendo, se você vai utilizar estratégias automatizadas, você terá que estudar muito, porém, igual ao risco x retorno, onde maior o risco maior o retorno, mais estudo é é igual a mais conhecimento.


    Comparação dos SET’s


    Novamente, os set’s variam de pessoa para pessoa, nosso objetivo aqui é estudar e descobrir novos caminhos de aperfeiçoamento.

    Por isso, estude e utilize os SET’s principalmente para aprender e construir a sua lógica de funcionamento para cada estratégia automatizada, dessa forma você vai conseguir evoluir e melhorar seu SET, ao invés de ficar correndo pela internet buscando o melhor.

    Havia mencionado aqui no post que para comparar e analisar é preciso saber o que significam os resultados, futuramente trarei um tópico com essas explicações. Porém quero que fique bem claro:


    Eu AVALIO todos os resultados.

    Eu ACREDITO que nenhum deles deva ser ignorado.


    Afinal todos eles estão ali por um motivo, eles resumem os dados e mostram o que é importante analisar. Da mesma forma que um Indicador, obviamente indica uma informação relevante no seu gráfico.

    Porém como não temos o dia inteiro rsrs Vou falar apenas sobre alguns deles.


    Com os SET’s comparados lado a lado temos: Mesmo período gráfico (5MIN), mesmo ativo (WDO) e mesmo período de duração do teste (2013~2016).

    Sendo mais preciso: Barras e Ticks exatamente iguais.


    Voltando ao tema equilíbrio, eu utilizo períodos maiores para equilibrar SET’s mais genéricos.

    Acredito em algumas vantagens dessa forma de analise, optimização e equilíbrio:


    1. Não preciso olhar com tanta frequência o mercado afim de fazer optimizações.
    2. Prazo de validade do SET maior (Apenas suposição)
    3. Do lado da analise, padrões mais fortes de comportamento da Estratégia.


    Sendo assim vamos aos resultados comparados:


    Resultados.png

    Como mencionei, resumo básico sobre o que são os resultados.


    Fator de Lucro: Obvio, para cada R$ 1,00 investido, tenho retorno de R$ 1,66. Simples e prático, quanto maior melhor. Medida: Interessante acima de 1.

    Índice Sharpe: Basicamente ele avalia risco x retorno de um determinado investimento. Artigos interessantes para entender melhor aqui e aqui. Medida: Próximo ou acima de 0.50 | Perfeito 1.

    Lucro Liquido total: Básico para avaliações, é o que importa… o resultado financeiro.

    Média de Lucro e Média de Perda: Com essas médias é possível tirar diversas conclusões e regular outros resultados. Ex: Se você tem uma media de perda maior que de lucro, então você precisa ficar de olho no resultado do parâmetro: Porcentagem de Acerto.

    R.M. Capital liquido e R. M. Saldo: Esse tem uma pegadinha, desde o MT4 os rebaixamentos não estão bem claros, principalmente o Relativo e Absoluto, li diversos artigos e ainda não consegui entender direito. Porém o Máximo, ou Rebaixamento Máximo é simples, precisamos entender apenas o que ele quer dizer com Capital liquido ou Saldo.

    Saldo ou Balance: É o valor real de dinheiro que você tem na sua conta assim que suas posições são FECHADAS.

    Capital Líquido ou Equity: É a variação do dinheiro que você tem em operação apenas durante as posições ABERTAS.

    Ex.: Você tem R$ 1.000,00 na conta, logo tem R$ 1.000,00 de Saldo. Sabe quando você abre uma posição e toma aquele calor ? Sabendo inclusive que ele pode ultrapassar o seu Saldo de forma negativa ou positiva. Então, Capital Líquido ou Equity é isso, ele é dinâmico. Porém o único valor real de perda ou ganho será o seu Saldo assim que finalizar sua posição. Pouco importa se você tomou -1000 pontos de loss, a grosso modo se você não fechar a sua posição, você ainda pode recuperar e lucrar. rs ;) Desculpe pelo exemplo absurdo rsrs Liberdade poética.

    Z-Pontuação: Esse é bem interessante e eu gosto muito. Ele basicamente é a relação entre os trades, ou seja uma probabilidade dos trades repetirem seus padrões de ganho ou perda consecutivamente. Existe um calculo estatístico especifico, porém o mais importante a saber é que necessariamente precisa estar acima de -3.

    Quando o post sobre todos os resultados estiver pronto conversamos novamente sobre esse tema.


    Conclusão da Comparação

    Equilíbrio é o que manda. Quanto mais equilibrado os resultados, melhor.

    No final é uma eterna busca entre risco x retorno dentro de cada parâmetro resultante. As vezes você perde um pouco no rebaixamento porem ganha o dobro no resultado liquido.



    Observações sobre o Download do SET

    Estou colocando o SET para download, porém temos um pequeno problema. @Rodrigo-Cohen cantou a bola no portal e no grupo do facebook.

    Se muita gente usar o mesmo SET, com exatamente os mesmo parâmetros de entrada, todos esse exercito de robô pode acabar “pesando” essas entradas e inviabilizando as estratégias automatizadas por diversos motivos.

    Fiquei pensando em como resolver isso, pois queria que os SETs continuassem a funcionar e que pudessem ser compartilhados, assim cheguei em uma conclusão que pode fazer sentido.

    As entradas são controladas principalmente pelos indicadores do robô duran (HiLo e ST) e pelo parâmetro “Pontos para Entrada”.


    Podemos discutir duas coisas:

    1. Como compartilhar o SET: Caso sua optimização não mexa muito nos indicadores ou pontos de entrada, todos podem usar como base o SET do @Rodrigo-Cohen, que de certa forma foi sacrificado, o famoso boi-de-piranha. rsrs
    1. Como usar os SETS: Você gostou e quer usar o meu ou do @Ruy, que é muito bom por sinal. Sugiro que você mesmo começar a optimizar esses paramentos de entrada.

    Ou seja, seria interessante distribuir um SET INCOMPLETO, sem as configurações de entrada.


    Se você é iniciante pode usar o Boi-de-piranha do @Rodrigo-Cohen para começar.

    Caso você tenha alguma noção encontre suas melhores entradas.


    A ideia principal é que todo mundo possa utilizar o SET para estudar e criar as suas próprias variações. Quem sabe você não consegue melhorar ainda mais esses resultados? Se você não tentar, nunca vai saber. E depois, compartilha com a gente! rs

    Sendo assim a sugestão é: Baixe o SET e utilize como ponto inicial os paramentos dos indicadores do SET 18 de abril do @Rodrigo-Cohen, porém saiba que como tem muita gente usando, você invariavelmente vai ter que melhorar esses parâmetros para encontrar novas entradas e sair dessa multidão rssr

    Quem está criando SET’s poderia simplesmente não compartilhar mas eles, porém essa é uma solução para continuar compartilhando, sem inviabilizar o uso futuro do SET.

    Novamente, estou pensando no bem geral da comunidade e no futuro das boas configurações de robôs. ;) Download abaixo:


    Icones_Duran_sets.jpg


    Data Science e a Analise em busca de Equilíbrio

    Galera, a principio não conseguirei explicar “Como ou que Técnicas” utilizei, seria a mesma coisa que perguntar para um engenheiro mecânico com ele constrói um carro.

    Não falo isso por arrogância, mais Data Science, como o próprio nome diz é uma ciência e precisa de muito estudo através de diversas disciplinas correlacionadas. Porém quem quiser saber mais e conversar comigo posso ajudar indicando leituras ou cursos.

    O ponto aqui é mostrar outras formas de conseguir o tal equilíbrio que eu tanto falo.

    Uma comparação rápida e uma conclusão mais rápida ainda

    frequencia_alcance_lucro.jpg

    Esse gráfico mostra a frequência e alcance do lucro ou prejuízo durante todo o histórico de operação.

    Olhem como fica fácil perceber que o SET Danrop não arriscou mais do que o SET Cohen, em alcance, porém alcançou picos maiores de lucro.

    Porém com relação a frequência, apesar do SET Danrop ter alcance igual ao SET Cohen no prejuízo, a frequência com que ele bate na linha de referencia é muito maior.

    Olhando outros resultados, podemos medir facilmente, com apenas um gráfico, duas dimensões (Alcance x Frequência) muito interessantes, e que podem te dar informações valiosas para trabalhar um pouco no equilíbrio que o SET merece.

    Outra analise, outra conclusão e ideias muito maneiras.


    grafico_saldo_dia.jpg

    Lembra quando falei que um histórico maior dava mais força para alguns tipos de analise, então essa analise é uma delas.

    Esse é o saldo por dia de todo o histórico de dados, fica simples avaliar quais os dias com maior probabilidade de prejuízo, porém é sempre necessário olhar qual é a “amostra” ou quantidade de dias que foram utilizados para calcular o saldo. Nessa representação encontramos a força do resultado em uma escala de cores, quanto mais escuro mais dias foram necessários para gerar esse saldo.

    Quanto maior o histórico, maior a quantidade de dias e melhor será a analise sobre o saldo dos dias. Tem alguns outros detalhes técnicos e estatísticos, mas como eu disse é demais para esse post.

    Comparando com o SET Cohen, descemos de 9 dias com saldo ruim para apenas 6 dias. Foi através dessa analise que conseguir ideias para seguir buscando novos caminhos para optimizações.


    Conclusão sobre Analises e Data Science

    Como eu disse, é apenas uma pequena fração do que eu faço, quero sempre analisar melhor meus dados, justamente para conseguir brincar com eles e extrair o máximo de ideias e caminhos possíveis.

    Porém, não é sempre que se chega em um caminho descente, a maior parte do tempo você simples não consegue achar nada, perde-se muito tempo ajustando e criando representações, e no final… não vem nenhuma ideia.

    Esse inclusive é o conceito de Data Mining, você está literalmente minerando os dados, da mesma forma que um minerador que gasta tempo e energia e as vezes volta para casa com ou sem uma pequenina pepita de ouro. rs


    Valeu galerê … espero ter ajudado de alguma forma.

    Fuizzzzzzzzzzzz




  • Muito bom! Li rapidamente, mas farei outras leituras mais detalhadas! Parabens pelo trabalho!





  • Muito bacana seu estudo Danrop, infelizmente tenho que estudar muito para saber otimizar dessa forma, mas valeu pois várias informações mais simples que passou já acrescentou muito. Obrigado.@Danrop



  • Excelente post Danrop! Assim que eu terminar de otimizar o meu vou postar aqui o set. Eu também prezo pela "longevidade" do set.


  • TNT

    Muito legal ver um post puxando pra esse lado de data science. Bom demais. Sei que voce nao gostaria de se estender e, entendo, caso seu processo seja propriedade intelectual e nao queira ou possa compartilhar. Mas, se nao for pedir muito, poderia citar as tecnicas que usou pra otimizar os robos, e chegar nos sets melhorados? Eu nao sou trader, mas gosto dessa parte de analise de dados e otimizacao de modelos, que era meu trabalho ateh ha pouco tempo.

    - Voce conseguiu parsear as operacoes de um relatorio de backtest? Eu consigo pegar as orders e deals, mas transformar isso numa serie de trades vai ser mais complicado (tem que lidar com RP, viradas de mao, etc);

    - Eh possivel obter todo o historico OHLC de um ativo a partir do MetaTrader 5. Tem um script pra isso na comunidade MQL5. Pelo que entendi, voce parseou os arquivos HCC de historico, certo? Usou alguma ferramenta, ou criou seu proprio parser?

    - Que tecnicas usou pra tentar minimizar as chances do set estar com overfitting. Como analisou a probabilidade do set performar no futuro? Fez muitos testes out-of-sample, ou fez alguma Walk Forward Analysis (ou Matrix)?

    - Avaliou o setup por Monte Carlo, ou alguma tecnica que permita inferir as faixas potenciais de lucros e perdas possiveis, e suas respectivas % de chance de ocorrencia?

    - Pelo pouco que brinquei com backtests, o Duran soh apresenta resultados a partir do final de 2014. Concluiu alguma coisa sobre valer a pena ou nao analisar estes periodos? Obteve alguma correlacao entre, digamos, volatilidade e performance?

    - Teria alguma literatura sugerida sobre o assunto? Estou lendo um monte de livros e artigos. O livro do Robert Prado e do Kevin Davey sao otimos nessa parte de analise de trading systems. O do Ernest Chan (Quantitative Trading) tambem traz um monte de coisas boas e ainda foca um pouco na parte "business" do assunto.


    Obrigado,

    Abs,

    Rafael Del Rey



  • @Trader60

    Várias perguntas rsrs

    Sobre o processo, não é propriedade intelectual não. Achei que era muito extenso para o post e para a proposta dele.

    Faz o seguinte, pega o meu email e podemos conversar melhor, estava esperando alguém com essa pegada para poder conversar rsrs

    danrop.23@gmail.com

    Obrigado,



  • @Danrop, fiz algumas otimizações e com base no seus parâmetros realmente cheguei a um z-score melhor (por volta de -4 para o período desde o início do ano), porém com um DD bem maior, o que gerou um profit factor pior. Isto, comparando com o set que estou usando atualmente em conta real, baseado no do Cohen. Poderia falar um pouco sobre a importância que você vê no z-score e a relação dele com o DD e com o tamanho do período analisado?

    Parebèns de novo pela iniciativa e obrigado por dividir as informações conosco.


    Daniel Carvalho



  • Danrop, excelente o estudo comparativo!

    Tenho uma dúvida super básica. O Robô Duran não possui número mágico para configurar. Então, seria possível usá-lo em mais de um ativo diferente sem causar conflitos na execução das ordens entre eles?

    Obrigado!




  • @Trader108

    Magic Number só existe no MT4. No MT5 não é possível usar mais de um EA no mesmo ativo (a não ser que os dois EAs tenham sido implementados para funcionarem assim, mas isso seria bem complexo, tanto que até hoje não vi nenhum que assim funcione).



  • Entendi. Mas se for o mesmo robô em ativos diferente, há algum problema? Exemplo: usar o robô Duran no dólar e no índice ao mesmo tempo daria algum conflito?



  • Olá @danielcrj, @Renato, @RodrigoFriburgo e @rtoliveira,

    Obrigado pelos elogios de todos, montei o post para a comunidade imaginando que poderia ajudar de alguma forma.

    Sobre 2 Robôs no mesmo ativo @danielcrj respondeu, agora sobre a comparação entre Z-Score e DD, como eu disse estou preparando um post com todos os parâmetros resultantes do Strategy Tester. O que você deve buscar @danielcrj é que você não pode simplesmente comparar um em detrimento do outro, o conjunto e o equilibro de todos os parâmetros é mais importante que a comparação entre 2 parâmetros isolados.

    Falando sobre o Z-Score, ele é uma indicação de desvio da dispersão sobre sigma, sendo mais simples, é quase o básico sobre desvio padrão, ele tenta mostrar qual a dispersão ou variação que existe na correlação entre os trades. Quanto menor, mais correlacionados eles estarão. Como eu comentei, valores abaixo de -3 tem uma boa performance e você pode ficar feliz e satisfeito, porém acho que quanto mas puxado melhor, pelo visto é uma particularidade dos dados que estamos trabalhando, ou seja, do mercado financeiro. rsr Pelo menos nos testes ele vem mostrando mais equilíbrio quando é mais "forte".

    Fuizzz



  • @Renato. Aí tudo bem... nenhum problema... Em ativos diferentes você pode rodar o mesmo robô ou diferentes robôs.. Tanto faz...



  • @danrop. Otimizei set baseado no seu e, pelo menos no backtest, ficou sensacional. Já está na Real, vamos ver o desempenho.... Vou atualizando aqui...



  • @danielcrj, Muito obrigado!



  • @danrop, Na prática do backtest do MT5, faz diferença o z-score ser positivo ou negativo? Ou seja, um resultado com z-score -4 é tão bom quanto um +4 non caso dos outros resultados serem iguais?



  • @danielcrj,

    Dentro do MT5 faz total diferença. acima de +3 a logica dos trades não tem relação nenhuma com os próximos trades a serem executados pelo algoritmo. Diferente de um resultado -3, onde os próximos trades podem ter 99% de relação com os resultados do seu teste.


    ;)



  • @danrop, agora me enrolei com a sua explicação... Mas no fim das contas, é melhor que cheguemos a números negativos abaixo de -3 correto?

    @Danrop disse:

    @danielcrj,
    Dentro do MT5 faz total diferença. acima de +3 a logica dos trades não tem relação nenhuma com os próximos trades a serem executados pelo algoritmo. Diferente de um resultado -3, onde os próximos trades podem ter 99% de relação com os resultados do seu teste.


    ;)


  • Isso mesmo @danielcrj. Abaixo de -3! ;) Desculpe se ficou confuso!



  • Aviso ao pessoal que está usando o meu SET como base:

    Amanhã dia 15, especialmente dentro de uma quarta-feira, estou aumentando o numero de lotes.

    Segundo as minhas analises é um dos melhores dias desse SET. ;)

    Vamos fazer dinheiro cambada, afinal estamos aqui para isso.




  • Pegou alguma operação hoje @Danrop ? Aqui ele ficou na preguiça.


Entre para responder
 


O Portal do Trader não se responsabiliza pelas informações e opiniões veiculadas neste fórum, sendo elas de autoria individual de cada participante. Vale ainda ressaltar que investimentos em mercado de renda variável possuem riscos, ganhos passados não garantem ganhos futuros, e a decisão final e responsabilidade sobre cada operação é de cada investidor, devendo ser tomada individualmente.
© 2018 Portal do Trader. Todos os direitos reservados.

Parece que sua conexão com Fórum Portal do Trader caiu, por favor aguarde enquanto tentamos reconectar.