Trading System de Trend Following Completo

“Why wasn’t I doing well when I was groomed to be successful?” I decided it was now time to be successful” Marty Schwartz – Interview from Market Wizards.

Cumprindo o prometido no ultimo post havia falado de um projeto que queria lançar de um sisteminha bem simples onde a ideia era demonstrar a validade da regra de ouro de trend following que é cut your losses short and let the profits run.

Discuti aqui no post “No que voce acredita” sobre as crenças do trader. O ponto central da discussão é que não existe verdade absoluta no mercado, mas cada um opera aquilo que acredita. Tem uns que acreditam que é melhor comprar dips, outros strength, outros range, outros tendência. No final de contas o que vai definir se um trader é bem sucedido ou não é a consistência em seguir seu sistema de crenças, caso seja estatisticamente lucrativo, logico…

Neste mais de 40 posts no blog eu recheei aqui sobre as minhas crenças e está na hora de colocar a teoria na pratica. Então vamos ao sistema completo que desenhei este final de semana baseado em minhas crenças sobre o mercado.

O sistema procura operar o índice de ações da Australia o XJO ou ASX 200. É a versão do Ibovespa da Australia. O conceito é um pouco diferente do Ibov, pois o Ibov inclui as ações por liquidez e o ASX 200 inclui por capitalização, enfim não é objetivo discutir isto aqui.

As características do sistemas baseados nas crenças são as seguintes:

  • O sistema segue tendência
  • O sistema compra rompimentos (break out), ou seja buy strength
  • O sistema corta as perdas Rápido
  • O sistema deixa o lucro Fluir
  • O sistema tem uma restrita regra de gerenciamento de risco, não arriscando mais que 2% do capital
  • O sistema foi back tested
  • O sistema tem uma expectativa positiva

Agora vamos para as regras:

O sistema só opera longo (comprado).

Regra de entrada: Compra o break-out no intra-day do ponto mais alto dos últimos três dias anterior ao breack-out. Para que esta regra seja cumprida, todo dia antes do mercado abrir uma order buy-stop é colocada na boleta, pois caso o nível de preço seja atingido no intraday estaremos dentro.

Regra de saída: A única saída do sistema é um trailing stop de 1.8 x ATR(14). Caso o mercado mova contra a posição mais do que 1.8xATR(14) estou FORA. Como é um trailing stop a medida que a posição move a favor do trade estamos no trade. O calculo é feito ao final de cada sessão do ponto mais alto do intra-day e ajustado no dia seguinte.

Veja no exemplo abaixo na linha verde como funciona o trailing stop. Como disse se o preço move a favor o stop vai junto, nunca contra.

Como bom sistema de trend following este NAO tem profit target, pois o lema é surfar na tendência até ela “acabar”.

Conceito de tendência para este sistema: Como em qualquer sistema de trading objetividade é essencial. No caso, como é um sistema de trend following, precisa se definir início e fim de tendencia. Então, o início da tendência é o break-out de três dias e o fim quando a posicao move 1.8 ATR(14) contra o trade.

Money Management: O sistema ariscará 2% do equity (capital) por trade usando como position size o Stop de 1.8xATR(14).

Time Frame: O time frame é o diário.

Fiz o back tast usando o Amibroker e como o sistema foi bem simples o codigo do sistema tem 9 linhas de codigo que segue aqui:

// Signal buy on the bar where the 3 day break occurs
Buy = Cross( C, Ref(HHV( H, 3), -1));
Sell = 0;
// Use trailing stop of ATR
TrailStopAmount = 1.8 * ATR( 14 );
Capital = 5000;
// Risk Management of % of Capital
Risk = 0.02*Capital;
// Position size limit loss to max of a % of capital
PositionSize = (Risk/TrailStopAmount)*BuyPrice;
// Exit rule is solely the trailing stop
ApplyStop(stopTypeTrailing, stopModePoint, TrailStopAmount, 1 );
// trade on same bar of signal on the last 3 day break out
SetTradeDelays( 0, 0, 0, 0 );
BuyPrice =  Ref(HHV( H, 3), -1);

A idéia aqui é paper trade o sistema usando como instrument o CFD do ASX 200 Cash (mini). Como o sistema usa um capital de 5,000 será possível. Como a margem do contrato é muito baixa o sistema tomará 139 trades no periodo de cerca de 10 anos.

Uma media de 13,9 trades por ano ou 1 por mes. Um sistema bem calmo com poucos trades. Espero que de o próximo sinal logo para podermos demonstrar.

Os principais indicadores do back test são

Retorno medio anual composto: 13.23%

Retorno total 10 anos: 248%

MaxDD: 3.51%

CAR/MAXDD= 3.77

% winners: 58%

% losers: 42%

Numero de trades: 139

Numero de medio de Velas: 12

Numero medio de velas de trader vencedores: 17

Numero medio de velas de trader perdedores: 5

Maximo perdedores consecutivos: 3

Maximo vencedores consecutivos: 10

Bom… não é um holly grail, mas decentemente bom para comecar a operar e provar o ponto principal de um sistema de trend following. CUT YOUR LOSSES SHORT AND LET YOUR PROFIT RUN.

Não é o intuito deste desafio provar um sistema e sua validade estatística. Mesmo porque o back test foi feito sem tecnicas de walk forward muito menos  monte carlo simulation ou coisas do genero. O ponto principal é focar no gerenciamento de risco e em cortar as perdas e deixar o lucro fluir.

