
A estratégia de paralisação parcial de confirmação de EMA de cruzamentos é uma estratégia de negociação quantitativa avançada que combina sinais de paralisação de EMA, confirmação de movimento e análise da estrutura do mercado. A estratégia tem foco especial na segurança de negociação e protege o capital de investimento por meio de mecanismos inovadores de paralisação parcial.
A estratégia funciona com base em um mecanismo de confirmação em várias camadas:
Identificação de tendências: Use o cruzamento do rápido EMA ((8 ciclos) e do lento EMA ((21 ciclos) para determinar a direção da tendência geral. Quando o 8 EMA atravessa o 21 EMA, é identificado como uma tendência ascendente; quando o 8 EMA atravessa o 21 EMA, é identificado como uma tendência descendente.
Sinais de entradaA estratégia não é entrar imediatamente no cruzamento do EMA inicial, mas esperar pelo sinal de “Primeira Continuação da Tendência”.
Gestão de RiscosA estratégia introduziu um mecanismo de paralisação parcial baseado na análise da estrutura do mercado:
Estratégia de saídaO sinal final de saída total é o cruzamento de mercado de baixa da EMA, ou seja, o 8 EMA abaixo do 21 EMA, em que a posição é liquidada em todas as posições restantes.
A estratégia utiliza variáveis de gerenciamento de status durante a execução para acompanhar o estado da negociação, o tipo de sinal acionado e os pontos de conversão da estrutura do mercado, garantindo a consistência e a precisão da execução lógica.
Uma análise mais aprofundada do código da estratégia pode ser resumida com as seguintes vantagens significativas:
Mecanismo de confirmação múltiplaA combinação de EMAs cruzadas, devaluações dinâmicas e sinais de continuação de tendência reduz significativamente o risco de falsas rupturas e sinais errados. Este design de filtragem multicamadas aumenta consideravelmente a qualidade e a confiabilidade das negociações.
Gerenciamento inteligente de fundosO ponto alto da estratégia é o mecanismo de parada parcial de perda, que permite aos traders proteger parte dos lucros em caso de deterioração da estrutura do mercado, mantendo posições restantes para capturar uma possível retomada da tendência, atingindo um equilíbrio entre risco e retorno.
Adaptabilidade da estrutura de mercadoA estratégia é capaz de identificar as mudanças na estrutura do mercado, fazendo com que ele se comporte de forma estável em diferentes ambientes de mercado, seguindo dinamicamente a formação de altos e baixos.
Flexível conceção de parâmetrosA estratégia oferece vários parâmetros ajustáveis, incluindo a duração do EMA, o multiplicador de sensibilidade e a configuração de retrocesso do eixo central, permitindo que os comerciantes otimizem de acordo com diferentes condições de mercado e preferências de risco pessoais.
Princípio de respeito à tendênciaA estratégia foi concebida seguindo o princípio de “fazer o que for possível” e apenas fazer mais quando a tendência ascendente for confirmada, evitando o alto risco de negociação contracorrente.
Apesar da estratégia ser bem concebida, existem alguns riscos e limitações potenciais:
Risco de admissão tardiaA estratégia pode perder a parte inicial do aumento da tendência, devido à necessidade de esperar o sinal de “prima continuação da tendência”, o que pode resultar em preços de entrada mais altos em situações de rápida ruptura.
Falha de julgamento da estrutura de mercadoEm um ambiente de alta volatilidade, a formação de altos e baixos pode não ser clara o suficiente, levando a julgamentos errados da estrutura do mercado e a perdas parciais desnecessárias.
Sensibilidade do parâmetroO desempenho da estratégia é fortemente dependente de parâmetros como o comprimento da EMA, a multiplicidade da sensibilidade ATR, e configurações inadequadas de parâmetros podem levar a excesso de negociação ou a perda de sinais eficazes.
Perda de entrada após paralisaçãoQuando a paralisação parcial é desencadeada, a estratégia não define um mecanismo de reentrada definido, podendo perder oportunidades de alta após a retomada da tendência.
Com base na análise do código, a estratégia pode ser otimizada nas seguintes direções:
Ajuste de parâmetros dinâmicosPor exemplo, usar um menor múltiplo de sensibilidade em um ambiente de baixa volatilidade e um valor maior em um ambiente de alta volatilidade. Isso pode permitir que a estratégia se adapte melhor a diferentes condições de mercado.
Aumentar a classificação quantitativa da estrutura do mercadoA análise atual da estrutura de mercado é relativamente simples, mas pode ser desenvolvida para sistemas de pontuação de estrutura de mercado mais complexos, levando em consideração a localização relativa, a velocidade e a amplitude de formação de vários altos e baixos, de modo a julgar com maior precisão a força da tendência e a potencial reversão.
Confirmação de volume de transação consolidadoA estratégia atual baseia-se apenas na ação dos preços, podendo ser adicionada a análise de volume de negociação como um fator de confirmação adicional. Por exemplo, a solicitação de aumento de volume de negociação ao desencadear um sinal de compra, ou o aumento de volume de negociação como um sinal de alerta mais forte quando a estrutura do mercado é destruída.
Estratégias de gestão para otimizar a paralisação parcialA ideia é que os investidores possam ter uma gestão de fundos mais inteligente, por exemplo:
Aumentar a análise de multi-quadros de tempoPor exemplo, só é permitido fazer mais em um menor período de tempo, reduzindo assim o risco de negociação de tendência inversa.
A estratégia de suspensão parcial de confirmação de EMA de dinâmica cruzada é um sistema de negociação quantitativo avançado que combina análise técnica e gerenciamento de risco. Sua principal vantagem reside no mecanismo de confirmação em vários níveis e no design de suspensão parcial inovador, que permite controlar o risco de forma eficaz enquanto se capta a tendência. A estratégia reduz drasticamente a possibilidade de falsas rupturas de negociação, aguardando o sinal de “prima continuação da tendência”, enquanto a suspensão parcial baseada na estrutura do mercado oferece um mecanismo de proteção de fundos flexível.
Esta estratégia é especialmente adequada para ambientes de mercado moderados, onde a volatilidade e a tendência são evidentes, e tem um alto valor de referência para os comerciantes quantitativos que desejam introduzir um controle de risco mais preciso na negociação de tendências. A estratégia ainda tem muito espaço para desenvolvimento e melhoria, através da otimização adicional dos métodos de análise da estrutura do mercado, do ajuste de parâmetros dinâmicos e da integração de vários quadros temporais.
Em última análise, a aplicação bem sucedida da estratégia requer que o comerciante tenha uma compreensão profunda do mercado e seja capaz de ajustar adequadamente os parâmetros de configuração de acordo com as diferentes condições de mercado, aumentando sua adaptabilidade e robustez, mantendo a lógica central da estratégia.
/*backtest
start: 2024-06-30 00:00:00
end: 2025-06-28 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT","balance":50000000}]
*/
//@version=5
// This strategy buys on the 'First Continuation' signal and adds a
// partial stop-loss that triggers on a lower-low and lower-high market structure break.
// This version corrects the 'strategy.close' argument error.
strategy("First Continuation Strategy w/ Partial SL (Corrected)",
overlay=true,
default_qty_type=strategy.percent_of_equity,
default_qty_value=10,
commission_type=strategy.commission.percent,
commission_value=0.1)
// --- INPUTS ---
emaLength = input.int(21, "Slow EMA Length")
shortEmaLength = input.int(8, "Fast EMA Length")
sensitivityMultiplier = input.float(1.5, title="Sensitivity Multiplier")
pivotLeft = input.int(5, title="Pivot Lookback Left")
pivotRight = input.int(5, title="Pivot Lookback Right")
// --- CALCULATIONS ---
ema21 = ta.ema(close, emaLength)
ema8 = ta.ema(close, shortEmaLength)
atr = ta.atr(14)
distance = close - ema21
threshold = atr * sensitivityMultiplier
// --- STATE MANAGEMENT ---
var bool inEmaUptrend = false, var bool inEmaDowntrend = false
var bool firstBuySignalFired = false, var bool firstSellSignalFired = false
var bool firstContinuationBuyFired = false, var bool firstContinuationSellFired = false
// State management for the new stop-loss logic
var float lastHigh = na, var float secondLastHigh = na
var float lastLow = na, var float secondLastLow = na
var bool partialStopTriggered = false
bool bullishCross = ta.crossover(ema8, ema21)
bool bearishCross = ta.crossunder(ema8, ema21)
// Reset state on trend changes
if (bullishCross)
inEmaUptrend := true, inEmaDowntrend := false
firstBuySignalFired := false, firstContinuationBuyFired := false
if (bearishCross)
inEmaUptrend := false, inEmaDowntrend := true
firstSellSignalFired := false, firstContinuationSellFired := false
// --- PIVOT & TRIGGER LOGIC ---
// Detect new swing points
float newPivotHigh = ta.pivothigh(high, pivotLeft, pivotRight)
float newPivotLow = ta.pivotlow(low, pivotLeft, pivotRight)
// If in a trade, track the last two swing points
if (strategy.position_size > 0)
if not na(newPivotHigh)
secondLastHigh := lastHigh
lastHigh := newPivotHigh
if not na(newPivotLow)
secondLastLow := lastLow
lastLow := newPivotLow
// Stop-Loss Condition: A confirmed lower high AND lower low have formed
bool marketStructureBreak = not na(lastHigh) and not na(secondLastHigh) and not na(lastLow) and not na(secondLastLow) and lastHigh < secondLastHigh and lastLow < secondLastLow
// Reset pivot history and stop-loss flag when position is closed
if (strategy.position_size == 0 and strategy.position_size[1] != 0)
lastHigh := na, secondLastHigh := na
lastLow := na, secondLastLow := na
partialStopTriggered := false
// Standard V8 Trigger Logic
bool isMomentumBar = math.abs(distance) >= (threshold / 1.5)
bool isPositiveMomentumBar = isMomentumBar and distance > 0
bool buySignal = inEmaUptrend and isPositiveMomentumBar
bool buyTrigger = buySignal and not buySignal[1]
bool initialBuyTrigger = buyTrigger and not firstBuySignalFired
bool firstContinuationBuy = buyTrigger and firstBuySignalFired and not firstContinuationBuyFired
if (initialBuyTrigger)
firstBuySignalFired := true
if (firstContinuationBuy)
firstContinuationBuyFired := true
// --- STRATEGY EXECUTION ---
// ENTRY: Buy only on the first continuation 'b' signal and when flat.
if (firstContinuationBuy and strategy.position_size == 0)
strategy.entry("Long", strategy.long)
// PARTIAL EXIT (NEW): Close 50% of the position if market structure breaks down.
if (strategy.position_size > 0 and marketStructureBreak and not partialStopTriggered)
qtyToClose = strategy.position_size * 0.5
strategy.close(id="Long", qty=qtyToClose, comment="SL 50% on Structure Break") // CORRECTED ARGUMENT
partialStopTriggered := true // Ensure this only triggers once per trade
// FULL EXIT: Close any remaining position on a bearish cross.
if (strategy.position_size > 0 and bearishCross)
strategy.close("Long", comment="Exit on Bearish Cross")
// --- PLOTTING ---
plot(ema8, "Fast EMA", color=color.new(color.blue, 0), linewidth=2)
plot(ema21, "Slow EMA", color=color.new(color.orange, 0), linewidth=2)
// Plot pivots to visualize the market structure
plot(newPivotHigh, "Pivot High", color=color.new(color.red, 50), style=plot.style_circles, offset=-pivotRight)
plot(newPivotLow, "Pivot Low", color=color.new(color.green, 50), style=plot.style_circles, offset=-pivotRight)