이 전략은 주로 EMA와 표준편차 지표를 사용하여 EMA 크로스 신호를 통해 트렌드 방향을 결정하고 구매 및 판매 신호를 생성하기 위해 표준편차와 함께 브레이크 아웃 신호를 찾습니다. 가격은 상부 레일을 통과 할 때 구매 신호를 생성하고 가격이 하부 레일을 통과 할 때 판매 신호를 생성하는 트렌드 추적 유형의 전략에 속합니다.
이 전략은 세 가지 주요 부분으로 구성됩니다.
EMA 차이 (s2): 가격 트렌드 방향을 결정하기 위해 빠른 EMA (ema_range) 와 느린 EMA (ema_watch) 사이의 차이를 계산합니다.
표준편차 채널 (s3): 표준편차의 배수와 EMA 차이를 기반으로 상위 및 하위 채널을 구축합니다. 표준편차 배수는 황금 비율 5.618을 사용합니다.
플래그와 신호: 가격이 하위 레일을 넘어서면 하위 레일을 넘어서면 구매 신호를 생성하고, 가격이 하위 레일을 넘어서면 상하위 레일을 넘어서면 판매 신호를 생성합니다. 플래그 모양은 신호를 표시하는 데 사용됩니다.
이러한 지표 조합을 통해 가격의 트렌드 방향을 파악하고 주요 지점에서 구매 및 판매 신호를 생성 할 수 있습니다. 이는 전형적인 트렌드 추적 전략에 속합니다.
이 전략은 다음과 같은 장점을 가지고 있습니다.
또한 몇 가지 위험이 있습니다.
해결책:
이 전략은 다음과 같은 방향으로 최적화 될 수 있습니다.
요약하면, 이것은 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)