이 전략은 액셀러레이터 오시레레이터 (AC) 와 스토카스틱 지표를 결합한 양적 거래 시스템이다. 잠재적인 트렌드 반전을 예측하기 위해 가격과 기술 지표 사이의 오차를 식별함으로써 시장 추진력 변화를 포착한다. 이 전략은 또한 신호 신뢰성을 향상시키기 위해 간단한 이동 평균 (SMA) 과 상대 강도 지표 (RSI) 를 통합하고 있으며, 위험 통제를 위해 고정된 영리 및 스톱 로스 레벨을 갖추고 있다.
핵심 논리는 여러 기술적 지표의 시너지에 기반합니다. AC는 N 기간 이동 평균을 빼고 5 기간 및 34 기간 SMA의 가격 중간 지점의 차이를 사용하여 계산됩니다. 스토카스틱 K 및 D 값은 분산 신호를 확인하기 위해 계산됩니다. AC가 상승하는 동안 가격이 새로운 최저치를 만들 때 상승 분리가 형성됩니다. AC가 떨어지는 동안 가격이 새로운 최고치를 만들 때 하락 분리가 형성됩니다. RSI는 신호 정확성을 향상시키기 위해 여러 지표의 교차 검증을 사용하여 추가 확인 지표로 통합됩니다.
이 전략은 여러 가지 기술적 지표를 통합하여 분산 신호를 통해 시장 전환점을 포착하는 양적 거래 전략입니다. 이 전략의 장점은 여러 가지 지표와 포괄적인 리스크 제어 시스템의 교차 검증에 있으며, 잘못된 브레이크아웃과 매개 변수 최적화에주의를 기울여야합니다. 지속적인 최적화와 개선을 통해 전략은 다른 시장 환경에서 안정적인 성능을 유지하는 것을 약속합니다.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-09 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © JayQwae //@version=5 strategy("Enhanced AC Divergence Strategy with Stochastic Divergence", overlay=true) // Input settings tp_pips = input.float(0.0020, "Take Profit (in price)", step=0.0001) sl_pips = input.float(0.0040, "Stop Loss (in price)", step=0.0001) // 40 pips ac_length = input.int(5, "AC Length") rsi_length = input.int(14, "RSI Length") stoch_k = input.int(14, "Stochastic K Length") stoch_d = input.int(3, "Stochastic D Smoothing") stoch_ob = input.float(80, "Stochastic Overbought Level") stoch_os = input.float(20, "Stochastic Oversold Level") // Accelerator Oscillator Calculation high_low_mid = (high + low) / 2 ao = ta.sma(high_low_mid, 5) - ta.sma(high_low_mid, 34) ac = ao - ta.sma(ao, ac_length) // RSI Calculation rsi = ta.rsi(close, rsi_length) // Stochastic Oscillator Calculation k = ta.sma(ta.stoch(close, high, low, stoch_k), stoch_d) d = ta.sma(k, stoch_d) // Stochastic Divergence Detection stoch_bull_div = ta.lowest(close, 5) < ta.lowest(close[1], 5) and ta.lowest(k, 5) > ta.lowest(k[1], 5) stoch_bear_div = ta.highest(close, 5) > ta.highest(close[1], 5) and ta.highest(k, 5) < ta.highest(k[1], 5) // Main Divergence Detection bullish_div = ta.lowest(close, 5) < ta.lowest(close[1], 5) and ac > ac[1] and stoch_bull_div bearish_div = ta.highest(close, 5) > ta.highest(close[1], 5) and ac < ac[1] and stoch_bear_div // Plot divergences plotshape(bullish_div, title="Bullish Divergence", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small) plotshape(bearish_div, title="Bearish Divergence", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small) // Strategy rules if (bullish_div) strategy.entry("Buy", strategy.long) strategy.exit("Take Profit/Stop Loss", "Buy", limit=close + tp_pips, stop=close - sl_pips) if (bearish_div) strategy.entry("Sell", strategy.short) strategy.exit("Take Profit/Stop Loss", "Sell", limit=close - tp_pips, stop=close + sl_pips) // Alerts if (bullish_div) alert("Bullish Divergence detected! Potential Buy Opportunity", alert.freq_once_per_bar) if (bearish_div) alert("Bearish Divergence detected! Potential Sell Opportunity", alert.freq_once_per_bar)