Desvio duplo da média móvel combinado com a tendência do indicador ATR seguindo a estratégia


Data de criação: 2023-11-16 11:25:23 última modificação: 2023-11-16 11:25:23
cópia: 0 Cliques: 855
1
focar em
1617
Seguidores

Desvio duplo da média móvel combinado com a tendência do indicador ATR seguindo a estratégia

Visão geral

A estratégia utiliza um duplo EMA de forcas de ouro e de forcas de morte para determinar a volatilidade do mercado, em conjunto com o indicador ATR, para alcançar a tendência de compra e venda de baixa e alta. A estratégia é seguida quando a linha de forcas de ouro é lenta e o indicador ATR é inferior ao dia anterior.

Princípio da estratégia

  1. Usar uma linha média de EMA dupla com comprimentos de 20 e 55. Quando a linha rápida atravessa a linha lenta produz um garfo de ouro, é considerado um sinal de múltiplas cabeças; Quando a linha rápida atravessa a linha lenta produz um garfo de morte, é considerado um sinal de cabeças vazias.

  2. O indicador ATR pode refletir a volatilidade e o nível de risco do mercado. Quando o ATR é menor que o dia anterior, indica que a volatilidade do mercado diminuiu e é adequado para a intervenção; Quando o ATR é maior que o dia anterior, indica que a volatilidade do mercado aumentou e é adequada para a intervenção.

  3. Apenas faça mais quando a linha de ouro forquilha rápida e o ATR estiver abaixo do dia anterior; apenas faça vazio quando a linha de forquilha rápida e o ATR estiver acima do dia anterior. Evite intervir facilmente quando o mercado estiver mais flutuante.

  4. O indicador ATR também é usado para definir o ponto de parada e o ponto de parada. O ponto de parada é o preço atual menos o ATR multiplicado pelo parâmetro de parada; o ponto de parada é o preço atual mais o ATR multiplicado pelo parâmetro de parada.

  5. O Stop Loss Multiplier é o 3x ATR por defeito, e o Stop Loss Multiplier é o 3x ATR por defeito. Isso permite que o Stop Loss e o Stop Out acompanhem dinamicamente as flutuações do mercado.

Vantagens estratégicas

  1. O uso de um sistema de dupla linha de equilíbrio pode fornecer uma confirmação mais forte do julgamento do estado de vazio. Evite ser enganado pelos falsos avanços comuns no mercado.

  2. A introdução do indicador ATR, que permite que a estratégia intervenha apenas em situações de baixa volatilidade, pode filtrar muitos sinais falsos e reduzir o risco do sistema.

  3. O ATR permite que o stop loss seja ajustado ao nível de flutuação do mercado. Evite que o stop loss fique muito perto ou que o stop loss fique muito longe.

  4. Pode ser configurado para usar o cruzamento linear uniforme como um mecanismo de saída adicional. Isso pode otimizar ainda mais os resultados de perda do sistema.

  5. Pode-se definir o nível de stop loss e stop loss de acordo com a dinâmica do ATR, mais de acordo com a lógica de negociação de tendências, o stop loss não é muito sensível e o stop loss não é muito relaxado.

Risco estratégico

  1. Um sistema de dupla linha determina que há um certo atraso no sinal. Pode perder uma tendência de curto prazo mais forte.

  2. Quando as flutuações são altas, o ATR aumenta e pode perder o tempo de intervenção. Deve-se ajustar adequadamente os parâmetros do ATR.

  3. Quando se mantém uma posição a longo prazo, o ponto de parada pode ser muito próximo e deve ser combinado com uma flexibilidade apropriada da tendência.

  4. O sistema de linha-meia é pouco eficaz para avaliar o cenário de curvatura. Deve ser confirmado com outros indicadores.

  5. Os parâmetros do ATR devem ser ajustados de acordo com diferentes períodos de diferentes variedades. A escolha incorreta dos parâmetros pode afetar os prejuízos do sistema.

Direção de otimização da estratégia

  1. Pode-se testar combinações lineares de diferentes parâmetros de comprimento para encontrar parâmetros de linha média que melhor correspondam às características de tendência da variedade.

  2. Outros indicadores, como MACD, KD, podem ser introduzidos para confirmar o sinal de cruzamento de equilíbrio, aumentando a Entscheidungssicherheit.

  3. Os parâmetros do ATR podem ser otimizados através da retrospectiva para que sejam mais adequados às características de estabilidade de flutuação da variedade.

  4. O fator ATR pode ser configurado como uma variável ajustável, ajustando dinamicamente a posição de parada de perda de acordo com a força da tendência.

  5. Pode ser combinado com um indicador de força de tendência, reduzindo o requisito de parada em uma tendência fraca e aumentando o requisito de parada em uma tendência forte.

