Stacked Imbalances Strategy

Criado 07 jan 2024 · Atualizado 24 jan 2025

A Estratégia Stacked Imbalances é uma estratégia mecânica Premium para a plataforma NinjaTrader 8. É uma estratégia totalmente automática que pode ser executada no piloto automático, enquanto seus botões de comando integrados permitem estender ou substituir manualmente. A estratégia pode ser usada para passar desafios de avaliação de propfirm.

Pré-requisitos

Para usar adequadamente esta estratégia, deves ter os seguintes pré-requisitos disponíveis.


  • NinjaTrader 8, com qualquer tipo de licença. Clique aqui para transferir
  • Uma conta NinjaTrader com OrderFlow ativado, obtida através da compra de uma licença lifetime NinjaTrader ou através de uma licença fornecida por um programa de financiamento de traders.
  • Uma conta automated-trading.ch com um ativo Subscrição Premium

Aviso Importante

Recomendamos fortemente que nunca executes os teus sistemas de trading algorítmico com dinheiro real ganhado com dificuldade. Deves sempre minimizar o teu risco e executar as tuas estratégias em programas de financiamento de traders, de modo que o montante máximo que corre o risco de perder seja a taxa de subscrição mensal que pagas a esses programas.

A estratégia Stacked Imbalances é tanto uma estratégia de tendência como uma estratégia de reversão, baseada na suposição de que desequilíbrios de volume empilhados são um sintoma de ineficiências inerentes na microestrutura do mercado.

A estratégia implementa múltiplos setups de entrada baseados em imbalance:

  • Trend Mode: entra long quando um stacked imbalance do lado ask ocorre, ou short quando um stacked imbalance do lado bid ocorre
  • Reversal Mode: entra long quando traders presos são detectados numa reversão de preço long, ou short quando traders presos são detectados numa reversão de preço short
  • Auto Mode: comuta automaticamente entre Trend e Reversal modes baseado no Volume Profile do dia anterior em relação à ação de preço atual

A estratégia tem como objetivo ser lucrativa a longo prazo ao gerar um retorno esperado positivo a partir de uma razão win/loss maior que 1. Pode ser usada num tipo de barra baseado em preço (Range ou Tick bars) ou num tipo de barra baseado em tempo — ver a seção Performance Reports para configurações sugeridas em diferentes instrumentos.

Exemplos de Configuração de Entrada

Entrando Long no Trend Continuation Mode

A estratégia detecta um stacked imbalance do lado ask que a arma para ir long, depois aguarda follow-through de ação de preço para executar a trade — por exemplo uma vela fechando acima do high da vela anterior. Num tal exemplo, a trade foi executada com um stop loss/take profit de $100 e uma quantidade de 2 contratos no MES.

Entering long on trend continuation mode example
Clique para ampliar
Entrando Trades no Reversal Mode

Quando Stacked Imbalances Entry Mode está configurado para Reversal, um stacked imbalance do lado buy dispara uma entrada short, e um stacked imbalance do lado sell dispara uma entrada long — por exemplo uma entrada long seguindo um stacked imbalance do lado bid e uma vela de confirmação, lucrativa porque o imbalance refletiu ordens limit de compra de alto volume tomando lucro após uma tendência bearish antes do preço reverter para cima.

Entering trades on reversal mode example
Clique para ampliar
Entrando Long num Sinal de Trapped-Sellers

Com apenas o setup Trapped Traders ativado, um stacked imbalance do lado bid numa vela verde (venda agressiva sendo presa, ou um grande volume de ordens limit de compra nesse nível) arma a estratégia; uma vela de follow-through confirma a entrada. Um tal setup produziu uma trade long lucrativa com 2 contratos e um take profit/stop loss 1:1 de $100 no MCL.

Entering long on trapped-sellers signal example
Clique para ampliar
Gestão de Ordens "Dollar Cost Averaging" em Ação

