
Chiến lược này kết hợp hai chỉ số kỹ thuật MACD và RSI, sử dụng tín hiệu giao dịch chéo của MACD và tín hiệu mua bán quá mức của RSI để đánh giá thời gian giao dịch. Đồng thời, chiến lược cũng giới thiệu đường trung bình di chuyển có trọng lượng ((WMA) như một phán đoán phụ trợ để nâng cao độ tin cậy của chiến lược. Chiến lược hoạt động trong khung thời gian 1 giờ khi MACD xuất hiện và RSI lớn hơn 50 giờ mở nhiều vị trí, khi MACD xuất hiện và RSI nhỏ hơn 50 giờ mở nhiều vị trí.
Giao dịch này được thực hiện bằng cách kết hợp hai chỉ số kỹ thuật MACD và RSI. MACD được tạo thành từ chênh lệch giữa đường nhanh (trung bình di chuyển ngắn hạn) và đường chậm (trung bình di chuyển dài hạn), có thể phản ánh sự thay đổi xu hướng của thị trường. Khi đường nhanh vượt qua đường chậm, hình thành một cái gai vàng, cho thấy xu hướng tăng, ngược lại hình thành một cái gai chết, cho thấy xu hướng giảm. RSI là một chỉ số đo lường tình trạng thị trường quá mua quá bán, khi RSI lớn hơn 70, thị trường có thể có nguy cơ bị mua quá mức, và khi RSI nhỏ hơn 30, thị trường có thể có cơ hội tăng trở lại.
Chiến lược này kết hợp MACD và RSI để sử dụng phán đoán xu hướng của MACD và phán đoán mua bán quá mức của RSI để nắm bắt thời gian giao dịch chính xác hơn. Ngoài ra, chiến lược cũng giới thiệu trung bình di chuyển có trọng lượng ((WMA) như một phán đoán phụ trợ, WMA chú trọng hơn vào giá gần đây so với trung bình di chuyển thông thường và có thể phản ánh sự thay đổi giá một cách nhạy cảm hơn.
Ngoài ra, chiến lược cũng đặt các biến của nhiều khung thời gian (như 15 phút, 30 phút, 1 giờ, 2 giờ, v.v.) để đánh giá sự thay đổi xu hướng theo các quy mô thời gian khác nhau. Phương pháp phân tích đa khung thời gian này có thể giúp chiến lược nắm bắt được xu hướng thị trường một cách toàn diện hơn và cải thiện độ chính xác của quyết định.
Chiến lược này kết hợp hai chỉ số kỹ thuật hiệu quả MACD và RSI, đồng thời đưa ra WMA như một phán đoán hỗ trợ, để đưa ra quyết định giao dịch trong khung thời gian 1 giờ. Lập luận của chiến lược rõ ràng, dễ hiểu và thực hiện, có thể nắm bắt tốt hơn xu hướng thị trường và tình trạng quá mua quá bán, có một số khả năng. Tuy nhiên, chiến lược cũng có một số hạn chế và rủi ro, chẳng hạn như chậm trễ, khung thời gian duy nhất, thiếu kiểm soát rủi ro và tương lai.
/*backtest
start: 2024-05-01 00:00:00
end: 2024-05-31 23:59:59
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Improved MACD and RSI Trading Strategy", overlay=true, initial_capital=10000, commission_type=strategy.commission.percent, commission_value=0.01, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// MACD 設置
fast_length = input(12, title="MACD Fast Length")
slow_length = input(26, title="MACD Slow Length")
signal_smoothing = input(9, title="MACD Signal Smoothing")
// RSI 設置
input_rsi_length = input.int(14, title="RSI Length")
input_rsi_source = input(close, "RSI Source")
RSI = ta.rsi(input_rsi_source, input_rsi_length)
// 計算MACD和信號線
[macdLine, signalLine, _] = ta.macd(close, fast_length, slow_length, signal_smoothing)
// 自然交易理論:利用MACD和RSI的結合
ma(source, length, type) =>
switch type
"SMA" => ta.sma(source, length)
"EMA" => ta.ema(source, length)
"SMMA (RMA)" => ta.rma(source, length)
"WMA" => ta.wma(source, length)
"VWMA" => ta.vwma(source, length)
maTypeInput = input.string("SMA", title="Moving Average Type", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="MA Settings")
maLengthInput = input.int(14, title="Moving Average Length", group="MA Settings")
macdMA = ma(macdLine, maLengthInput, maTypeInput)
// 設置交易信號
longCondition = ta.crossover(macdLine, signalLine) and macdLine > macdMA and RSI < 70
shortCondition = ta.crossunder(macdLine, signalLine) and macdLine < macdMA and RSI > 30
// 定義時間框架
tf_15m = ta.change(RSI, 15) > 0 ? 1 : 0
tf_30m = ta.change(RSI, 30) > 0 ? 1 : 0
tf_1h = ta.change(RSI, 60) > 0 ? 1 : 0
tf_2h = ta.change(RSI, 120) > 0 ? 1 : 0
tf_4h = ta.change(RSI, 240) > 0 ? 1 : 0
tf_6h = ta.change(RSI, 360) > 0 ? 1 : 0
tf_8h = ta.change(RSI, 480) > 0 ? 1 : 0
tf_12h = ta.change(RSI, 720) > 0 ? 1 : 0
tf_1d = ta.change(RSI, 1440) > 0 ? 1 : 0
// 設置開倉、平倉和空倉條件
if (longCondition and tf_1h and RSI > 50)
strategy.entry("Long", strategy.long)
if (shortCondition and tf_1h and RSI < 50)
strategy.entry("Short", strategy.short)
if (tf_1h and RSI > 70)
strategy.close("Long")
if (tf_1h and RSI < 30)
strategy.close("Short")
// 加入其他策略
// 定義加權平均價格
wma(source, length) =>
wma = 0.0
sum = 0.0
sum_wts = 0.0
for i = 0 to length - 1
wts = (length - i) * (length - i)
sum := sum + source[i] * wts
sum_wts := sum_wts + wts
wma := sum / sum_wts
wmaLength = input.int(20, title="WMA Length", group="Other Strategies")
wmaValue = wma(close, wmaLength)
// 設置交易信號
longWMACondition = close > wmaValue
shortWMACondition = close < wmaValue
if (longWMACondition and tf_1h and RSI > 50)
strategy.entry("Long WMA", strategy.long)
if (shortWMACondition and tf_1h and RSI < 50)
strategy.entry("Short WMA", strategy.short)
if (tf_1h and RSI > 70)
strategy.close("Long WMA")
if (tf_1h and RSI < 30)
strategy.close("Short WMA")
// 繪製MACD和RSI
plot(macdLine, color=color.blue, title="MACD Line")
plot(signalLine, color=color.red, title="Signal Line")