Manterei o máximo que puder o sistema atualizado aqui com os traders realizados. Voce mesmo pode acompanhar voce mesmo na sua plataforma.

A administração do sistema é bem simples. Precisa todos os dias quando o mercado fechar ajustar os Stops e colocar as ordens de Stop Buy de entrada quando se esta fora de trade.

Atualmente o sistema esta em um trade com o Stop em 4898. Assim que for stopado vou diariamente acompanhar para entrar no próximo trade e postar aqui atualizações.

O único inconveniente do back teste é que  sistema foi testado no XJO a vista e a operação será no CFD que é negociado 24h por dia e o after hours pode dar uns soluços que não ocorre quando o mercado esta aberta na Australia. Exemplos extremos do flash crash. Como não tinha a base de dados do CFD (espelho do indice futuro) usei o a vista mesmo. Não vejo isto como um grande empecilho. Espero que seja uma boa jornada e também  espero que aprendemos a sermos bons seguidores de tendência com este desafio, pois o bom seguidor esta mais preocupado a seguir as regras do sistema e reagir aos mercados quando eles reagem e não tentar entender porque o mercado esta movendo. Segundo Ed Seykota isto deve ser deixado para as pessoas inteligentes explicarem, pois os trend followers seguem tendências, ponto final.

Vou aproveitar o desafio para recapitular conceitos como gerenciamento de risco, position sizing e etc… pode perguntar aqui caso algo não ficou claro.

Nota Importante: O artigo acima não pode ser em hipótese alguma considerado como uma recomendação de investimento. Velaepavio é apenas um blog de trading que me permite  compartilhar meus pensamentos e opiniões pessoais. Velaepavio não é um agente de investimento registrado e autorizado a dar conselhos sobre investimento. O artigo não leva em consideração circunstancias financeiras pessoais dos leitores. Lembre-se que investir e operar no mercado é arriscado, podendo ocorrer perda significativa de capital num montante igual ou maior que o investemtento inicial, caso instrumentos de alavancagem sejam usados. O artigo é propriedade intelectual de velaepavio e apesar de poder ser compartilhada livremente, com o consentimento do autor, esta sujeita a leis de direitos autorais internacionais e locais.