Quando DCA é usado como a estratégia de gestão de ordens, a quantidade da posição é aumentada a cada vela de fechamento na direção vencedora, com objetivo de atingir breakeven e fechar a posição cedo no breakeven ou ligeiramente em lucro. Isto nem sempre funciona — às vezes o stop loss é atingido mais cedo que o take profit devido à quantidade aumentada, resultando numa saída de perda antecipada. Extensa testagem anterior em regimes de mercado, instrumentos e timeframes é recomendada para entender o impacto a longo prazo deste método.

Dollar cost averaging order management in action
Clique para ampliar
Sinal de Imbalance Forte mas Sem Follow-Through

Um stacked imbalance do lado sell pode armar uma entrada short, mas sem ação de preço de confirmação (o preço em vez disso continua para cima), o sinal short é cancelado — ilustrando por que ação de preço follow-through importa, em vez de mostrar uma trade real.

Strong imbalance signal but no follow-through example
Clique para ampliar

Funcionalidades

A estratégia Stacked Imbalances tem um conjunto de funcionalidades únicas:

  • Motor de detecção de imbalances performante e desenvolvido internamente
  • Nenhuma ordem pendente é colocada — apenas ordens de mercado
  • Estratégia totalmente automática que pode ser escalada em múltiplas instâncias
  • Pode ser executada como uma estratégia semi-automática usando a interface de trading automático no painel Chart
  • Capacidades precisas de backtesting seguindo as melhores práticas oficiais do NinjaTrader, alcançando backtesting preciso de entrada/saída no nível de tick
  • Uma robusta biblioteca de gestão de ordens interna, resistente a perda de conexão, que funciona perfeitamente em contas Rithmic ou contas de corretagem NinjaTrader

Parâmetros

Tentamos manter os parâmetros ao mínimo — apenas os mais importantes são expostos.

General
Execute Historical TradesDeve estar marcado sempre que a estratégia executa em modos Historical, Backtest ou Optimization, e desmarcado quando executando Live Real-Time.
Daily TakeProfit TargetA estratégia para pelo dia uma vez o lucro realizado diariamente atinge este valor. Ignorado quando configurado para 0.
Weekly TakeProfit TargetA estratégia para pela semana uma vez este valor de take-profit semanal é atingido após fechar uma posição. Reseta no início de cada nova semana. Ignorado quando configurado para 0.
Daily StopLoss LimitA estratégia para pelo dia uma vez o limite de perda diária é atingido após fechar uma posição (valor positivo — por exemplo 300 para a trading uma vez o PnL realizado ≤ -$300). Ignorado quando configurado para 0.
Stop @ Winning CountPara trading pelo dia uma vez a contagem de trades vencedores líquidos atinge este valor. Ignorado quando configurado para 0.
Stop @ Losing CountPara trading pelo dia uma vez a contagem de trades perdedores líquidos atinge este valor. Ignorado quando configurado para 0.
Swings PeriodDefine quantas barras são suficientes para separar dois swings do mesmo tipo. Quanto maior este valor, menos swings no total; quanto menor, mais. Um valor de 3 ou 4 é típico.
Draw Price SwingsAtiva/desativa desenhar swings no gráfico. Swings são sempre analisados e processados independentemente deste parâmetro, que apenas afeta visibilidade.
Buy Imbalances Color / Sell Imbalances ColorCor das zonas de stacked imbalance bullish/bearish desenhadas no gráfico.
Execute on MicrosExecuta trades num instrumento diferente do gráfico ativo — por exemplo executar lógica em Minis mas executar em Micros para gerenciar risco melhor. Todos os cálculos de risco acontecem no instrumento de execução.
Execution InstrumentEscolhe de uma lista de Micros disponíveis na tua conexão NinjaTrader como o instrumento onde as trades são executadas. Trades históricas e ao vivo não serão desenhadas no gráfico neste caso.
Entry Setup
Time Zone O fuso horário usado para o parâmetro Trade Time abaixo. Mercados de futuros operam em hora US Eastern (EST), então isto permite especificar o intervalo de trading relativo ao fuso horário da tua própria máquina em vez disso.
  • EST, CET, ou Local Time
