Chiến lược này sử dụng sự chéo chéo của chỉ số RSI và đường trung bình động của nó như là tín hiệu giao dịch, thuộc về các chiến lược chỉ số động lực phổ biến. Nguyên tắc cốt lõi của nó là theo dõi sự khác biệt giữa chỉ số RSI và đường trung bình động đơn giản SMA_RSI của RSI, và sau đó tính toán đường trung bình động đơn giản SMA_RSI2 của sự khác biệt này. Khi SMA_RSI2 vượt qua ngưỡng, đi dài. Khi vượt dưới ngưỡng, đóng vị trí.
Chiến lược này sử dụng 3 tham số để tính toán chỉ số RSI và hai đường trung bình di chuyển đơn giản của nó với các giai đoạn khác nhau. Đầu tiên, tính toán chỉ số RSI thông thường với độ dài giai đoạn. Sau đó tính toán đường trung bình di chuyển đơn giản SMA_RSI của RSI. Cuối cùng, tính toán chênh lệch delta giữa RSI và SMA_RSI, và sau đó tính toán đường trung bình di chuyển đơn giản SMA_RSI2 của delta. Khi SMA_RSI2 vượt qua ngưỡng được xác định bởi người dùng, thực hiện giao dịch dài. Khi SMA_RSI2 vượt dưới ngưỡng, đóng các vị trí.
Do đó, một chiến lược tín hiệu giao dịch dựa trên sự chéo chéo của các đường trung bình động của chỉ số RSI được hình thành.
Chiến lược này kết hợp các lợi thế của các chỉ số RSI và các đường trung bình động của chúng để theo dõi xu hướng giá và tránh gây ra sự nhầm lẫn bởi tiếng ồn. Ý tưởng tính toán chênh lệch delta và sau đó làm mịn tạo ra các tín hiệu giao dịch rõ ràng hơn. Nhìn chung, chiến lược này có giảm nhỏ hơn và lợi nhuận ổn định hơn.
Những lợi ích cụ thể là:
Cũng có một số rủi ro trong chiến lược này, chủ yếu được phản ánh trong:
Có thể cải thiện các khía cạnh sau:
Chiến lược này tương đối đơn giản và phổ biến. Bằng cách tăng tính thực tế của chỉ số RSI thông qua các hoạt động toán học delta và sử dụng chéo để đánh giá, nó có kiểm soát rút tiền tốt và là một chiến lược chỉ số đà rất thực tế.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy ("RSI&SMA", overlay=false ) startP = timestamp(input(2017, "Start Year"), input(12, "Month"), input(17, "Day"), 0, 0) end = timestamp((9999), (1), (1), 0, 0) _testPeriod() => true length = input(3, minval=1, title = "RSI period") length2 = input(21, minval=1, title = "RSI SMA-1") length3 = input(13, minval=1, title = "RSI SMA-2") threshold = input(0,step=0.5, title="Threshold") filter = input(false, title="Use filter?") up = rma (max (change (close), 0), length) down = rma (-min (change (close), 0), length) RSI = down == 0? 100: up == 0? 0: 100-100 / (1 + up / down) SMA_RSI = sma(RSI, length2) delta = RSI-SMA_RSI SMA_RSI2 = sma(delta, length3) Long = crossover(SMA_RSI2, threshold) Short = crossunder(SMA_RSI2, threshold) plot(threshold, color=color.silver) plot(SMA_RSI2, color= SMA_RSI2 > 0 ? color.blue : color.purple) //plot(SMA_RSI, color=color.green) //plot(delta, color=color.red) long_condition = Long and (filter ? close > ema(close, 200) : true) and _testPeriod() strategy.entry('BUY', strategy.long, when=long_condition) short_condition = Short strategy.close('BUY', when=short_condition)