동적 정지 전략에 따른 트렌드

저자:차오장, 날짜: 2023-11-01 13:46:28
태그:

img

전반적인 설명

이 전략은 가격이 EMA를 넘을 때 거래 신호를 생성하고 ATR을 동적 스톱 로스로 사용하여 위험을 관리합니다.

어떻게 작동 합니까?

핵심 논리는

  1. 스톱 손실 라인으로 ATR를 계산, ATR 값은 스톱 거리를 결정 nLoss

  2. 가격 소스는 기본적으로 닫기 가격입니다.

  3. xATRTrailingStop는 이전 스톱과 가격 비교를 기반으로 동적 스톱 손실 라인을 추적합니다.

  4. 포지션 포스는 가격이 스톱 로스 라인을 넘어서면 1이고, 그 아래로 넘어가면 -1이고, 그렇지 않으면 0입니다.

  5. EMA 크로스오버 신호, EMA 위는 구매 신호, 아래는 판매 신호

  6. 구매/판매 신호로 거래를 시작하고 반대 신호로 거래를 종료

  7. 위치, 표시 신호 및 스톱 손실 라인을 기반으로 색상 바

이 전략은 ATR에 기반한 동적 정지로 트렌드를 추적합니다. 트렌드를 식별하고 위험을 효과적으로 관리 할 수 있습니다.

장점

이점은 다음과 같습니다.

  1. ATR 기반의 동적 정류는 시장 변동성에 적응합니다.

  2. EMA 필터는 소음으로부터의 잘못된 신호를 감소시킵니다.

  3. 선택적인 하이킨 아시 소음 필터와 트렌드를 식별

  4. Clear long/short position avoids whipsaws from trailing stop order의 번역 결과:

  5. 라인, 라벨, 색칠 등의 시각적 보조

  6. 간단하고 이해하기 쉬운 수정 논리

  7. 다른 시장에 맞게 조정 가능한 ATR 기간 및 곱셈자

요약하자면, 트렌드 추적과 동적 스톱을 결합함으로써 이 전략은 트렌드를 파악하고 스윙 트레이딩에서 위험을 잘 관리할 수 있습니다.

위험성

고려해야 할 몇 가지 위험 요소가 있습니다.

  1. EMA 신호는 단기 움직임이 빠질 수 있습니다.

  2. 불안한 시장에서 빈번한 스톱 로스 트리거가 가능

  3. 수수료와 같은 비용을 고려하지 않습니다.

  4. 위치 사이즈 제어 부족

  5. 성능은 매개 변수 조정에 달려 있습니다.

  6. 다양한 시장에서 위프사 (wipssaws) 의 위험

  7. 감시와 개입이 필요합니다.

위험은 매개 변수를 최적화하고 필터를 추가하고 위치를 적절히 측정하고 성능을 모니터링하고 필요한 경우 개입함으로써 줄일 수 있습니다.

최적화

전략을 개선할 수 있는 몇 가지 방법:

  1. 다른 시장에 대한 ATR 매개 변수를 조정

  2. 신호를 필터링하기 위해 다른 이동 평균을 테스트

  3. 더 높은 확률을 위해 트렌드 필터 지표를 추가합니다.

  4. 위치 크기 제한을 구현

  5. 부피, MA로부터의 거리와 같은 입력 조건을 추가합니다

  6. 수수료와 같은 비용을 중지에 포함

  7. 더 많은 신호로 출입 및 출입 시기를 최적화하십시오.

  8. 이윤 취득 또는 후속 중지 도입

  9. 자동 매개 변수 최적화

입구, 출구, 필터 및 매개 변수 조정에 대한 더 많은 기술을 결합함으로써 전략을 더욱 강화 할 수 있습니다.

결론

이 전략은 동적인 스톱과 트렌드를 잘 따라가는 것을 결합합니다. 효과적인 스톱, 원활한 트렌드 추적, 사용 편의성 및 사용자 정의 가능성으로 스윙 트렌드에 적합합니다. 그러나 적절한 리스크 관리, 모니터링 및 매개 변수 조정이 필요합니다. 트렌딩 시장에 잘 적용되면 좋은 결과를 얻을 수 있습니다. 전반적으로 트렌드 트레이딩과 리스크 관리를 결합하는 간단하고 실용적인 접근 방식을 제공합니다.


/*backtest
start: 2022-10-25 00:00:00
end: 2023-10-31 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="UT Bot Strategy", overlay = true)
//CREDITS to HPotter for the orginal code. The guy trying to sell this as his own is a scammer lol. 

// Inputs
a = input(1,     title = "Key Vaule. 'This changes the sensitivity'")
c = input(10,    title = "ATR Period")
h = input(false, title = "Signals from Heikin Ashi Candles")

xATR  = atr(c)
nLoss = a * xATR

src = h ? security(heikinashi(syminfo.tickerid), timeframe.period, close, lookahead = false) : close

xATRTrailingStop = 0.0
xATRTrailingStop := iff(src > nz(xATRTrailingStop[1], 0) and src[1] > nz(xATRTrailingStop[1], 0), max(nz(xATRTrailingStop[1]), src - nLoss),
   iff(src < nz(xATRTrailingStop[1], 0) and src[1] < nz(xATRTrailingStop[1], 0), min(nz(xATRTrailingStop[1]), src + nLoss), 
   iff(src > nz(xATRTrailingStop[1], 0), src - nLoss, src + nLoss)))
 
pos = 0   
pos :=	iff(src[1] < nz(xATRTrailingStop[1], 0) and src > nz(xATRTrailingStop[1], 0), 1,
   iff(src[1] > nz(xATRTrailingStop[1], 0) and src < nz(xATRTrailingStop[1], 0), -1, nz(pos[1], 0))) 
   
xcolor = pos == -1 ? color.red: pos == 1 ? color.green : color.blue 

ema   = ema(src,1)
above = crossover(ema, xATRTrailingStop)
below = crossover(xATRTrailingStop, ema)

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

barbuy  = src > xATRTrailingStop 
barsell = src < xATRTrailingStop 

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

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

strategy.entry("long",   true, when = buy)
strategy.entry("short", false, when = sell)

더 많은