Trade TimeEspecifica o intervalo de tempo em que a estratégia é permitida colocar trades — por exemplo 09:30-16:15 para RTH em EST, ou 00:01-08:00,09:55-15:55,18:01-23:59 para cobrir RTH e ETH enquanto exclui períodos voláteis. Intervalos devem estar listados em ordem crescente (mesmo o que abrange meia-noite para a próxima sessão) e são cortados à meia-noite para evitar problemas ao passar para um novo dia.
Quantity Strategy
  • Fixed Quantity: quantidade fixa por trade; pulada se o risco avaliado exceder Max Risk Currency
  • Risk Adjusted: tamanho dinâmico de contrato, calculado do preço de stop loss e Target Risk Per Trade ($)
Max QtyQuantidade máxima permitida quando Risk Adjusted está selecionado — útil já que algumas propfirms impõem limites de quantidade de ordem que podem invalidar uma conta.
Trade Entry Mode
  • Immediate: abre uma posição imediatamente no fechamento de barra quando um setup de entrada ocorre
  • Wait For Bar Confirmation: aguarda uma vela fechar mais alta (long) ou mais baixa (short) que a vela de setup — ajuda a evitar casos onde o preço reverte contra o setup
  • Wait For FVG Confirmation: aguarda uma Fair Value Gap fechar mais alta (long) ou mais baixa (short) que a vela de setup — visa entradas de maior probabilidade
Order QtyQuantidade por trade quando Quantity Strategy é Fixed — também usada para cada aumento de quantidade se o mecanismo de gestão de ordens escala.
Enable Trapped Traders EntryAtiva/desativa entrada em sinais de trapped-traders — um stacked imbalance numa vela de reversão seguido por um break de preço follow-through acima/abaixo do high/low da vela de imbalance.
Enable Stacked Imbalances EntryAtiva/desativa o sinal de entrada de tendência — um stacked imbalance seguido pelo mesmo tipo de follow-through.
Stacked Imbalances Entry Mode Define o modo de entrada de trade para Enable Stacked Imbalances Entry.
  • Trend Following: entra na direção do stacked imbalance, esperando continuação de tendência
  • Reversal: entra na direção oposta, esperando lucrar com uma reversão de preço
  • Auto: define um viés de tendência do Volume Profile RTH (9:30-16:15 EST) do dia anterior — long apenas se o preço está acima do Value Area High anterior, short apenas se abaixo do Value Area Low anterior, reversão se o preço está entre VaL e VaH, ou tendência (long ou short) se o perfil anterior foi uma dupla distribuição e o preço se situa entre seus dois componentes
VWAP FilterAtiva/desativa um filtro VWAP para entradas — entradas long requerem preço acima de VWAP, entradas short requerem preço abaixo de VWAP.
Swing Filter Ativa/desativa um filtro de tendência de swing para entradas, analisando pivôs de swing consecutivos.
  • Entradas long são permitidas apenas se pelo menos 2 swings baixos consecutivos ocorreram antes do setup
  • Entradas short são permitidas apenas se pelo menos 2 swings altos consecutivos ocorreram antes do setup
Imbalances
Min Imbalance RatioRazão mínima entre os volumes bid/ask diagonais para considerar um imbalance.
Min Imbalance VolumeValor mínimo de volume no lado forte (bid/ask) para considerar um imbalance.
Max Imbalance Gap (Ticks)Tolerância de gap entre níveis de stacked imbalance — imbalances que não estão perfeitamente empilhados (com gaps de tick entre eles) ainda contam como um cluster se este parâmetro é maior que um.
Min Stacked Imbalance CountNúmero mínimo de imbalances num cluster de stacked imbalances — geralmente 3 ou mais.
Order Management
Order Management Strategy
  • Classic Trail Stop: trails o stop loss baseado num trigger e um valor de trailing (ver Trailing Stop Parameters abaixo)
  • ATM Strategy: delega gestão de posição inteiramente para um modelo de template de estratégia ATM de NinjaTrader da tua escolha, selecionado via painel Chart Trader
  • Dollar Cost Averaging (Grid): aumenta a quantidade de ordem cada vez que um swing forma no lado perdedor da trade, fazendo averaging down na posição
  • Trail Stop on Swings: trails o stop loss cada vez que um swing forma na direção vencedora
  • None: usa o stop loss definido por Stop Loss Currency em vez disso
