Ver no GitHub

Diagrama da estratégia Every Nth Bar Filter

Duas médias móveis exponenciais se cruzam, e um lado do mercado é comprado enquanto o outro é vendido. O ponto deste diagrama é o que alimenta as médias. Em vez de ler cada candle, elas leem um preço a cada cinco candles, e esse afinamento é feito por um bloco N values ligado de forma a contar o fluxo de candles contra si mesmo. Tudo o que vem depois — as médias, o cruzamento, as entradas — vive nesse relógio mais lento, de modo que o diagrama olha para o mercado uma vez por janela de amostragem, e não uma vez por barra.

Visão geral da estratégia

  • Candles de cinco minutos finalizados alimentam um conversor que extrai o preço de fechamento de cada candle e um bloco N values que transforma o mesmo fluxo em um pulso de amostragem.
  • O bloco N values recebe o fluxo de candles em suas duas entradas ao mesmo tempo: o gatilho arma a contagem regressiva e a entrada a decrementa, de modo que ele emite um pulso a cada quinto candle finalizado e se rearma imediatamente.
  • Esse pulso é o gatilho de um Variable que guarda o último preço de fechamento. A variável armazena cada fechamento à medida que ele chega, mas não libera nada até o pulso chegar, de modo que o que sai dela é uma série de preços afinada — um valor por janela de amostragem.
  • Ambas as médias móveis leem essa série afinada em vez dos candles, de modo que uma média de quatorze períodos abrange setenta candles de tempo de mercado e uma de quarenta abrange duzentos.
  • Um bloco Crossing observa a média rápida contra a lenta e só se manifesta no momento em que as duas trocam de lugar: verdadeiro quando a média rápida cruza para cima, falso quando cruza para baixo. Um NOT lógico transforma o caso de baixa em um sinal próprio.
  • O bloco Position é comparado com uma variável zero por duas comparações — não comprado e não vendido — e cada resultado é unido ao seu sinal de cruzamento por um AND lógico, de modo que uma entrada exige um cruzamento novo e uma posição que ainda não esteja naquele lado.
  • Ambos os blocos de entrada estão configurados apenas para abrir, de modo que o diagrama carrega uma posição por vez e nunca a amplia; o volume da ordem vem de uma variável atualizada a cada candle.
  • O cruzamento oposto aciona dois blocos de fechamento, a Position protection é armada por cada execução, e o painel de gráfico desenha os candles, as duas médias, as ordens de entrada e de saída, as ordens de proteção e cada execução.

Regras de entrada e saída

  • Entrada comprada: A média rápida cruza acima da lenta em um pulso de amostragem e a posição não está comprada. O Position modify compra o volume da ordem a mercado, apenas abrindo, de modo que a entrada é feita com a posição zerada e nunca se soma a um negócio aberto.
  • Entrada vendida: A média rápida cruza abaixo da lenta em um pulso de amostragem e a posição não está vendida. O NOT lógico transforma o cruzamento de baixa em um sinal, e o Position modify vende o volume da ordem a mercado, apenas abrindo.
  • Saída: Há duas saídas. A Position protection, armada por cada execução, encerra o negócio com 1.5% de lucro ou em um stop de 1%. Se nenhum dos dois for alcançado antes de as médias trocarem de lugar de volta, o cruzamento oposto assume: ele dispara o bloco de fechamento do lado que está mantido, e esse bloco envia toda a posição a mercado. Como os blocos de entrada apenas abrem, o cruzamento que encerra um negócio não abre o oposto — a próxima entrada aguarda o próximo cruzamento que chegue com a posição zerada.

Parâmetros

Parâmetro Padrão Descrição
Candles 00:05:00 Time frame dos candles com que todo o diagrama trabalha; a janela de amostragem é contada nesses candles.
Bars Per Sample 5 Quantos candles finalizados formam uma amostra. Aumente o valor e as médias enxergam o mercado com menos frequência e negociam menos; defina-o como um e o diagrama vira um cruzamento comum tomado a cada candle.
Fast EMA Length 14 Comprimento da média rápida, contado em amostras e não em candles: com cinco candles por amostra, ele cobre cinco vezes essa quantidade de candles de tempo de mercado.
Slow EMA Length 40 Comprimento da média lenta, em amostras. Mantenha-o bem afastado do comprimento rápido, ou as duas linhas trocam de lugar no ruído e os cruzamentos deixam de significar algo.
Order Volume 1 Tamanho de cada ordem de entrada, em unidades do instrumento. Os blocos de fechamento o ignoram e enviam o que a posição mantiver.
Take Profit, % 1.5 Distância do take-profit, em porcentagem do preço de execução.
Stop Loss, % 1 Distância do stop-loss, em porcentagem do preço de execução.

Detalhes do diagrama

  • O bloco N values é usado aqui como um afinador, e não como um atraso. Suas duas entradas vêm do mesmo fluxo de candles, de modo que a contagem regressiva recomeça no instante em que expira e o pulso continua caindo a cada quinto candle finalizado durante toda a execução.
  • O Variable entre o pulso e as médias é o que torna a reamostragem real: sua entrada aceita cada preço de fechamento, sua saída permanece silenciosa até o gatilho chegar, e assim as médias recebem um valor por janela e nunca veem os candles intermediários.
  • Ambas as médias leem a mesma variável, de modo que avançam em sincronia e o bloco Crossing pode emparelhar seus valores conforme eles chegam. Ele relata apenas a amostra em que as duas linhas trocaram de lugar, e é por isso que entradas são impossíveis nos candles entre as amostras.
  • Os testes de posição são escritos como não comprado e não vendido, e não como zerado, de modo que um cruzamento que chega enquanto o lado oposto ainda está aberto continua alcançando o bloco de entrada; a configuração de apenas abrir é o que mantém o diagrama em uma única posição, e os blocos de fechamento são o que a liberam.
  • Cada execução, tanto de entradas quanto de saídas, é unida por um Combination e enviada à Position protection, de modo que o lado protetivo sempre enxerga a posição que a conta realmente mantém e recua assim que um cruzamento encerra o negócio.

Uso

Importe o arquivo .json no Designer, execute-o sobre dados históricos no backtester e depois ajuste os parâmetros ou os próprios blocos ao seu instrumento antes de operar ao vivo.