58 thoughts on “Trading System de Trend Following Completo

  1. Muito bom da sua parte compartilhar um TS desse tipo, que, segundo o Tharp, “fits you”!!

    Também estou estudando para terminar o meu TS, por enquanto estou concentrado naquela parte do MM que, eu acredito ser o diferencial na hora de conduzir as operações (não tanto um sinal de entrada, basta apenas um com expectativa positiva).
    boa sorte pra vc!

    • Fala Joao,

      Com certeza MM e position size eh a coisa mais importante. O sistema testado por exemplo eu testei com stop atr position size e com position size fixo. A diferenca foi gritante. isto usando o MESMO sinal de entrada e saida. Preciso inclusive a fazer um post sobre isto.

      Abraco

      Vela

      • Atualizando que o sistema saiu do trade no dia 12/4 e agora pra segunda o break out eh em 4919 e o Stop em 4837.

        Corrigi a formula do Amibroker pois a funcao built in fixa a no ATR da entrada entao eu customizei a programacao pra tornar o stop ATR variavel. Isso ate melhorou o resultado do sistema.

      • position size fixo? Seria sempre alocar uma % fixa em cada trade?

        no livro Trading Game (algo assim) ele fala sobre isso, mas queria ter a certeza.
        obrigado.

  2. Fala Joao,

    O que eu quis dizer por position size fixo seria sempre comprar 100% do capital ou uma quantia X. Por exemplo sempre comprar 100 acoes.

    Isso nao eh bom money management pois dependendo da volatilidade do mercado a perda pode ser grande e o risco relativo dos trades variam muito.

    Entretanto usando uma estrategia de position size mantendo o RISCO fixo o resultado de um mesmo trading system pode ser gritante. Vou escrever um artigo sobre isto. Nao so o resultado melhora como a relacao risco retorno. Usando O MESMO sistema com todos os sinais de entrada e saida so mudando o MM.

    Valeu

    Vela

    • Olá Vela. Interessante esta sua colocação. Você fala do Fixed Ratio do Ryan Jones? Não conhecia este outro lado deste MM. Você diz em relação a estratégias de trend following que o risco é maior? E se misturar o Fixed Ratio Ryan Jones juntamente com a volatilidade, como por exemplo se for muito volátil, usar um menor lote, e se for pouco volatilidade, em vez de usar um lote maior, se limitar ao Fixed Ratio? O que acha?

  3. Olá VeP,

    Vc comparou com a performance do B&H? Vc está operando no à vista o que seria um ETF?. Seria interessante também vc fazer os testes no CFD e postar aqui.

    No mais, os critérios que vc utilizou estão corretos e coerentes com as “crenças” que vc vinha apresentando até aqui no blog. A base é esta mesmo.

    Abs.

    • Fala Otavio,

      Eu tenho a base de dados somente do A vista que tem um produto CDF cash que eh negociado 24h e que eh tipo um espelho do a vista.

      O custo de operacao eh bem baixo, nao tem corretagem e o spred eh de 1 pip no horario do pregao e cerca de 2 a 5 no after hours o que torna possivel operar com um capital bem baixo (e.g. 5000) e a liquidez eh bem alta. Eh o CFD mais negociado na Australia.

      Com certeza estou sendo fiel as minhas crencas neste sistema. Atualmente estou lendo o How to Trade Stock do Jesse Livermore e tem falado muito ao meu coracao.

      Especialmente a seguinte citacao:

      “… the fruits of your success will be in direct ratio to the honesty and sincerity of your own effort in keeping your own records, doing your own thinking, and reaching your own conclusions. You cannot wisely read a book on “How to keep fit” and leave the physical exercise to another.”

      BINGO!

      O livro foi publicado em 1940, mas eh valido hoje.

  4. Pingback: Trend Following claro e cristalino « Velaepavio's Blog

  5. Pingback: Um Trade Um Perdedor « Velaepavio's Blog

  6. Olá,

    Eu acho que dá pra melhorar esse TS.

    Acho que a janela de breakout deveria ser maior para evitr perdas em momentos de congestão, e também acho que o trailing é meio curto. Apesar que se vc stopar pelo trailing vc reentra novamente pelo rompimento de 3 barras certo ?

    Pense na possibilidade de operar vendido, geralmente aumenta bem a rentabilidade do TS

    Abraços

    • Fala Roberto,

      No momento estou mantendo os parametros, pois estou satisfeito para lancar o desafio de seguir um sistema de trend following.

      Pensando ja na oportunidade de ir short eu desenvolvi no mesmo um ativo um sistema pra ir short.

      Ate agora tenho 3 trades longos (3 perdas) e 3 trades short (2 ganhos e uma perda)

      Expextancy do Long – 0.58
      Expenctancy no Short 1.0

      Ate agora estou satisfeito com os resultados e continuo seguindo os dois e depois que tiver pelo menos 10 trades em cada vou avaliar se o out of sample com trades reais difere muito do Back Test e ai faco alguns ajustes se achar necessario.

      Sim se o sistema for estopado ele reentra no break out no dia seguinte. Nao no mesmo dia. Para dar uma chance pro mercado consolidar e quebrar novamente.

      No Back test 1.8 ATR era a melhor medida para deixar o lucro fluir e sair caso o mercado movesse contra rapido.

      Valeu pelas dicas

      Abraco

  7. Grande Vela,

    Concordo com o Denadai, acho que vc precisa pensar em ser um pouco mais agressivo nesse TS, para melhorar o CAR. A nossa selic está em 12%, então tome como parâmetro a taxa livre de risco, menos que isso eu pessoalmente não tenho motivos para investir em trading systems… Qual é a taxa livre de risco ai?

    Pelo que pude testar o valor close para o HHV melhorou a performance e diminui o DD. Aconselho a vc aplicar filtros para evitar entradas qdo o mercado está em tendência de baixa, por ex. uma simples MA C,21 diminuiu em quase 30% o num. de trades mantendo a mesma performance do seu TS. Eu costumo usar multiple time frames para definir tendência.

    Seria interessante vc ir contando a evolução do seu desempenho, tipo um portofolio update mensal ou como relatorio hedge fund hehe (se vc já falou q ia fazer isso desconsidere). Assim vc encoraja pessoas como eu a fazerem o mesmo (apesar de eu ser daytrader convicto).

    Abs.

    • Fala Otavio,

      Acho que o merito principal desde sistema que desenvolvi eh realmente viver na pele o seguir um sistema de trend following. Sem exitar. Isto eh o mais importante no momento. Estou bem tranquilo quanto a isto, pois eh o meu proposito no momento. Eu fiz um acordo com o mercado em seguir o sistema, pois estou satisfeito com os resultados do Backtest. Acho dificil ficar colocando relatoriozinho de desempenho, mas de tempos em tempos espero colocar um post explicando a evolucao do projeto.
      No momento estou operando o sistema longo que coloquei aqui e estou com 3 perdedores. O que eh normal no sistema.
      E no short, desenvolvi, mas nao postei aqui a explicacao, estou com 2 vencedores e 1 perdedor. No geral os dois sistemas estao no positivo de retorno /risco o que me da ainda mais conviccao a segui-los, pois com 4 perdedores e 2 vencedores estou no positivo, enquanto que o mercado continua volatil e de lado meio que caindo. E eu nao to nem ai pra fundamento e nao importa pra mim se o mercado sobe ou desce.

      Aqui na Australia a taxa “selic” eh de 4.75%aa, mas consegue aplicacao aplicacao facil de 6% a.a. em renda fixa (tipo CDI).

      Depois que tiver perto 10 trades em cada sistema vou poder fazer uma melhor analise do sistema e mudar parametros se necessario, ou manter os atuais e ser mais agressivo no position sizing. Estou arriscando 1% do capital, mas pelo back test da pra arriscar 2 a 3% e o DD ainda fica menos que 10%.

      Eh isso ai

      Obrigado por participar

      Abraco

      Vela

  8. A vantagem de se operar short é que a correlação tende a ficar ainda mais baixa e passamos a nos importar menos ainda com o movimento do mercado…

    Mas se vc está satisfeito com os resultados simulados a questão é pessoal do perfil de cada um, até pq vale para adquirir experiência como vc mesmo deixa parecer se importar mais. A questão mesmo é que qdo estamos falando de ourself money a coisa é mais em baixo heheheh

    A taxa aí até que não é ruim. Tendo em vista que a do brasil é a maior do mundo… bolsa aqui tende a ficar em segundo plano, ou seja, dificulta a liquidez e faz a gente sofrer.

    Depois descreva seu sistema short pra gente.

    Abs. e sucesso.

    • Concordo. No Brasil com uma Selic a 12% ao ano. Acho que melhor nao arriscar em bolsa. 12% eh o retorno historico da bolsa em paises desenvovidos.

      Mas no mundo de trading system acho que devemos buscar resultados extraordinarios de market wizard.

      Lembro quando trabalhei no mercado financeiro e fiz simulacoes e a renda fixa batia a bolsa de 1990 a 2000, by far.

      So foi em 2003 que a bolsa ultrapassou, mas ainda acho que RF nao esta muito atras no acumulado.

      Abraco

      Vela

      • Também acho. Tudo é uma questão de risco/bnefício. Não vejo vantagem em fazer um b&h para obter 1.2pp acima da RF… Com TS a gente se torna mais livre para definir risco e retorno. Isso é o que faz toda diferença pra mim.

        • Pra mim o retorno minimo seria 8.87% aa, pois minha hipoteca custa 7.1% e minha taxa de imposto marginal eh de 20%. 8.87 = 7.1/(1-0.2)

          Isto porque o dinheiro que economizo colocando o dinheiro na hipoteca eh tax free.

          Se o sistema da um CAR de 13% e com um CAR/MDD de 2.3 acho interessante correr um pouco de risco. A Medida que ir diminuindo minha divida e aumentando meu capital posso ser mais agressivo no meu position sizing.

          Valeu

          Vela

  9. VeP,

    Tem um erro na sua formula. Vc está comprando a preço de breakout e o sinal está considerando preço de fechamento.
    O mais realista seria Buy = Cross( H, Ref(HHV( H, 3), -1)); Ou Buyprice= Close;

    Houve 49 casos em que ocorreu o breakout e a barra de compra não fechou acima do breakout. Ou seja gerou sinais falsos. Esse erro nos parametros de preços é bem comum, muito cuidado.

    Isso certamente influenciou na performance do TS.

  10. VeP,

    Nossa, foi mal, o último post foi inteiramente dedicado ao erro na fórmula… desatenção minha. Sorry. Mas vc acabou se explicando muito hehe

    Eu gosto de ficar vindo no seu blog e ficar lendo posts passados e aleatoriamente pra tentar puxar algum assunto com vc, daí eu comento de forma não cronológica. O nível no brasil em relação a trading mecânico é bem baixo, é díficil arrumar alguem pra conversar eheh. Os poucos q tem administram hedge funds ou estão interessados em vender suas estratégias, aí complica.

    Eu estou pensando em começar a desenvolver uma estratégia diária mas minha opinião é que acho bastante complicado vencer o mercado quando maior o prazo que se opera, pois vc corre maior risco de estar obtendo retornos passivos (mais perto da eficiencia do mercado) e não retornos fruto do poder preditivo em si da estratégia.

    Mas sobre o hindsight bias q a formula estava gerando, vc podia analisar o intraday nas barras que o high rompesse o breakout mas que depois inverteu e fechou abaixo e comparar com o padrão do intraday das barras q efetivamente fecharam acima do breakout. De repente vc consegue sair na reversão do intraday com um stop loss curto, sem perder muito.

    Como eu mencionei acima, eu testei no IBOV desde 1994 e foram 49 casos de sinais falsos se vc conseguir sair rapido desses 49 casos no intra pode ser que a performance não tenha tanta perda assim. É uma idéia…

    Abraços.

    • Fala Otavio,

      Eu tinha respondido estes topicos acho que deu um pau e perdi as respostas.

      Entao devido a ter cometido o erro no back test eu testei sair no close caso o C<O. E no final o sistema piorou.

      Chequei isoladamente os trades usando o trailing e ficaram praticamente no break even e se saisse com um stop no close ficaram negativo, por isso o sistema piorou.

      Entao recolvi operar e comprar todos os breaks.

      Abraco

      Vela

  11. A idéia é mais ou menos esta. Só que aqui está considerando o intraday de todas as barras dentro da posição. Vc pode deixar o crtiério do C<MA (30) soh para o intraday da barra do breakout usando valuewhen ou fazendo looping. Acontece que fiz isto mas a performance não ficou boa. Da uma testada nessas hipóteses. A diferença é que ao contrário do que vc tentou fazer de acordo com o post do "trade perdedor" aqui vc teria um critério mais objetivo.

    TimeFrameSet( in15Minute );
    IntradayMA= MA(C,30);
    TimeFrameRestore();

    Buy = Cross( H, Ref(HHV( C, 3), -1));
    BuyPrice = Ref(HHV( C, 3), -1);
    BuyDate = ValueWhen(Buy,DayOfYear(),1);
    Sell = TimeFrameExpand(Close<IntradayMA,in15Minute);

    Eu mudei o valor do HHV para close.

  12. Solicitação de contribuição.
    Eu comecei a estudar a linguagem do AMIBROKER (AFL). Comprei o livro do Howard mas estou tendo alguma dificuldade para compreender o processamento do programa (por ex., eu teria maior facilidade de visualizar o processo de operação do seu “sisteminha” se tivesse uma maneira de ir “rodando” o programa e visualizando passo-a-passo o que está acontecendo. Em relação ao sinal de compra (BUY) é relativamente fácil, mas em outras situações não me parece tão claro). Existe alguma maneira de visulaizar o que o sistema está fazendo passo-a-passo, na medida que roda o programa (O seu “sisteminha”, por ex.)?

    • Fala Edilson,

      Se eu entendi o que vc quer acho que a melhor forma eh primeiro rodar seu Back test depois com o resultado dos trades da um clique direito e selecione “show arrows for actual trades”. Depois vai no grafico e tera setas de compra/ venda short/cover dependendo dos regras do seu sistema. Depois use a funcao BAR REPLAY e assista o filminho do seu sistema.

      • Caro VeP,
        Grato pela contribuição. É quase isso, sendo que um pouco mais detalhado. Por ex., se eu tiver uma função que especifique em seu corpo “for ( i = 2; i < BarCount; i++)", eu gostaria de ver cada valor de "i" durante o processamento da função até o final.
        Esse exemplo está no programa da pág. 258 do livro "Introduction to Amibroker" do Howard B. Bandy.
        Grato pela paciência.

        • Acho que a melhor forma eh usar a funcao EXPLORE e adicionar uma coluna chamando a variavel que quer analisar. Depois so copiar e colar no Excel se quiser analisar mais minuciosamente

  13. VeP,
    Se permite, agora uma visão diferente sobre a quantidade de ações (Position Size). Eu calculo a quantidade dividindo o percentual do capital de investimento em ação (Risk da fórmula) pela diferença entre o preço de entrada (BuyPrice) e o Stop de entrada (TrailStopAmount). No seu sistema esse cálculo está diferente…..

      • VeP,
        Desculpe, mas acho que vc não entendeu o meu questionamento. Vc calculou a quantidade de ações (tamanho da posição) dividindo o percentual do capital que você está disposto a arriscar na operação pelo preço do stop (TrailStopAmount) e multiplicou pelo preço de entrada na operação. Na minha maneira de entender o tamanho da posição a operação correta deveria ser a divisão do percentual do capital que estamos disposto a arriscar pela diferença entre o preço de entrada e o stop (TrailStopAmount), ou seja, a divisão do capital que estamos disposto a arriscar pelo risco por ação.

  14. Ola Edilson,
    Agora eu que nao estou te entendendo.

    O tamanho da posicao que calculo eh exatamente o trailstopamont (diferenca do ponto de entrada e saida) no Caso 1.8 ATR.

    O calculo da posicao eh RISK/TRAILSTOPAMOUNT sendo o risco 2% do capital e o TRAILSTOPAMOUNT a quantidade de pontos que o meu stop esta da entrada.

    A multiplicacao pelo preco de entrada eh pra saber o tamanho da posicao em $. Que eh assim que o software le a funcao de position sizing.

    Esta claro?

    Abraco

    Vela

    • VeP,
      Por favor, entenda os questionamentos da melhor maneira possível. A intenção sempre é o esclarecimento e NUNCA a depreciação.

  15. VeP,
    Eu gostaria de incluir o cálculo da volatilidade histórica no gráfico do AMIBROKER, utilizando o desvio padrão do logaritmo da variação de preço. Vc poderia me indicar onde encontro essa fórmula?

    • CaraCAS !!!! Loga oque?

      Falando serio. O Amibroker tem uma biult in function para isto.

      Melhor coisa eh usar o help do Amibroker mesmo.

      Pra plotar use a funcao.PLOT ();

      Valeu

      Vela

      • VeP,
        Você quer dizer que o AmiBroker tem uma função para calcular a volatilidade histórica conforme eu estou querendo? Preciso somente procurar no Help ? A partir do encontro da função, eu precisaria somente plotar no gráfico [uso da PLOT()] ?

        • Sim Edilson existem as funcoes de LOG e de Desvio Padrao.

          O que tem que fazer eh criar uma terceira variaval, a sua.

          Exemplo

          Funcao floriano = Log ( Desvio Padrao(de algo que esta querendo));

          Dai eh so usao o resultado da sua equacao e plotar.

          Plot (Funcao floriano);

  16. VeP,
    Tentei fazer o cálculo da seguinte maneira:

    //Calcula a volatilidade histórica com base nos preços de fechamento de cada período (total de 21 períodos).
    VolatHist = StDev(log(Close/Ref(Close,-1),-21))*sqrt(252);
    //Média simples de 21 períodos da volatilidade histórica
    pMAVolatHist = MA( VolatHist, 21 );
    //”Plotar” as duas linhas no gráfico
    Plot(VolatHist);
    Plot(pMAVolatHist);

    Não funcionou. Eu teria que calcular o log da variação de preços de cada par de dias, depois calcular o desvio padrão desse conjunto de dados?
    Grato.

    • Fala Edilson,

      Esta usando a funcao plot errado. Olha no help do Amibroker. Que alias acho a melhor fonte de informacao. No Livro do Brandy tambem tem uma parte que esplica a funcao plot.

      A Sintax eh a seguinte Plot( array, name, color/barcolor, style = styleLine, minvalue = {empty}, maxvalue = {empty}, XShift = 0 )

      No proprio Amibroker tem alguns exemplos.

      • VeP,
        Valeu!
        Além da função PLOT(), havia um erro na minha fórmula que pude corrigir consultando o HELP.
        Obrigado.

  17. VeP,
    Eu tenho operado com base nos sistemas propostos pelo Leandro da Leandro & Stormer (www.leandrostormer.com.br). Os sistemas são seguidores de tendência e operam o “rompimento” de resistência e a “correção” (ou pullback) do movimento de alta.
    Como estou aposentado, tenho tempo disponível e gosto de operar no mercado de ações, me propus a estudar a linguagem do Amibroker e traduzir as propostas dos sistemas de operação para a linguagem do Amibroker e testá-lo. Não tem sido fácil, mas tenho evoluído.
    A minha pergunta seria a seguinte: você poderia opinar sobre o sistema (a minha “tradução”) que tenho produzido na linguagem do Amibroker? Se for possível, a proposta seria lhe enviar a descrição do sistema de operação proposto e como “traduzi” na linguagem do Amibroker.
    Grato.
    Edilson

    • Ola Edilson,

      A resposta eh nao. Fora do escopo do Blog e porque estou aqui.

      Dito isto acho a parte mais importante em trade eh operar um sistema que tem a ver com sua personalidade. Pois desta forma fica mais facil de operar sem hesitar muito e superar as barreiras psicologicas. Uma forma de ter uma previa se da pra seguir ou nao eh ver os resultados do BackTest (BT). No caso do L&S deve pedir os resultados do BT e ver se aguenta o CAR/MAXDD, Perdedores consecutivos, Maximo tempo em DD. Acho que deve procurar um consultor de Amibroker se quiser uma opniao no sue sistema.

      Abraco

      Vela

  18. Pingback: Lista de todos os posts do Velaepavio « Velaepavio's Blog

  19. Olá Vela,

    Como vai? Espero que tudo bem. Hoje dei mais uma passeada pelo seu blog e achei esse seu sistema interessantíssimo.

    Sempre estou buscando explorar idéas que sejam inteligentes e que façam sentido para mim.

    Tomei a liberdade de utilizar seu código para fazer alguns backtests em diversos ativos. O sistema foi muito bem principalmente atuando no sentido Long quando o mercado veio se recuperando de 2008 para cá por razões óbvias.

    Busquei então colocar mais algumas linhas de código para entrar short mas creio que me equivoquei uma vez que utilizando a mesma estratégia short/covering não consegui obter resultado semelhante. Muito pelo contrário, sequer consegui proteger o capital. 😉

    A estratégia short, dentro do seu sistema seria igual a long?

    Tomo a liberdade, se não for incomodo, de postar meu código aqui:

    // Signal buy/sell on the bar where the 3 day break occurs
    Buy = Cross( H, Ref(HHV( H, 3), -1));
    Short = Cross( L, Ref(LLV( L, 3), -1));
    Sell = 0;
    Cover = 0;
    // Use trailing stop of ATR
    TrailStopAmount = 1.8 * ATR( 14 );
    // Risk Management of % of Capital
    Capital = 5000;
    Risk = 0.02*Capital;
    // Position size limit loss to max of a % of capital
    PositionSize = (Risk/TrailStopAmount)*BuyPrice;
    PositionSize = (Risk/TrailStopAmount)*ShortPrice;
    // Exit rule is solely the trailing stop
    ApplyStop(stopTypeTrailing, stopModePoint, TrailStopAmount, 1 );
    // trade on same bar of signal on the last 3 day break out
    SetTradeDelays( 0, 0, 0, 0 );
    BuyPrice = Ref(HHV( H, 3), -1);
    ShortPrice = Ref(LLV( L, 3), -1);

    Creio que algo possa estar errado. Não sou especialista em Amibroker…

    ABS,

    Mauro.

  20. Fala Mauro,

    Neste caso eu prefiro ter um programa para o longo e outro para o short e testo os dois separados.

    No Amibroker vai no settings e ajusta (somente long ou short). Ai nao tem erros. Depois analisa qual seria a equity curve dos dois sistemas combinados.

    Neste caso nunca ocorrera dar um sinal longo e um short ao mesmo tempo, pois sao mutuamente exclusivos. (nem sei se eh assim que traduz pro portugues) 🙂

    Sobre o short eu estou testando um sistema no momento, com a mesma filosofia de breakout, e eh mais complicado.

    Sugiro que testE periodos mais longos tipo 6 a 8 dias e coloque um filtro de angulo de media movel (leia artigo no blog) e um stop mais largo… que vai conseguir um sistema que da um certo lucro no short, mas ainda nao tao bom quanto o longo.

    Eh mais dificil ganhar dinheiro no short em trend following, pois mercados short sao naturalmente mais volateis que longos e acaba sendo mais stopado e a relacao risco retorno eh pior se o metodo de position sizing for baseado em volatilidade.

    Abraco

    Vela

    • Olá Vela,

      Obrigado pela resposta. Como sou trader especializado em moedas, na verdade estou utilizando o seu post para aprender a ‘programar’ em Amibroker. Me interessa muito a conotação short pois sou trader de câmbio e isso significa que terei algumas paridades que se beneficiarão mais com entradas short do que long.

      O sistema que utilizo no momento se baseia em determinar a tendencia visualmente e o movimento principal através de quebras máximas/minimas. No entanto, adorei sua idéia e post sobre o ângulo do trend. É uma excelente idéia que pode ser implementada através de médias móveis ou mesmo pelo ângulo de linhas de tendência. Nesse sentido, retiraria a parte ‘discretionary’ do meu sistema. Considero que meu sistema seja um hibrido TF/MR discretionary/mechanical. Porém se eu conseguir ‘calcular’ o angulo da tendencia, ele se tornaria fully mechanical.

      Como exercicio, vou programar o filtro das médias móveis e fazer os dois (long/short) em separado.

      Te aviso se conseguir ou não.

      Obrigado pela dica.

      Grande abraço.

      Mauro.

      • Fala Mauro,

        Recomendo que leia os seguinte posts que pode falar ao seu coracao

        Minha opinia sobre trader discrecionario esta aqui:

        http://velaepavio.wordpress.com/2010/10/22/quais-sao-os-tipos-de-traders/

        OUtro post que eh um dos meus preferidos e recomendo nesta inha eh

        http://velaepavio.wordpress.com/2011/09/30/em-busca-de-auto-conhecimento/

        Ali fala o metodo que Ed Seykota recomenda sobre processo de como desenvolver sistemas. A conclusao eh que ate os traders mecanicos 100% sao “discrecionarios”, pois todos tem a decisao e responsabilidade pessoal de escolher:

        O tipo de mercado, o tipo de sistema, o estilo, o time frame… e isto vem com intuicao que nada mais eh do que experiencia armazenada no sub consciente.

        O teste do sistema so serve pra validar o seu feeling. Uma vez que o feeling foi validado e o sistema foi decorado o trader mecanico pode ate pensar em fazer uma transicao de 100% mecanico para discrecionario baseado em regras.

        • Vela,

          Obrigado pela resposta.

          Talvez eu não tenha sido claro.

          Já opero automatizado a cerca de 3 anos. A época contratei um programador de Blumenau (pólo de programadores) para desenvolver a idéia que se baseia num template de um dos maiores traders de Fx do mundo: Igor Toshchakov que também é autor do livro: Beat The Odds in Forex Trading. Recomendo a leitura desse livro até apara aqueles que não são muito ligados a Fx. Até o dia de hoje matenho contato pessoal com ele buscando melhoras. Esse sistema foi feito em NinjaTrader.

          Porém, nessa estratégia, falta apenas um ingrediente que considero ser discrecionario: a tendência e seu ângulo.

          No mais, o meu HPTD (high probability trend trader como o chamo) é 100% mecânico.

          Recomendo também que você leia Trading in The Zone. Nesse livro o trader entende sem rodeios o impacto que a emoção tem sobre o trading e como o approach repetitivo mecânico aumenta suas probabilidades de sucesso mesmo que seu plano (sistema) não seja lá essas coisas. É um livro que pode parecer dizer obviedades. Mas justamente este tipo de livro que valorizo mais.

          Me fiz um grande favor quando decidi ir 100% mecânico a cerca de 4 (levou pelo menos 1 ano pra desenvolver/testar) anos atrás. Acho que essa foi a grande razão de conseguir excelentes equity curves através dos anos com baixos DDs.

          Sem falar nos testes utilizando metodologia de Monte Carlo, etc…

          Pelo que percebi, você acaba de começar essa jornada. Creio que você está no caminho certo de ir 100% mecânico e sendo assim terá sucesso sem dúvidas.

          Você terá de ter paciência. Pois até chegar num modelo e depois fazer o tweak desse modelo até um ponto satisfatório no seu backtest e no seu forward test, haverão muitas mudanças.

          Como te disse, me tomou mais de 1 ano para chegar em um modelo satisfatório para mim. Não que esse seja o seu caso. Mas a probabilidade é enorme de que venham algumas mudanças no caminho.

          Te desejo sorte nessa sua jornada.

          Mauro.

  21. Entendido vc fez um bom trabalho ai no sistema e espero que a media movel de ajude. A unica coisa ruim eh o lag e acaba perdendo alguns trades quando o mercado vira, mas em termos de robustez a estrategia eh bem eficiente no longo prazo.

    Valeu pela recomendacao do livro e boa sorte na sua jornada.

    Bons trades em Paz

  22. Excelente artigo!
    Eu. depois de 10 anos de mercado, também me rendi ao trend following, mais por uma questão de perfil: cansei de brigar com o mercado.
    Descobri que cometo mais erros estando fora do mercado (tentando entrar) do que quando estou dentro do mercado. Uma vez dentro do trade, os únicos erros que posso cometer são: sair muito cedo ou sair muito tarde e isso se resolve facilmente com um bom método de saída, como o ATR. Fora do mercado a lista de erros é quase ilimitada.

    Mas uma coisa tem me chamado a atenção e tem a ver com esta afirmação:
    “Como bom sistema de trend following este NAO tem profit target, pois o lema é surfar na tendência até ela “acabar”.”

    O que tenho notado nos sistemas seguidores de tendência é que quando definimos um método de stop, como o ATR, para limitar a perda, para sair do trade, automaticamente estamos limitando o lucro. Ou seja, não é verdadeiro que vamos surfar a tendência até ela acabar, vamos surfar a tendência até o stop ser atingido. E isso pode ocorrer no primeiro respiro que o mercado fizer contra. Em muitos casos o stop será atingido e a tendência irá continuar. Assim, o próprio método de stop limita tanto a perda quanto o lucro.

    Nos meus estudos eu noto que existe um limite máximo de lucro que o stop ATR pode suportar, dependendo do comportamento do ativo operado (volatilidade).

    Se este limite de fato existir, não seria melhor encerrar o trade em um ponto ótimo calculado (próximo dos limites máximos atingidos)? Ou seja, usar um profit target…

    • Ola Ricardo,

      Obrigado por participar.

      Eu me pergunto o que os seus estudos fazem vc concluir.

      Sobre o profit target a unica forma de saber se eh melhor que o stop trailing eh testando e coparando os resultados.

      Independente de qual eh melhor ou pior quanto ao lucro total do sistema eu acho que contato que a expectativa do sistema seja melhor um metodo ao outro tanto faz.

      Sistemas de trend following de longo prazo geralmente nao tem profit target, pois uma tendencia nao se sabe o final ate que ele chegue e como o indice de acerto eh baixo ~ 30% o sistema precisa pelo menos ter uma relacao 3.3:1 pra ficar no zero a zero.

      E outra coisa. Final e tendencia sao conceitos viesados. Depende do que vc define o que eh tendencia e quando ela acaba.

      Sobre stops e saidas acho que iria gostar deste artigo aqui http://www.velaepavio.com/2013/12/04/a-saida-e-muito-mais-importante-que-a-entrada/

      Abraco

      Vela

      • Matematicamente não é fácil chegar a uma conclusão. Quando acho que encontrei um target ideal, o mercado vem e faz um grande movimento, colocando a saída pelo stop novamente como vencedora. E quando me convenço que vale a pena operar sem alvo, o mercado me mostra que é possível, e até melhor, surfar os grandes movimentos com mais de um trade, saindo no alvo e re-entrando em outro ponto, se a tendência continuar. A vantagem é que desta forma se pode surfar tanto as grandes tendência quanto as menores utilizando um stop que não precisa proteger lucro (saída pelo target). É quase impossível surfar pequenas tendências com um stop adequado para o trend following, mas com target isso se torna viável.
        Mas se posso chegar a uma conclusão é a seguinte: o resultado depende do perfil do trader, depende do que você faz em seguida: re-entrada.
        Vai conseguir executar uma re-entrada depois de a tendência ter avançado bastante? Ou vai começar a achar que o mercado está esticado, que é melhor aguardar nova tendência?. Se a re-entrada não é um problema, é possível operar com um target bem dimensionado e até obter melhores resultados. Mas na prática a re-entrada é um problema!
        É fácil ser estopado na re-entrada, é fácil hesitar em não re-entrar para não arriscar o lucro realizado, é fácil cair no overtrading, etc.
        Se a re-entrada se tornar um problema, a saída pelo target vai perder feio para um método de saída sem target.

        • Ricardo,

          A melhor forma de tirar a pulga atras da orelha e testando o sistema. Nao precisa ser necessarimente backtest pode ser forward test se quiser.

          Vc pode tentar um hibrido

          Coloca uma posicao e sai 50% no target e 50% no trailing. Em ingles eh o famoso “runner”.

          Ou pode fazer 2 profit target e sai 2/3 no profit e o resto no trailing o que bater primeiro.

          Tenho um projetinho pra testar e mostrar isto. Faz parte do meu produto de entradas e saidas que esta no meu pipe line.

          Abraco

          Vela

          • Pois é vela, esta pulga me acompanha há muito tempo…kkk.
            A definição do traling stop já foi superada: hoje utilizo um hibrido de Donchian e ATR, na verdade um funciona como corretor do outro. Mercado rápido um performa melhor, mercado lento o outro.
            Eu gosto muito destas opções que você sugeriu.
            Mas, psicologicamente, eu tenho operado melhor deixando o mercado estopar a posição (sem target). Mas não é fácil, ontem mesmo fechei um trade que bateu +1.055pts com apenas +290pts (mercado voltou muito rápido).
            Outra questão que vejo no target é o risco de gerar otimizações sem fim. É fácil questionar o valor utilizado quando ocorre uma sequência de vários trades que “quase”atingem o target e voltam, estopando. Ou quando o mercado ultrapassa em muito o target. Pra aliviar isso, utilizei um múltiplo do true range como target.
            Mas, na sua opinião, de forma geral, qual configuração gera melhor resultado no longo prazo?
            – Sem target (fecha 100% trailing)
            – Sem traling (fecha 100% no target)
            – 50% traling / 50% target

            Abraço

            Ricardo

            • Fala Ricardo
              Acho que deve continuar testando.
              Eu não tenho uma resposta pois precisaria fazer um back test.
              de minha experiência quanto mais de longo prazo o sistema a melhor opção sempre é 100% no training.
              Geralmente híbrido e a segunda opção é diminui a volatilidade da curva de capital. O que é melhor psicologicamente e o resultado é um pouco pior que o 100%. A opção do target tenho minhas dívidas e não acho uma boa estratégia de saída pra trendfollowing.
              Mas isto é intuição quero confirmar isto no blog. Se tiver paciência um dia terá a resposta aqui ou vc pode achar ela dentro de vc
              Abraço

              Vela.

  23. Excelente relembrar esse seu TS, Vela!
    Agora finalmente me rendi e estou começando a aprender como criar um ambiente de testes. Me parece que o Amibroker é ideal para backtests, por ter uma linguagem fácil.

    O que vcs recomendam em termos de software pra poder testar ideias de sistemas? Não tenho muita experiência, e temo pagar um software caríssimo com mil funções, mas que tenha muito mais do que o necessário pra mim.

    (em especial porque sistemas TF costumam ser bem simples, até pela questão dos graus de liberdade e o perigo de otimização)

    Aguardo.

    ps: Vela, tem alguma resenha de livros do mercado saindo? 😉

    • Fala João

      Que eu saiba o amibroker e o melhor e mais barato ainda mais para teste de nível de portfólio. Existe o metatrader que é gratuito. Eu não conheço a linguagem.
      Abraço e boa sorte.
      Vela

  24. Fala Vela,
    Qual livro me indica para aprender a programar um robô para o mercado?(ou ao menos para fazer backtest de uma estratégia).
    Obrigado!

Leave a Reply to velaepavio Cancel reply

Your email address will not be published. Required fields are marked *