ATM Strategy Template NameApenas usado com o método de gestão de ordens ATM Strategy — o nome exato do template da tua estratégia ATM customizada, mostrado num dropdown de templates disponíveis.
On Opposite Signal
  • Breakeven: move o stop loss para breakeven quando um sinal oposto ocorre
  • Close Position: fecha a posição imediatamente quando um sinal oposto ocorre
  • Do Nothing: ignora sinais opostos
StopLoss Strategy
  • Bar High Low: define o stop loss para o nível low/high da vela de imbalance (também limitado por Stop Loss Currency; a posição fecha quando qualquer nível é atingido primeiro)
  • Last Swing: define o stop loss para o nível high/low do swing de preço anterior (a mesma ligação de Stop Loss Currency aplica-se)
  • Fixed Currency Value: apenas o stop loss definido por Max Stop Loss Currency é usado
  • Points: um número fixo de pontos da entrada
TakeProfit Strategy
  • Fixed Currency Value, baseado em Take Profit Currency
  • Fixed win/loss ratios: 0.5:1 através de 6:1, calculados do preço de stop loss
  • Points, um número fixo de pontos da entrada
Target Risk Per Trade ($)Risco máximo, em dólares, por posição — usado antes de abrir uma trade para verificar o stop loss calculado respeita este limite; se não, a trade é pulada.
Max Allowed Risk Per ($)Apenas usado com quantidade Risk Adjusted — controla até onde o risco real calculado é permitido desviar do Target Risk (já que uma correspondência exata é raramente possível).
Stop Loss PointsDisponível quando a estratégia Stop Loss está configurada para Points.
Stoploss offset PointsAdiciona um offset, em pontos, ao nível de stop loss calculado — usado quando computando risco por trade.
Take Profit CurrencyO valor de take-profit em dólares, usado quando a estratégia Fixed Currency Value está selecionada. Se não, define-o suficientemente alto para que não interfira com as estratégias baseadas em razão.
Enable Price BreakevenAtiva/desativa o mecanismo de breakeven baseado em preço.
Price Breakeven Strategy
  • Points: breakeven dispara baseado em pontos
  • Percentage: breakeven dispara baseado em percentagem de take profit atingido
Price Breakeven TriggerDisponível se breakeven baseado em preço está ativado — o valor de trigger (em pontos, ou uma percentagem de 1-100) necessário para mover o stop loss para breakeven.
Enable Time BreakevenAtiva/desativa um mecanismo de breakeven baseado em tempo (minutos).
Time Breakeven Trigger (Minutes)Disponível se breakeven baseado em tempo está ativado — o número de minutos necessário para mover o stop loss para breakeven.
Trailing Stop Parameters
Trailing Stop Strategy Usado com o método de gestão de ordens Classic Trail Stop.
  • Points: trigger e valor de trailing calculados em pontos da entrada
  • Ratio: calculado como uma razão do valor de stop loss, espelhado no lado vencedor
Trailing Stop TriggerO trigger (em pontos ou razão) para o método Classic Trail Stop.
Trail AmountO valor (em pontos ou razão) trailed uma vez o trigger é atingido.
DCA (Grid) Parameters
Breakeven Profit ShiftUsado com o método de gestão de ordens DCA — adiciona um pequeno valor de lucro à definição de breakeven, para ajudar a cobrir custos de comissão quando fechando a grid no breakeven.
Grid Size to BreakevenUsado com o método de gestão de ordens DCA — o número de aumentos de ordem necessários antes de considerar fechar a posição no breakeven.
Command Buttons
A estratégia expõe botões de comando manual no painel Chart Trader — assegura que está exibido no teu gráfico ativo.
Arm/Disarm ButtonsAtiva/desativa manualmente entrar em trades long ou short — útil se tens um viés direccional.
Entry Mode Switch ButtonComuta o modo de entrada da estratégia entre Trend e Reversal.
Close Position ButtonImediatamente nivela a posição no instrumento ativo sem reiniciar a estratégia, que mantém procurando por novas trades depois.
Increase Qty ButtonAumenta a quantidade da posição ativa atual pelo valor definido em Order Qty — útil para fazer averaging down manual ou dobro após um sinal de confirmação lado vencedor.

