돌파구 콜백 트레이딩 전략은 절대 강도 지수와 MACD 지수를 계산하여 특정 트렌드에 따라 돌파구 콜백 트레이딩을 실현합니다. 그것은 단기 거래 전략에 속합니다. 이 전략은 주요 트렌드, 중장기 트렌드 및 단기 트렌드를 판단하기 위해 여러 지표를 통합합니다. 트렌드 조화 및 지표 보완 확인 신호를 통해 트렌드 추적 거래를 수행합니다.
이 전략은 주로 절대 강도 지표와 MACD 가격 지표에 의존하여 돌파구 콜백 거래를 구현합니다. 첫째, 주요 트렌드 방향을 판단하기 위해 가격의 9 기간, 21 기간 및 50 기간 EMA를 계산합니다. 그 다음 단기 조정의 강도를 반영하기 위해 가격의 절대 강도 지표를 계산합니다. 마지막으로 단기 트렌드 방향을 판단하기 위해 MACD 지표를 계산합니다. 주요 트렌드가 상승하고 단기 조정이있을 때 구입합니다. 주요 트렌드가 하락하고 단기 리바운드가있을 때 판매합니다.
특히, 품종의 주요 상승 추세는 9일 EMA가 21일 EMA보다 높고, 21일 EMA가 50일 EMA보다 높아야 한다. 단기 조정의 판단 기준은 절대 강도 지수의 차이는 0보다 작고 MACDDIFF는 0보다 작다는 것이다. 품종의 주요 하락 추세는 9일 EMA가 21일 EMA보다 낮고, 21일 EMA가 50일 EMA보다 낮아야 한다. 단기 리바운드를 판단하는 기준은 절대 강도 지수의 차이는 0보다 크고 MACDDIFF가 0보다 크다는 것이다.
이 전략은 다음과 같은 장점을 가지고 있습니다.
이 전략은 또한 몇 가지 위험을 안고 있습니다.
위의 위험에 대응하여 매개 변수 최적화, 다른 주기의 지표를 판단, 단일 손실을 제어하기 위해 위치 규칙을 조정, 신호를 필터하기 위해 더 많은 지표를 결합하고 정확도를 향상시키는 방법과 같은 방법을 사용하여 전략을 개선 할 수 있습니다.
이 전략은 다음과 같은 측면에서 최적화 될 수 있습니다.
요약하자면, 돌파구 콜백 거래 전략은 일반적으로 비교적 안정적인 단기 거래 전략이다. 오스실레이션 시장에서 잘못된 거래를 피하기 위해 멀티 타임프레임 트렌드 판단을 결합합니다. 동시에, 지표의 결합 사용은 판단의 정확성을 향상시킵니다. 후속 테스트와 최적화를 통해이 전략은 장기적으로 보유 가치가있는 안정적인 전략이 될 수 있습니다.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Divergence Scalper [30MIN]", overlay=true , commission_value=0.04 ) message_long_entry = input("long entry message") message_long_exit = input("long exit message") message_short_entry = input("short entry message") message_short_exit = input("short exit message") //3x ema out9 = ta.ema(close,9) out21 = ta.ema(close,21) out50 = ta.ema(close,50) //abs absolute_str_formula( ) => top=0.0 bottom=0.0 if(close>close[1]) top:= nz(top[1])+(close/close[1]) else top:=nz(top[1]) if(close<=close[1]) bottom:= nz(bottom[1])+(close[1]/close) else bottom:=nz(bottom[1]) if (top+bottom/2>=0) 1-1/(1+(top/2)/(bottom/2)) abs_partial=absolute_str_formula() abs_final = abs_partial - ta.sma(abs_partial,50) //macd fast_length = input(title="Fast Length", defval=23) slow_length = input(title="Slow Length", defval=11) src = input(title="Source", defval=open) signal_length = input.int(title="Signal Smoothing", minval = 1, maxval = 50, defval = 6) sma_source = input.string(title="Oscillator MA Type", defval="EMA", options=["SMA", "EMA"]) sma_signal = input.string(title="Signal Line MA Type", defval="SMA", options=["SMA", "EMA"]) // Calculating fast_ma = sma_source == "SMA" ? ta.sma(src, fast_length) : ta.ema(src, fast_length) slow_ma = sma_source == "SMA" ? ta.sma(src, slow_length) : ta.ema(src, slow_length) macd = fast_ma - slow_ma signal = sma_signal == "SMA" ? ta.sma(macd, signal_length) : ta.ema(macd, signal_length) hist = macd - signal long= abs_final > 0 and hist <0 and out9<out21 and out21<out50 short = abs_final <0 and hist >0 and out9>out21 and out21>out50 long_exit = abs_final <0 and hist >0 and out9>out21 and out21>out50 short_exit = abs_final > 0 and hist <0 and out9<out21 and out21<out50 strategy.entry("long", strategy.long, when = long and barstate.isconfirmed, alert_message = message_long_entry) strategy.entry("short", strategy.short, when = short and barstate.isconfirmed, alert_message = message_short_entry) strategy.close("long", when = long_exit and barstate.isconfirmed, alert_message = message_long_exit) strategy.close("short", when = short_exit and barstate.isconfirmed, alert_message = message_short_exit)