
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ố xu hướng biến động trung bình (MACD) và các chỉ số tương đối mạnh (RSI). Chiến lược này xác định các điểm thay đổi xu hướng thị trường bằng cách phân tích các tín hiệu giao thoa và mức bán tháo của hai chỉ số kỹ thuật để đưa ra quyết định giao dịch. Hệ thống thực hiện giao dịch theo cách lập trình, có thể tự động nắm bắt cơ hội thị trường và giao dịch.
Lý luận cốt lõi của chiến lược dựa trên hai chỉ số kỹ thuật chính: MACD và RSI. Chỉ số MACD được sử dụng để đánh giá xu hướng của xu hướng bằng cách tính toán chênh lệch giữa trung bình di chuyển nhanh (khoảng 12) và trung bình di chuyển chậm (khoảng 26), sau đó so sánh với đường tín hiệu (khoảng 9). Chỉ số RSI được sử dụng để đánh giá mức độ tương đối mạnh hoặc yếu của thị trường bằng cách tính toán 14 chu kỳ.
Hệ thống tạo ra tín hiệu mua khi đường MACD đi lên đường tín hiệu và RSI thấp hơn 70 (mức vượt mức mua); hệ thống tạo ra tín hiệu bán khi đường MACD đi xuống đường tín hiệu và RSI cao hơn 30 (mức vượt mức bán). Cơ chế xác nhận kép này có thể lọc hiệu quả tín hiệu giả.
Hệ thống giao dịch định lượng chéo động MACD-RSI là một chiến lược giao dịch tự động kết hợp phân tích kỹ thuật với các chỉ số cổ điển. Cơ chế kép xác nhận mua bán vượt mức thông qua phán đoán xu hướng MACD và xác nhận mua bán vượt mức RSI, có thể nắm bắt hiệu quả các điểm biến chuyển của thị trường. Chiến lược có những lợi thế như độ tin cậy cao, khả năng điều chỉnh mạnh mẽ, nhưng cũng cần chú ý đến rủi ro của thị trường xung đột và tín hiệu trì trệ.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-03 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("MACD + RSI Strategy", overlay=true)
// MACD settings
fastLength = input.int(12, title="MACD Fast Length")
slowLength = input.int(26, title="MACD Slow Length")
signalSmoothing = input.int(9, title="MACD Signal Smoothing")
// RSI settings
rsiLength = input.int(14, title="RSI Length")
rsiOverbought = input.float(70, title="RSI Overbought Level")
rsiOversold = input.float(30, title="RSI Oversold Level")
// Calculate MACD
[macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalSmoothing)
// Calculate RSI
rsi = ta.rsi(close, rsiLength)
// Generate buy and sell signals
buySignal = ta.crossover(macdLine, signalLine) and rsi < rsiOverbought
sellSignal = ta.crossunder(macdLine, signalLine) and rsi > rsiOversold
// Plot buy and sell signals on chart
plotshape(series=buySignal, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=sellSignal, location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")
// Strategy entry and exit
if buySignal
strategy.entry("Buy", strategy.long)
if sellSignal
strategy.close("Buy")
// Plot MACD and Signal Line
plot(macdLine, color=color.blue, title="MACD Line")
plot(signalLine, color=color.orange, title="Signal Line")
// Plot RSI
hline(rsiOverbought, "Overbought", color=color.red)
hline(rsiOversold, "Oversold", color=color.green)
plot(rsi, color=color.purple, title="RSI")