
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ố dao động tăng tốc (AC) và chỉ số ngẫu nhiên (Stochastic). Nó nắm bắt sự chuyển động của động lực thị trường bằng cách xác định sự lệch giữa giá cả và chỉ số kỹ thuật, do đó dự đoán sự đảo ngược xu hướng tiềm ẩn. Chiến lược này cũng tích hợp đường thẳng (SMA) và chỉ số tương đối yếu (RSI) để tăng cường độ tin cậy của tín hiệu và đặt các điểm dừng cố định để kiểm soát rủi ro.
Lập luận cốt lõi của chiến lược dựa trên sự phối hợp đồng bộ của nhiều chỉ số kỹ thuật. Đầu tiên, tính toán chỉ số biến động tăng tốc ((AC), được lấy từ sự khác biệt giữa đường trung bình 5 chu kỳ và 34 chu kỳ của giá, sau đó trừ đường trung bình N chu kỳ của nó. Đồng thời tính toán giá trị K và D của chỉ số ngẫu nhiên, được sử dụng để xác nhận tín hiệu quay lưng.
Đây là một chiến lược giao dịch định lượng kết hợp nhiều chỉ số kỹ thuật để nắm bắt các bước ngoặt của thị trường bằng cách quay lưng với tín hiệu. Ưu điểm của chiến lược là xác minh chéo của nhiều chỉ số và hệ thống kiểm soát rủi ro tốt, nhưng cũng cần chú ý đến các vấn đề như phá vỡ giả và tối ưu hóa tham số.
/*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)