Resumir

A estratégia integra o julgamento de tendências da dupla linha média EMA e o controle de risco do indicador de volatilidade ATR, formando um sistema de acompanhamento de tendências mais completo. O foco da otimização da estratégia é ajustar a linha média e os parâmetros ATR para torná-los mais adequados às características da variedade, bem como projetar mecanismos de stop loss dinâmicos para acompanhar as mudanças de intensidade da tendência.

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

//@version=4
// **********************************************
// PtahX EMA/ATR Strategy Public Release
// EMA Strategy with ATR & "Fear Factor" built in 
// written by PtahX October 2019
// * modifications welcome 
// * please let me know if you improve it so I can continue to learn :) 
// * use at your own risk - I'm a new programmer and still learning
// * Best of luck on your trades!!

// Take Profit (TP) option based on ATR or MA Crossover 
//***********************************************

strategy(title="PtahX EMA/ATR Strategy", overlay=true, pyramiding=1, calc_on_every_tick=true, default_qty_value=1, initial_capital=10000, slippage=2)

//***************************** 
// Global Inputs
//***************************** 

fastMA = input(title="Fast Moving Average", defval=20, step=1)
slowMA = input(title="Slow Moving Average", defval=55, step=1)
source = input(close, title="Source")
atrLength = input(title="ATR Length", defval=14, minval=7, step=1)
slMultiplier = input(title="Stop Loss Multiple", type=input.float, defval=3, minval=1, step=0.2)
tpMultiplier = input(title= "Take Profit Multiple", type=input.float, defval=3, minval=1, step=0.2)
maPlot = input(true, title="Plot EMA?")
maCrossoverExit =  input(false, title="Exit with Slow MA Crossover?")
atrExit = input(true, title="Exit with ATR?")
//***********************************
// ATR
//***********************************
atr = atr(atrLength)


//***********************************
// Volatility Filter
//**********************************
// During uptrends the ATR indicator tends to post lower volatility. 
// During downtrends, the ATR indicator tends to post higher volatility

volatilityBullish = atr < atr[1] 
volatilityBearish = atr > atr[1]


//***********************************
// Moving Averages
//***********************************
    
// Double Line Plot Code (used for Entries & Exits not plotted by default)
fast = ema(source, fastMA)
slow = ema(source, slowMA)
maLong = crossover(fast, slow)
maShort = crossunder(fast, slow) 

// Single Line Plot Code
bullish = slow > slow[1]
bearish = slow < slow[1]
barColor = bullish ? color.green : bearish ? color.red : color.blue


//***************************** 
// Entries
//***************************** 

entryLong = maLong and volatilityBullish
entryShort = maShort and volatilityBearish

if entryLong
    sLoss = source - atr * slMultiplier
    strategy.entry("Long", strategy.long, qty=10)
    strategy.exit("Long Exit", "Long", stop=sLoss)


if entryShort
    sLoss = source + atr * slMultiplier
    tProfit = close > slowMA
    strategy.entry("Short", strategy.short, qty=10)
    strategy.exit("Short Exit", "Short", stop=sLoss)


//***************************** 
// Exits
//*****************************

exitLong = 0
exitShort = 0

if maCrossoverExit
    exitLong = maShort
    exitShort = maLong
    strategy.exit("Long Exit", "Long", when = exitLong)
    strategy.exit("Short Exit", "Short", when = exitShort)

if atrExit
    exitLong = source + atr * tpMultiplier
    exitShort = source - atr * tpMultiplier
    strategy.exit("Long Exit", "Long", limit = exitLong)
    strategy.exit("Short Exit", "Short", limit = exitShort)


//******************************
// ATR Based Exit/ Stop Plotting 
//******************************

// Stop Loss Calculations
longStopLoss = source - atr(atrLength) * slMultiplier
shortStopLoss = source + atr(atrLength) * slMultiplier

longTakeProfit = source - atr(atrLength) * slMultiplier
shortTakeProfit = source + atr(atrLength) * slMultiplier
  

//*********************************
//Chart Plotting
//*********************************

//ATR Based Stop Losses
plot(shortStopLoss, color=color.fuchsia, offset=0, transp=0, show_last=5, linewidth=2, style=plot.style_stepline, title="Short Stop Loss")
plot(longStopLoss, color=color.fuchsia, offset=0, transp=0, show_last=5, linewidth=2, style=plot.style_stepline, title="Long Stop Loss")


// Single Slow EMA Option
plot(slow and maPlot ? slow : na, title="EMA", color=barColor, linewidth=3)