Relatórios de Desempenho

Resultados anteriores não são uma garantia de resultados futuros. Todos os resultados de backtesting são apenas para fins indicativos.

  • Comissões estão incluídas, usando o esquema de comissão de licença lifetime do NinjaTrader, para resultados realistas.
  • Seguimos o guia oficial do NinjaTrader para backtesting preciso de granularidade intrabar usando série de dados adicional de nível de tick, e apenas usamos ordens de mercado — nunca ordens pendentes — em modos ambos de tempo real e backtest.

Nenhum relatório de desempenho foi carregado para esta estratégia ainda.

Instruções de Transferência e Instalação

Requisitos de Licença

Em automated-trading.ch podes optar por comprar uma subscrição mensal para utilizar os nossos produtos Premium, ou utilizar os nossos produtos gratuitos sem te subscreveres.

Em ambos os casos, precisas de criar uma conta para obter uma Licença que possas utilizar tanto para produtos Premium como gratuitos.

Para obteres a tua licença, simplesmente inscreve-te e depois obtém a tua licença em a página de faturação.

Importante: Este é um produto Premium. Pode ser executado nos modos Backtest, Playback e Optimization gratuitamente; é necessária uma subscrição Premium ativa para o executar ao vivo.
Transferência
Inicia sessão para transferir este ficheiro.
Versão Mais Recente v1.6.0.0 · Publicado há 1 ano
Este ficheiro foi transferido 1076 vezes. A última transferência foi há 8 horas.

Também podes transferir esta estratégia — e todas as outras estratégias ou indicadores automated-trading.ch — em qualquer altura a partir da tua página centralizada de Transferências.

Passos de Instalação
1
Importa o ficheiro .zip transferido para NinjaTrader usando o item de menu Importar NinjaScript.
2
Abre uma nova janela de gráfico, assegurando que a caixa de seleção Tick Replay está marcada (se não a vires, vai para Tools → Options → Market Data e ativa Show Tick Replay).
3
Clica com botão direito no gráfico e escolhe Strategies (ou pressiona Ctrl+S) para abrir o diálogo Add New Strategy.
4
Após adicionar a estratégia, ela executa nos dados históricos do gráfico primeiro, depois comuta para Real-Time mode e adiciona uma caixa de texto de licença ao painel Chart Trader — assegura que este painel está exibido.
5
Cola a tua licença (encontrada na página de faturamento) na caixa de texto e clica Check License.
6
Uma vez verificado, o botão "Check License" fica verde junto com a próxima data de verificação — isto apenas precisa ser repetido após essa data.
7
Sem uma subscrição ativa, a estratégia ainda pode ser executada em modos Playback, Historical, Backtest e Optimization para testá-la primeiro.

Perguntas Frequentes

Geral

Usar um VPS é bom mas não é imperativo — uma instância de VPS Windows de baixo custo é suficiente para a maioria dos utilizadores.

Sim, desde que cada instância seja executada num instrumento único — NinjaTrader agrega ordens numa única posição por instrumento por conta, portanto executar duas instâncias no mesmo instrumento não funcionará.

Podes, mas executar várias instâncias da estratégia diretamente é geralmente uma solução melhor — a licença permite instâncias ilimitadas em várias máquinas.

Sim — a estratégia foi precisamente concebida para isso, e funciona perfeitamente no Rithmic, NinjaTrader brokerage, Tradovate, ou qualquer outro fornecedor conectado à tua plataforma NinjaTrader.

Foi concebida para ser totalmente automática, mas os seus botões de comando também te permitem gerir negociações manualmente se preferires executá-la de forma semi-automática.

