Estratégia de rompimento horizontal da tendência ATR


Data de criação: 2023-12-06 18:03:38 última modificação: 2023-12-06 18:03:38
cópia: 0 Cliques: 652
1
focar em
1619
Seguidores

Estratégia de rompimento horizontal da tendência ATR

Visão geral

A estratégia de ruptura horizontal de ATR de tendência de abelha é uma estratégia de ruptura de linha curta e média baseada no indicador de ATR e no sinal de negociação da faixa de Brin. Ela monitora principalmente as mudanças de tendência dos preços das ações dentro de um canal de ATR ascendente e descendente de certa largura, tomando decisões de negociação em combinação com o filtro de tendência ao descer ou subir no caminho.

Princípio da estratégia

A estratégia consiste em três partes principais:

  1. Canal ATR: Calcule a amplitude de flutuação do preço de uma ação com o indicador ATR e forme um canal para cima e para baixo desse alcance. A largura do canal é controlada pelo ciclo de lookback do ATR e pelo fator ATRdivisor.

  2. Linha de abelha: a linha central do preço da ação é a linha de referência. A linha central é calculada como: a média das colheitas altas e baixas de ontem.

  3. Filtragem de tendências: calcula tendências de preços através de indicadores de movimentos de desvio e define um ciclo de sinalização, quando pricesig ‘>’: pricesig[3] quando a tendência é para cima, quando pricesig ‘<’ pricesig[3] quando a tendência é para baixo.

A lógica de geração de sinais de negociação específicos é:

Sinais múltiplos: pricesig > pricesig[3] E fazer mais quando os preços descerem;

Sinal de cabeça vazia: pricesig < pricesig[3] e deixe vazio quando o preço entra na trajetória;

Outras situações não são negociadas.

A estratégia também estabelece condições de stop-loss para controlar o risco de negociação.

Análise de vantagens

A estratégia de quebra do ATR da tendência das abelhas tem as seguintes vantagens:

  1. A utilização de indicadores ATR para calcular a amplitude de flutuação dos preços das ações, capaz de capturar dinamicamente as mudanças do mercado;

  2. Combinando com a linha central, avaliar os preços das ações horizontais e estabelecer pontos de ruptura de corredores para evitar a perseguição de altos e baixos;

  3. Os indicadores de desvio de tendência são usados para avaliar tendências, evitar negociações adversas e aumentar a probabilidade de vitória.

  4. Estabelecer condições de stop-loss para controlar o risco individual;

  5. Os parâmetros de estratégia definem estratégias de otimização de fatores como largura de canal e ciclo de ATR flexíveis e ajustáveis.

Análise de Riscos

A estratégia também tem riscos:

  1. A volatilidade das transações em linhas curtas é elevada, o risco é relativamente alto e a gestão de fundos é prudente;

  2. O cálculo do alcance do canal ATR pode ser impreciso e pode levar a transações erradas quando os preços das ações flutuam fortemente;

  3. O indicador de movimentos desviados também pode cometer erros no julgamento de tendências, o que afeta a precisão do sinal de negociação.

Os riscos acima podem ser otimizados e melhorados por meio de ajustes apropriados nos parâmetros do canal ATR, aumentando o ciclo de filtragem de tendências.

Direção de otimização

A estratégia pode ser melhorada em vários aspectos:

  1. Ajustar a largura do canal ATR, reduzir ou aumentar os parâmetros atRDivisor, comprimir ou ampliar o alcance do canal.

  2. Ajustar os parâmetros do ciclo de lookback do ATR para alterar a sensibilidade do canal para oscilações recentes.

  3. Ajustar os parâmetros do ciclo do sinal de tendência para melhorar a precisão do julgamento da tendência do polinômio.

  4. Adicionando outros indicadores para a verificação multifatorial e melhorar a qualidade do sinal de negociação.

  5. Otimizar algoritmos de stop loss e melhorar o controle de risco.

Resumir

A estratégia de ruptura da ATR de tendência das abelhas integra a análise da amplitude de flutuação dos preços das ações e os indicadores de determinação de tendências para controlar o risco de negociação ao mesmo tempo em que capta os pontos quentes do mercado. É uma estratégia quantitativa altamente flexível e adaptável. A estratégia pode ser continuamente melhorada por meio de ajustes de parâmetros e otimização de sinais e tem ampla perspectiva de uso.

