트렌드 추적 플래그 패턴 전략

저자:차오장, 날짜: 2023-11-27 15:30:29
태그:

img

전반적인 설명

이 전략은 주로 EMA와 표준편차 지표를 사용하여 EMA 크로스 신호를 통해 트렌드 방향을 결정하고 구매 및 판매 신호를 생성하기 위해 표준편차와 함께 브레이크 아웃 신호를 찾습니다. 가격은 상부 레일을 통과 할 때 구매 신호를 생성하고 가격이 하부 레일을 통과 할 때 판매 신호를 생성하는 트렌드 추적 유형의 전략에 속합니다.

전략 논리

이 전략은 세 가지 주요 부분으로 구성됩니다.

  1. EMA 차이 (s2): 가격 트렌드 방향을 결정하기 위해 빠른 EMA (ema_range) 와 느린 EMA (ema_watch) 사이의 차이를 계산합니다.

  2. 표준편차 채널 (s3): 표준편차의 배수와 EMA 차이를 기반으로 상위 및 하위 채널을 구축합니다. 표준편차 배수는 황금 비율 5.618을 사용합니다.

  3. 플래그와 신호: 가격이 하위 레일을 넘어서면 하위 레일을 넘어서면 구매 신호를 생성하고, 가격이 하위 레일을 넘어서면 상하위 레일을 넘어서면 판매 신호를 생성합니다. 플래그 모양은 신호를 표시하는 데 사용됩니다.

이러한 지표 조합을 통해 가격의 트렌드 방향을 파악하고 주요 지점에서 구매 및 판매 신호를 생성 할 수 있습니다. 이는 전형적인 트렌드 추적 전략에 속합니다.

이점 분석

이 전략은 다음과 같은 장점을 가지고 있습니다.

  1. EMA는 트렌드를 효과적으로 추적할 수 있습니다.
  2. 표준편차는 잘못된 신호를 피하기 위해 채널을 만듭니다.
  3. 깃발 모양은 신호를 명확하게 합니다.
  4. 유연한 매개 변수 설정 이동 평균 및 표준편차 곱하기
  5. 최대 마감 통제는 위험을 줄이는 데 도움이 됩니다.

위험 분석

또한 몇 가지 위험이 있습니다.

  1. 범위에 묶인 시장에서는 더 많은 잘못된 신호가 발생할 수 있습니다.
  2. 너무 큰 표준편차 배수는 기회를 놓칠 수 있습니다.
  3. 스톱 로즈는 리트레이싱 시 더 큰 손실을 초래할 수 없습니다.

해결책:

  1. 범위에 따른 시장 판단을 추가하고 다른 전략을 사용하세요.
  2. 표준편차를 최적화해
  3. 개별 트레이드의 손실을 제어하기 위해 이동 스톱 손실을 추가합니다.

최적화

이 전략은 다음과 같은 방향으로 최적화 될 수 있습니다.

  1. 신호 품질을 향상시키기 위해 볼링거 밴드 같은 더 많은 지표를 추가합니다.
  2. 이동 평균과 표준편차 매개 변수를 최적화합니다.
  3. 마감액을 줄이기 위해 스톱 로스 전략을 추가합니다.
  4. 다양한 시장에 따라 최적의 구매/판매 신호 매개 변수를 설정합니다.
  5. 기계 학습 알고리즘을 추가하여 전체 시장 체제를 결정합니다.

결론

요약하면, 이것은 EMA와 표준편차를 사용하여 지표 시스템을 구축하고 주요 지점에서 플래그 신호를 생성하는 전형적인 트렌드 추적 전략입니다. 장점은 트렌드를 파악하고 표준편차와 함께 잘못된 신호를 피하는 데 있습니다. 주요 위험은 범위 제한 시장에서 잘못된 신호와 스톱 손실이없는 드래운다운 위험에서 발생합니다. 판단 지표, 최적화 매개 변수 및 스톱 손실을 추가함으로써 전략은 안정성과 수익성 측면에서 더욱 향상 될 수 있습니다. 전반적으로 전략 프레임워크는 합리적이며 최적화 잠재력이 있습니다.


/*backtest
start: 2023-09-27 00:00:00
end: 2023-11-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("ROCKET_EWO", overlay=true)
ema_range = input(5)
ema_watch = input(13)
inval_a = input(open)
inval_b = input(open)
ratio = input(0)
max = 5000
s2=ta.ema(inval_a, ema_range) - ta.ema(inval_b, ema_watch)
c_color=s2 <= ratio ? 'red' : 'lime'
s3 = s2 + (ta.stdev(open, 1)) * 5.618
plotshape(s3, color=color.white, style=shape.cross, location=location.abovebar, size=size.auto, show_last=max, transp=30, offset= 0)
cr = s2 > 0
alertcondition(cr, title='[Rocket_EWO]', message='[Rocket_EWO]')
buy = s2 > 1
sell = s2 < -1
txt  = "🚀" + "\n"+ "\n"+ "\n"+ "\n"
plotshape(buy, color=color.lime, style=shape.triangleup, location=location.belowbar ,color=color.white, text=txt, size=size.normal, show_last=max, transp=1, offset= -3)
plotshape(not buy, color=color.red, style=shape.triangledown, location=location.belowbar, size=size.normal, show_last=max, transp=1, offset= 0)
signalperiod = time
s4 = ta.cross(s2, 0) ? time : na
colsig= s2 <= ratio ? color.red : color.lime
plotshape((time==s4)?7000:na,color=color.blue, style=shape.flag, location=location.abovebar, size=size.large, transp=1)

longCondition =  ta.crossover(s2, 1.618)
if (longCondition)
    strategy.entry("LONG Id", strategy.long)

shortCondition = ta.crossunder(s2, 1.618)
if (shortCondition)
    strategy.entry("SHORT Id", strategy.short)

strategy.close("LONG Id", when = s2 < 0.218)
// strategy.risk.max_drawdown(75, strategy.percent_of_equity)


더 많은