Chiến lược này là một hệ thống giao dịch định lượng kết hợp các chỉ số Accelerator Oscillator (AC) và Stochastic. Nó nắm bắt sự thay đổi động lực thị trường bằng cách xác định sự khác biệt giữa các chỉ số giá và kỹ thuật để dự đoán sự đảo ngược xu hướng tiềm năng. Chiến lược cũng kết hợp Trung bình di chuyển đơn giản (SMA) và Chỉ số sức mạnh tương đối (RSI) để tăng độ tin cậy tín hiệu, với mức lợi nhuận cố định và mức dừng lỗ để kiểm soát rủi ro.
Các giá trị stochastic K và D được tính toán để xác nhận tín hiệu chênh lệch. Sự chênh lệch tăng hình khi giá đạt mức thấp mới trong khi AC tăng; sự chênh lệch giảm hình thành khi giá đạt mức cao mới trong khi AC giảm. RSI được kết hợp như một chỉ số xác nhận bổ sung, sử dụng xác thực chéo của nhiều chỉ số để cải thiện độ chính xác tín hiệu.
Đây là một chiến lược giao dịch định lượng tích hợp nhiều chỉ số kỹ thuật, nắm bắt các bước ngoặt của thị trường thông qua các tín hiệu chênh lệch.
/*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)