Código-fonte da estratégia
/*backtest
start: 2023-11-01 00:00:00
end: 2023-11-30 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(title="Strategy - Bobo PATR Swing", overlay=true, default_qty_type = strategy.fixed, default_qty_value = 1, initial_capital = 10000)

// === STRATEGY RELATED INPUTS AND LOGIC ===
PivottimeFrame = input(title="Pivot Timeframe",  defval="D")
ATRSDtimeFrame = input(title="ATR Band Timeframe (Lower timeframe = wider bands)",  defval="D")
len = input(title="ATR lookback (Lower = bands more responsive to recent price action)",  defval=13)
myatr = atr(len)
dailyatr = request.security(syminfo.tickerid, ATRSDtimeFrame, myatr[1])
atrdiv = input(title="ATR divisor (Lower = wider bands)", type=float, defval=2)
pivot0 = (high[1] + low[1]  + close[1]) / 3
pivot = request.security(syminfo.tickerid, PivottimeFrame, pivot0)
upperband1 = (dailyatr / atrdiv) + pivot
lowerband1 = pivot - (dailyatr / atrdiv)
middleband = pivot

// == TREND CALC ===
i1=input(2, "Momentum Period", minval=1) //Keep at 2 usually
i2=input(20, "Slow Period", minval=1)
i3=input(5, "Fast Period", minval=1)
i4=input(3, "Smoothing Period", minval=1)
i5=input(4, "Signal Period", minval=1)
i6=input(50, "Extreme Value", minval=1)
hiDif = high - high[1]
loDif = low[1] - low
uDM = hiDif > loDif and hiDif > 0 ? hiDif : 0
dDM =  loDif > hiDif and loDif > 0 ? loDif : 0
ATR = rma(tr(true), i1)
DIu = 100 * rma(uDM, i1) / ATR
DId = 100 * rma(dDM, i1) / ATR
HLM2 =  DIu - DId
DTI = (100 * ema(ema(ema(HLM2, i2), i3), i4)) /  ema(ema(ema(abs(HLM2), i2), i3), i4)
signal = ema(DTI, i5)


// === RISK MANAGEMENT INPUTS ===
inpTakeProfit   = input(defval = 0, title = "Take Profit (In Market MinTick Value)", minval = 0)
inpStopLoss     = input(defval = 100, title = "Stop Loss (In Market MinTick Value)", minval = 0)

// === RISK MANAGEMENT VALUE PREP ===
// if an input is less than 1, assuming not wanted so we assign 'na' value to disable it.
useTakeProfit   = inpTakeProfit  >= 1 ? inpTakeProfit  : na
useStopLoss     = inpStopLoss    >= 1 ? inpStopLoss    : na

// === STRATEGY - LONG POSITION EXECUTION ===
enterLong = (((low<=lowerband1) and (close >lowerband1)) or ((open <= lowerband1) and (close > lowerband1))) and (strategy.opentrades <1) and (atr(3) > atr(50)) and (signal>signal[3])
exitLong = (high > middleband)
strategy.entry(id = "Long", long = true, when = enterLong) 
strategy.close(id = "Long", when = exitLong)

// === STRATEGY - SHORT POSITION EXECUTION ===
enterShort = (((high>=upperband1) and (close < upperband1)) or ((open >= upperband1) and (close < upperband1))) and (strategy.opentrades <1) and (atr(3) > atr(50)) and (signal<signal[3])
exitShort = (low < middleband)
strategy.entry(id = "Short", long = false, when = enterShort)
strategy.close(id = "Short", when = exitShort)

// === STRATEGY RISK MANAGEMENT EXECUTION ===
strategy.exit("Exit Long", from_entry = "Long", profit = useTakeProfit, loss = useStopLoss)
strategy.exit("Exit Short", from_entry = "Short", profit = useTakeProfit, loss = useStopLoss)

// === CHART OVERLAY ===
plot(upperband1, color=#C10C00, linewidth=3)
plot(lowerband1, color=#23E019, linewidth=3)
plot(middleband, color=#00E2E2, linewidth=3)
//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)