Chiến lược này là một hệ thống giao dịch theo dõi xu hướng tổng hợp kết hợp biểu đồ cân bằng (Ichimoku Cloud), chỉ số tương đối mạnh (RSI) và chỉ số phân tán kết hợp đường trung bình di chuyển (MACD). Chiến lược này sử dụng biểu đồ đám mây để xác định hướng xu hướng tổng thể, sử dụng RSI để xác định động lượng giá và kết hợp với đường tín hiệu MACD để xác định thời điểm giao dịch cụ thể, để thực hiện phân tích thị trường và quyết định giao dịch đa chiều.
Lập luận cốt lõi của chiến lược này dựa trên sự phối hợp của ba chỉ số kỹ thuật:
Quy tắc giao dịch của chiến lược là: Có nhiều điều kiện:
Điều kiện:
Rủi ro đảo ngược xu hướng: Có thể xảy ra tình trạng dừng lỗ liên tục tại các điểm chuyển hướng xu hướng. Đề xuất: Bạn có thể thêm yêu cầu về khoảng thời gian xác nhận xu hướng.
Rủi ro thị trường dao động: Có thể xảy ra giao dịch thường xuyên trong thị trường dao động trong khu vực. Khuyến nghị: Tăng các điều kiện lọc tín hiệu, như yêu cầu độ dao động tối thiểu.
Rủi ro bị tụt hậu: Tất cả các chỉ số đều bị tụt hậu, có thể bỏ lỡ điểm đầu vào tốt nhất. Đề xuất: Có thể kết hợp với chỉ số nhanh hơn hoặc phân tích hành vi giá.
Tính nhạy cảm của tham số: Thiết lập tham số sai có thể gây ra hiệu suất chiến lược kém. Khuyến nghị: Cần xác định sự kết hợp của các tham số phù hợp thông qua tối ưu hóa phản hồi.
Chiến lược này xây dựng một hệ thống giao dịch theo dõi xu hướng hoàn chỉnh bằng cách kết hợp các chỉ số kỹ thuật cổ điển như biểu đồ cân bằng, RSI và MACD. Lợi thế chính của chiến lược là có nhiều cơ chế xác nhận và quy tắc giao dịch rõ ràng, nhưng cũng cần chú ý đến rủi ro của thị trường biến động và biến động.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-10 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Ichimoku + RSI + MACD Strategy", overlay=true)
// Ichimoku Cloud parameters
tenkanPeriod = 9
kijunPeriod = 26
senkouSpanBPeriod = 52
displacement = 26
// RSI parameters
rsiLength = 14
rsiOverbought = 70
rsiOversold = 30
// MACD parameters
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)
// Ichimoku calculations
tenkanSen = (ta.highest(high, tenkanPeriod) + ta.lowest(low, tenkanPeriod)) / 2
kijunSen = (ta.highest(high, kijunPeriod) + ta.lowest(low, kijunPeriod)) / 2
senkouSpanA = (tenkanSen + kijunSen) / 2
senkouSpanB = (ta.highest(high, senkouSpanBPeriod) + ta.lowest(low, senkouSpanBPeriod)) / 2
chikouSpan = close[displacement]
// Plotting Ichimoku Cloud
plot(tenkanSen, color=color.red, title="Tenkan-sen")
plot(kijunSen, color=color.blue, title="Kijun-sen")
plot(senkouSpanA[displacement], color=color.green, title="Senkou Span A")
plot(senkouSpanB[displacement], color=color.red, title="Senkou Span B")
fill(plot(senkouSpanA[displacement]), plot(senkouSpanB[displacement]), color=color.new(color.green, 90), title="Cloud")
// RSI calculation
rsi = ta.rsi(close, rsiLength)
// Long entry condition
longCondition = (close > senkouSpanA) and (close > senkouSpanB) and (rsi > rsiOversold) and (ta.crossover(macdLine, signalLine))
if (longCondition)
strategy.entry("Long", strategy.long)
// Short entry condition
shortCondition = (close < senkouSpanA) and (close < senkouSpanB) and (rsi < rsiOverbought) and (ta.crossunder(macdLine, signalLine))
if (shortCondition)
strategy.entry("Short", strategy.short)
// Exit conditions
if (ta.crossunder(macdLine, signalLine) and strategy.position_size > 0)
strategy.close("Long")
if (ta.crossover(macdLine, signalLine) and strategy.position_size < 0)
strategy.close("Short")
// Plot RSI
hline(rsiOverbought, "Overbought", color=color.red)
hline(rsiOversold, "Oversold", color=color.green)
plot(rsi, color=color.blue, title="RSI")