Chiến lược này sử dụng chỉ số MACD để xác định xu hướng của chỉ số RSI, tạo ra các tín hiệu giao dịch.
Chiến lược dựa trên hai chỉ số chính:
RSI Tính toán chỉ số RSI bình thường 14 giai đoạn.
MACD của RSI Tính toán giá trị MACD trên chỉ số RSI, với mặc định MA nhanh 12, MA chậm 26, đường tín hiệu 9.
Khi MACD của chỉ số RSI vượt lên, đường chéo vàng của MAs nhanh và chậm, nó xác định xu hướng tăng và đi dài.
Khi MACD đi xuống, nhanh và chậm MAs chết chéo, nó xác định một xu hướng giảm và đi ngắn.
Các đường trung bình động theo cấp số nhân của MACD giúp xác định xu hướng dài hạn của chính RSI, dẫn đến các tín hiệu chính xác hơn.
Các rủi ro có thể được giảm bằng cách:
Chiến lược có thể được cải thiện từ:
Kiểm tra kết hợp các thông số RSI và MACD
Thêm xác nhận thứ cấp khi tín hiệu MACD
ví dụ: mô hình nến, khối lượng, dải Bollinger vv.
Tối ưu hóa dừng lại để dừng lại
Thêm các quy tắc nhập cảnh trở lại
Tái thiết lập các vị trí sau khi dừng lại nếu xu hướng tiếp tục
Điều chỉnh kích thước vị trí theo sự biến động
Kích thước nhỏ hơn khi biến động cao, kích thước lớn hơn khi biến động thấp
Chiến lược này kết hợp các chỉ số RSI và MACD để xác minh lẫn nhau để phát hiện xu hướng chính xác và ổn định hơn. Nhưng các thông số cần tối ưu hóa, và các bộ lọc kỹ thuật hoặc quy tắc giao dịch bổ sung được yêu cầu để xác nhận, tránh các sự kiện đột ngột.
/*backtest start: 2022-09-14 00:00:00 end: 2023-09-20 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy(title = "MACD of RSI", overlay = false) //////////////////////// RSI /////////////////////////// src = close, len = input(14, minval=1, title="Length") up = sma(max(change(src), 0), len) down = sma(-min(change(src), 0), len) rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down)) //////////////////////// RSI ////////////////////////// //////////////// MACD //////////////////////////// sourcemacd = rsi fastLength = input(12, minval=1), slowLength=input(26,minval=1) signalLength=input(9,minval=1) fastMA = ema(sourcemacd, fastLength) slowMA = ema(sourcemacd, slowLength) macd = fastMA - slowMA signal = ema(macd, signalLength) delta=macd-signal swap1 = delta>0?green:red plot(delta,color=swap1,style=columns,title='Histo',histbase=0,transp=20) p1 = plot(macd,color=blue,title='MACD Line') p2 = plot(signal,color=red,title='Signal') fill(p1, p2, color=blue) hline(0) /////////////////////////MACD ////////////////////////// // Conditions longCond = na sellCond = na longCond := crossover(delta,0) sellCond := crossunder(delta,0) monthfrom =input(6) monthuntil =input(12) dayfrom=input(1) dayuntil=input(31) if ( longCond ) strategy.entry("BUY", strategy.long, stop=close, oca_name="TREND", comment="BUY") else strategy.cancel(id="BUY") if ( sellCond ) strategy.close("BUY")