Estratégias automatizadas negociam 24 horas por dia, executam mais rápida e precisamente, removem a psicologia e o sentimento da equação, e podem escalar para dezenas ou centenas de instâncias — produzindo realmente renda passiva em vez de outro trabalho manual stressante.

Sim — se tens uma ideia que pudesse melhorar a estratégia, usa a página de contacto para nos contactar.

Não, o código-fonte é protegido por razões de direitos de autor.
Faturação

Sim, podes cancelar a tua subscrição a partir da página da conta em qualquer momento para evitar pagamentos futuros. Não podemos reembolsar a parte não utilizada da tua subscrição, mas poderás utilizá-la durante o resto do ciclo de faturação.

Não, não oferecemos um plano de subscrição de teste, mas podes transferir e testar o produto nos modos backtest e playback antes de te subscreveres.

Não oferecemos reembolsos totais ou parciais, mas podes cancelar a tua subscrição em qualquer momento para parar pagamentos futuros.
Céticos

Sou um desenvolvedor de software profissional desde 2010 e desenvolvo estratégias de negociação automatizadas desde 2012, tanto para mim como para clientes em todo o mundo — também trabalhei em finanças e banca de investimento. Não sou um comerciante, e não terceirizo o desenvolvimento de estratégias.

Não a estou a vender — estou a alugá-la, como uma fonte de renda adicional ao lado da diversificação da minha própria negociação. A estratégia é puramente mecânica, sem nenhuma vantagem quantitativa oculta que se desgaste à medida que mais pessoas a usam.

As Pending (limit) orders oferecem melhor execução de preço e alguma proteção contra problemas de conectividade, mas podem ser rejeitadas sob alta volatilidade, precisam de gestão ativa, e são visíveis ao corretor. As Market orders garantem execução independentemente da volatilidade, são invisíveis ao corretor antes do envio, e executam mais rapidamente — a única desvantagem real é que uma ligação perdida impede enviá-las. As ordens MIT (market-if-touched) do NinjaTrader são uma alternativa sólida se especificamente quiseres comportamento de pending-order.

Seguimos o guia oficial do NinjaTrader para backtesting preciso com granularidade intrabar usando séries de dados adicionais ao nível de tick. Não acredites apenas na nossa palavra — executa um backtest no final de cada dia de negociação e compara-o com as negociações ao vivo reais dessa estratégia nesse dia.

Notas de Versão

  • Added CET timezone; Added Fair Value Gap entry filter; Added 1.5:1 take profit option; Fixed fixed-value take profit interference with dynamic mode; Optimized memory usage on optimizations; Added Points as stoploss option; Added Risk per trade / max allowed risk parameters; Added StopLoss Offset Points parameter; Upgraded price breakeven methods; Added time based breakeven; Better dynamic quantity calculation; Added Points based take profit; Added Weekly take profit target

  • Fix duplicate Chart Panel controls

  • Added Execution on Micros; Added new trail stoploss method; Added stoploss offset in points; Various Fixes

  • Added Breakeven option; Removed maximum count of trades as daily stop trade method

  • Bug Fix: error on render method

  • Bug Fix: Max Currency Risk should not take over stoploss price

  • Added additional daily stop strategies; Added Risk adjusted quantity strategy; Added Auto switch Trend/Reversal entry modes; Added VWAP filter for entries; Added Swing direction filter for entries

  • Major update: adding ATM Strategy management capabilities

  • Added Entry Mode Switch to command buttons

  • Bug Fix: Last Swing StopLoss method was incorrect

  • User Friendly parameter value options; Better Swing analysis; Rendering of imbalances zones from within strategy; Added Take profit strategy; Strategy became Premium

  • First Release of the strategy as a free strategy
discord
Junta-te à nossa comunidade Discord
Dúvidas, feedback ou apenas queres conversar com outros traders? Vem dizer olá.
Junta-te ao Discord
Factos Rápidos
Plataforma NinjaTrader 8
Categoria Estratégia
Plano Obrigatório Premium
Versão Mais Recente v1.6.0.0
Última Atualização há 1 ano
Transferências 1076