ATR 및 EMA를 기반으로 한 동적 손절매 및 손절매 적응형 전략

ATR EMA
생성 날짜: 2024-05-28 14:15:56 마지막으로 수정됨: 2024-05-28 14:15:56
복사: 1 클릭수: 835
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

ATR 및 EMA를 기반으로 한 동적 손절매 및 손절매 적응형 전략

개요

이 전략은 ATR ((평균 실제 파동) 및 EMA ((지수 이동 평균) 두 지표를 사용하여 동적으로 스톱포드 지점을 조정하여 시장의 변동에 적응한다. 전략의 주요 아이디어는: ATR 지표를 사용하여 시장의 변동성을 측정하고 변동률의 크기에 따라 스톱포드 지점을 설정한다. 동시에 EMA 지표를 사용하여 거래 방향을 결정하고, 가격이 EMA를 상향으로 돌파 할 때 더 많은 주문을 열고, EMA를 하향으로 돌파 할 때 빈 주문을 열는다. 이 전략은 시장의 변동에 따라 스톱포드 지점을 자동으로 조정하여 동적 위험을 제어하는 목적을 달성합니다.

전략 원칙

  1. ATR 지수를 계산하여 시장의 변동률을 측정합니다.
  2. ATR의 값과 입력된 배수 변수에 따라 동적 스톱피트를 계산한다.
  3. EMA 지표를 필터링 조건으로 사용하여 가격이 상향으로 EMA를 돌파 할 때 과잉 주문을 열고, 하향으로 EMA를 돌파 할 때 공명 주문을 열습니다.
  4. 포지션을 보유할 때, 가격의 변화와 동적 스톱 손실 지점의 변화에 따라 계속적으로 스톱 손실 지점을 조정한다.
  5. 가격이 동적 스톱 로즈 지점을 만지면, 포지션을 청산하고 역으로 포지션을 개시한다.

전략적 이점

  1. 자기 적응력: 동적으로 스톱 스톱 손실 지점을 조정함으로써, 전략은 다양한 시장 상태의 변동율 변화에 적응하고 위험을 제어할 수 있다.
  2. 트렌드 추적 능력: EMA 지표를 사용하여 거래 방향을 판단하여 시장의 흐름을 효과적으로 포착 할 수 있습니다.
  3. 매개 변수 조정: ATR의 주기 및 배수 매개 변수를 조정하여 전략의 위험과 수익을 유연하게 제어할 수 있다.

전략적 위험

  1. 매개 변수 설정 위험: ATR 주기 및 배수 매개 변수의 설정은 전략의 성능에 직접적으로 영향을 미치며, 매개 변수 설정이 잘못되면 전략이 실패할 수 있다.
  2. 흔들리는 시장 위험: 흔들리는 시장에서, 빈번하게 상장하는 것은 큰 슬라이드 포인트와 수수료 손실을 초래할 수 있다.
  3. 트렌드 전환 위험: 시장 추세가 전환되면 전략이 연속으로 손실을 입을 수 있습니다.

전략 최적화 방향

  1. 트렌드 판단의 정확성을 높이기 위해 MACD, RSI 등과 같은 더 많은 기술 지표를 도입하십시오.
  2. 정지 손실 지점의 계산 방법을 최적화하여 이동 정지, 동적 비율 정지 등을 도입하는 방법.
  3. 매개 변수를 최적화하여 최적의 ATR 주기 및 배수 매개 변수 조합을 찾아 전략의 안정성과 수익성을 향상시킵니다.
  4. 포지션 관리 모듈을 추가하여 시장의 변동성과 계좌의 위험 수준에 따라 포지션 크기를 동적으로 조정합니다.

요약하다

이 전략은 ATR와 EMA 두 지표를 활용하여 동적으로 스톱 스톱 손실 지점을 조정하여 시장의 변동성에 적응하고 EMA 지표를 사용하여 거래 방향을 판단한다. 전략은 강한 적응력과 트렌드 추적 능력을 가지고 있지만, 매개 변수 설정, 흔들리는 시장 및 트렌드 전환 시에는 약간의 위험에 직면 할 수 있다.

전략 소스 코드
/*backtest
start: 2024-04-27 00:00:00
end: 2024-05-27 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

//@version=5
strategy(title='UT MB&SS Bot', overlay=true)

// Inputs
a = input(1, title='Key Value. \'This changes the sensitivity\'')
c = input(10, title='ATR Period')
h = input(false, title='Signals from Heikin Ashi Candles')
stoploss = input(2.0, title='Stop Loss (ATR Multiples)')

xATR = ta.atr(c)
nLoss = a * xATR

src = h ? request.security(ticker.heikinashi(syminfo.tickerid), timeframe.period, close, lookahead=barmerge.lookahead_off) : close

var xATR_trailing_stop = 0.0
iff_1 = src > nz(xATR_trailing_stop[1], 0) ? src - nLoss : src + nLoss
iff_2 = src < nz(xATR_trailing_stop[1], 0) and src[1] < nz(xATR_trailing_stop[1], 0) ? math.min(nz(xATR_trailing_stop[1]), src + nLoss) : iff_1
xATR_trailing_stop := src > nz(xATR_trailing_stop[1], 0) and src[1] > nz(xATR_trailing_stop[1], 0) ? math.max(nz(xATR_trailing_stop[1]), src - nLoss) : iff_2

pos = 0
iff_3 = src[1] > nz(xATR_trailing_stop[1], 0) and src < nz(xATR_trailing_stop[1], 0) ? -1 : nz(pos[1], 0)
pos := src[1] < nz(xATR_trailing_stop[1], 0) and src > nz(xATR_trailing_stop[1], 0) ? 1 : iff_3

xcolor = pos == -1 ? color.red : pos == 1 ? color.green : color.blue

ema = ta.ema(src, 1)
above = ta.crossover(ema, xATR_trailing_stop)
below = ta.crossover(xATR_trailing_stop, ema)

buy = src > xATR_trailing_stop and above
sell = src < xATR_trailing_stop and below

barbuy = src > xATR_trailing_stop
barsell = src < xATR_trailing_stop

plotshape(buy, title='Buy', text='Buy', style=shape.labelup, location=location.belowbar, color=color.new(color.green, 0), textcolor=color.new(color.white, 0), size=size.tiny)
plotshape(sell, title='Sell', text='Sell', style=shape.labeldown, location=location.abovebar, color=color.new(color.red, 0), textcolor=color.new(color.white, 0), size=size.tiny)

barcolor(barbuy ? color.green : na)
barcolor(barsell ? color.red : na)

stop_level = pos == 1 ? xATR_trailing_stop - stoploss * xATR : xATR_trailing_stop + stoploss * xATR
stop_level := math.max(stop_level, nz(stop_level[1]))

if pos == 1
    strategy.exit('Exit Long', 'UT Long', stop=stop_level)
else if pos == -1
    strategy.exit('Exit Short', 'UT Short', stop=stop_level)





if buy
    strategy.entry("Enter Long", strategy.long)
else if sell
    strategy.entry("Enter Short", strategy.short)