
A estratégia é um sistema de acompanhamento de tendências baseado na dinâmica dos preços e na resistência/suporte histórico. A lógica central da estratégia é procurar um gráfico de rupturas de preços significativas no curto prazo (≥ 2%) e combinar a ruptura com os altos/baixos recentes para confirmar a direção da tendência.
A estratégia é executada em um período de 1 hora e baseia-se nos seguintes princípios centrais:
Identificação de propulsãoEstratégia: primeiro calcule a porcentagem de variação de preço de um gráfico de uma só raiz(收盘价-开盘价)/开盘价O diagrama é identificado como tendo uma dinâmica significativa quando a porcentagem de mudança atinge ou excede 2% (parâmetro ajustável).
Reconhecimento de ruptura:
Geração de sinal de entrada:
Configuração de parada dinâmica: O uso do indicador ATR (default 14 cycles) multiplicado pelo múltiplo (default 1.5x) para determinar a distância de parada, o que permite que a parada se ajuste automaticamente à volatilidade do mercado.
Estratégia de Stop Loss:
A estratégia também inclui indicadores visuais, marcando os sinais de entrada e os gatilhos de parada/perda no gráfico, facilitando a análise de feedback do comerciante.
A capacidade de adaptação do mercadoA estratégia é capaz de se adaptar automaticamente a diferentes ambientes de mercado de flutuação, dando maior margem de lucro em mercados de alta flutuação e apertando a posição de parada em mercados de baixa flutuação.
Capacidade de negociação bidirecionalA estratégia permite a negociação simultânea de ativos e passivos, capturando oportunidades em tendências de alta e baixa, maximizando a participação no mercado.
Critérios de admissão objetivosA estratégia elimina julgamentos subjetivos, tornando as decisões de negociação mais normativas e sistemáticas, através da definição de limites e condições de ruptura.
Controle de risco precisoO Stop Loss é definido no ponto máximo do gráfico de momentum, protegendo o capital e respeitando a estrutura do mercado, evitando a perda prematura devido a flutuações aleatórias.
Parâmetros flexíveisA estratégia oferece vários parâmetros ajustáveis (diminuição de volume, ciclo de retrocesso, comprimento e múltiplo do ATR), que o comerciante pode ajustar de acordo com suas preferências de risco e diferentes condições de mercado.
Comentários visuaisA estratégia de um trader é simples e intuitiva: através de uma marcação gráfica, mostra claramente o sinal de entrada e a posição do gatilho de stop/stop loss, facilitando a compreensão intuitiva da execução da estratégia.
Risco de Falso BreakoutSolução: Pode-se adicionar filtros de tendência adicionais, como a confirmação da direção da média móvel ou um indicador de tendência.
Risco de saltar de um avião: O mercado pode ter um salto acentuado sob a influência de notícias importantes, ultrapassando a posição de parada definida, causando perdas reais acima das expectativas.
Sensibilidade do parâmetroO desempenho da estratégia é mais sensível às configurações de parâmetros, especialmente o limiar de impulso e o múltiplo ATR. Método de solução: Fazer uma otimização de feedback suficiente para encontrar uma combinação de parâmetros relativamente estável em diferentes ambientes de mercado.
Falta de gestão de fundos: A estratégia em si não contém regras detalhadas de gestão de fundos. Método de solução: Adicionar um mecanismo de gestão de posição na aplicação prática, por exemplo, ajustamento de posição com base na proporção de equidade de conta ou proporção de risco fixo.
Insuficiência de confirmação de múltiplos ciclosA dependência de um único período de tempo pode levar a um sinal de negociação pouco robusto. Solução: Considere a adição de mecanismos de confirmação de vários períodos de tempo, por exemplo, executando negociações somente quando a tendência está em consonância com a direção de um período de tempo maior.
Adicionar filtro de tendênciaPode-se adicionar uma média móvel ou outro indicador de tendência como filtro de direção, por exemplo, executar uma operação multihead apenas quando o preço está acima da linha média de 200 ciclos, em vez de executar uma operação de cabeça vazia, o que aumentará significativamente a qualidade do sinal.
Introdução de filtros de flutuaçãoA estratégia pode não funcionar bem em mercados de alta ou baixa volatilidade. Pode-se adicionar condições de filtragem de taxa de flutuação, por exemplo, executando uma operação apenas quando o indicador de taxa de flutuação (como o ATR / PPP) está em um determinado intervalo.
Otimização do mecanismo de retençãoPode-se implementar um stop escalar ou um stop tracking, por exemplo, quando o preço atinge 0,5 vezes o lucro ATR, o stop será transferido para o preço de custo, permitindo uma negociação sem risco.
Adicionar filtro de tempo de transaçãoAlguns períodos de tempo (como o período de negociação da Ásia, Europa e EUA) podem ser mais adequados para esta estratégia. Analisar o desempenho de diferentes períodos de tempo e otimizar a janela de tempo de negociação pode aumentar a taxa de vitória da estratégia.
Confirmação de volume de transação integradaA introdução da quantidade de transação como condição auxiliar para a confirmação de uma brecha, e a entrada no jogo somente quando a quantidade de transação é atingida, pode reduzir o risco de uma falsa brecha.
Indicador de dispersação de aceleraçãoIntrodução de indicadores como o RSI ou MACD para detectar a dispersação de preços e de momentum, evitando a entrada quando o momentum diminui.
Ajuste de parâmetros de inteligência: Um sistema de parâmetros adaptáveis pode ser projetado para ajustar automaticamente a depreciação de volume e o múltiplo ATR de acordo com a volatilidade do mercado recente, tornando a estratégia mais adaptável.
A estratégia de negociação de breakout de alta dinâmica combinada com o mecanismo de stop-loss ATR é um sistema de negociação abrangente que identifica o início de uma tendência em potencial, capturando a dinâmica de preços de curto prazo e a ruptura de níveis de preços críticos. A vantagem central da estratégia reside em seus padrões de entrada objetivos e no mecanismo de stop-loss dinâmico adaptado à volatilidade do mercado, que lhe permite manter um desempenho relativamente estável em diferentes ambientes de mercado.
Embora a estratégia tenha riscos como falsas rupturas e sensibilidade de parâmetros, a estabilidade e a lucratividade da estratégia podem ser significativamente aumentadas pela introdução de filtros de tendência, confirmação de múltiplos ciclos e verificação de volume de transação. Especialmente quando combinada com um bom sistema de gerenciamento de fundos, a estratégia tem o potencial de ser uma arma poderosa na caixa de ferramentas do comerciante.
Para os traders que desejam aplicar esta estratégia, é recomendável primeiro fazer um bom teste de retorno em diferentes ambientes de mercado, encontrar o conjunto de parâmetros mais adequado para o seu estilo de negociação e capacidade de tolerância ao risco, e gradualmente introduzir as medidas de otimização acima mencionadas para criar um sistema de negociação mais personalizado e eficiente.
/*backtest
start: 2024-06-18 00:00:00
end: 2025-06-16 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("ETHUSDT Momentum Breakout with TP/SL Labels", overlay=true)
// === INPUT ===
momentumThreshold = input.float(0.02, "Min % Change (2%)", step=0.001)
lookback = input.int(10, "Breakout Lookback", minval=1)
atrLen = input.int(14, "ATR Length")
atrMult = input.float(1.5, "ATR Multiplier", step=0.1)
// === ATR ===
atr = ta.atr(atrLen)
// === PERSENTASE KENAIKAN/TURUNAN ===
pctChange = (close - open) / open
// === BREAKOUT LEVELS ===
priorHigh = ta.highest(high[1], lookback)
priorLow = ta.lowest(low[1], lookback)
// === LONG SETUP ===
isLongMomentum = pctChange >= momentumThreshold
isLongBreakout = close > priorHigh
longCond = isLongMomentum and isLongBreakout
longTP = close + atr * atrMult
longSL = low
// === SHORT SETUP ===
isShortMomentum = -pctChange >= momentumThreshold
isShortBreakout = close < priorLow
shortCond = isShortMomentum and isShortBreakout
shortTP = close - atr * atrMult
shortSL = high
// === VARIABEL UNTUK SIMPAN TP/SL LEVEL ===
var float tpPrice = na
var float slPrice = na
var string tradeDir = "" // "long" atau "short"
var int entryBar = na
// === ENTRY ===
if (longCond)
strategy.entry("Long", strategy.long)
tpPrice := longTP
slPrice := longSL
tradeDir := "long"
entryBar := bar_index
if (shortCond)
strategy.entry("Short", strategy.short)
tpPrice := shortTP
slPrice := shortSL
tradeDir := "short"
entryBar := bar_index
// === EXIT ===
if (tradeDir == "long")
strategy.exit("Exit Long", from_entry="Long", limit=tpPrice, stop=slPrice)
if (tradeDir == "short")
strategy.exit("Exit Short", from_entry="Short", limit=tpPrice, stop=slPrice)
// === CEK EXIT DAN TAMPILKAN LABEL SAAT TP / SL TERCAPAI ===
var bool labelDrawn = false
if (strategy.position_size == 0 and not na(entryBar) and not labelDrawn)
if (tradeDir == "long")
if (low <= slPrice)
label.new(bar_index, low, "SL Hit", style=label.style_label_up, color=color.red, textcolor=color.white)
else if (high >= tpPrice)
label.new(bar_index, high, "TP Hit", style=label.style_label_down, color=color.green, textcolor=color.white)
else if (tradeDir == "short")
if (high >= slPrice)
label.new(bar_index, high, "SL Hit", style=label.style_label_down, color=color.red, textcolor=color.white)
else if (low <= tpPrice)
label.new(bar_index, low, "TP Hit", style=label.style_label_up, color=color.green, textcolor=color.white)
labelDrawn := true
tpPrice := na
slPrice := na
tradeDir := ""
entryBar := na
// === SINYAL ENTRY VISUAL ===
plotshape(longCond, title="Long Signal", location=location.belowbar, style=shape.triangleup, color=color.green, size=size.small)
plotshape(shortCond, title="Short Signal", location=location.abovebar, style=shape.triangledown, color=color.red, size=size.small)