
Chiến lược này sử dụng chỉ số thương nhân động (TDI) làm chỉ số kỹ thuật chính để tạo tín hiệu giao dịch kết hợp với trung bình di chuyển của các chu kỳ khác nhau. Mục đích của nó là để phát hiện cơ hội đảo ngược trong trường hợp quá mua quá bán.
Chiến lược này bắt đầu bằng cách tính RSI gần với độ dài 13 chu kỳ. Sau đó, tính trung bình di chuyển đơn giản 34 chu kỳ của RSI, và sau đó là chênh lệch chuẩn 34 chu kỳ của RSI với 1,6185 nhân với RSI như đường lên xuống. Trong đó đường trên là đường di chuyển trung bình cộng với di chuyển lệch, đường dưới là đường di chuyển trung bình trừ đi di chuyển lệch.
Sau đó, tính toán MA nhanh của RSI, dài 2 chu kỳ; và MA chậm, dài 7 chu kỳ. Sau đó lấy các giá trị lịch sử của các chỉ số này từ chu kỳ cao hơn.
Chiến lược này sử dụng tính năng đảo ngược trung bình của chỉ số RSI, kết hợp với chỉ số động lực để thực hiện giao dịch đảo ngược. RSI trên và xuống đường phản ánh khu vực quá mua quá bán, đường trung tâm phản ánh giá trung bình.
Cụ thể, RSI trên và dưới đường ray thiết lập ngưỡng tháo giá hợp lý, giúp phát hiện bất thường kịp thời. Đường trung tâm nắm bắt mức cân bằng. MA nhanh lọc tiếng ồn ngắn hạn, MA chậm đánh giá xu hướng trung hạn.
Chiến lược này chủ yếu dựa trên giao dịch đảo ngược, có một số rủi ro về hiệu quả thời gian. Nếu thị trường có sự mở rộng không hợp lý trong thời gian dài, chẳng hạn như thị trường phá sản, chiến lược này sẽ tạo ra tổn thất liên tục. Ngoài ra, nếu thiết lập MA không đúng cách, có thể bỏ lỡ một số cơ hội đảo ngược hoặc tạo ra sai đoán. Một số tối ưu hóa tham số là cần thiết.
Để kiểm soát các rủi ro trên, nên điều chỉnh chu kỳ MA thích hợp, hoặc tăng cơ chế dừng lỗ, v.v. Khi thị trường đi vào giai đoạn không hợp lý, bạn nên giảm vị trí hoặc thậm chí ngừng giao dịch. Nói chung, điều chỉnh chiến lược cho môi trường thị trường cụ thể là chìa khóa.
Chiến lược này có thể được tối ưu hóa theo các khía cạnh sau:
Kiểm tra các tham số chu kỳ RSI với độ dài khác nhau để tìm các thiết lập phù hợp hơn với thị trường hiện tại
Tối ưu hóa độ dài của MA nhanh và MA chậm, cân bằng âm thanh quay ngược và lọc
Tăng mức dừng dựa trên tỷ lệ biến động để kiểm soát thu hồi tối đa
Cố gắng đưa các yếu tố khác vào logic đặt hàng, chẳng hạn như thay đổi khối lượng giao dịch, để tăng tỷ lệ thành công
Thử nghiệm hiệu quả của một bộ tín hiệu giao dịch REUSE trên nhiều khung thời gian
Phát triển các tham số tự thích ứng với cơ chế tối ưu hóa để tham số chính sách được điều chỉnh động
Cấu trúc tổng thể của chiến lược đảo ngược RSI là hợp lý, logic giao dịch có thể được giải thích rõ ràng. Nó có không gian tùy chỉnh và tiềm năng tối ưu hóa. Khả năng nắm bắt cơ hội đảo ngược của nó là đáng mong đợi khi điều chỉnh tham số và kiểm soát rủi ro. Bước tiếp theo là tối ưu hóa chiến lược bằng cách kiểm tra lại và điều chỉnh tham số nhiều hơn, nâng cao khả năng chịu rủi ro của chiến lược và mức lợi nhuận.
/*backtest
start: 2022-11-06 00:00:00
end: 2023-11-12 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("TDI - Traders Dynamic Index [Mehdi]", shorttitle="TDIMEHDI")
rsiPeriod = input(13, minval = 1, title = "RSI Period")
bandLength = input(34, minval = 1, title = "Band Length")
lengthrsipl = input(7, minval = 0, title = "Fast MA on RSI")
lengthtradesl = input(2, minval = 1, title = "Slow MA on RSI")
p1 = input("15", title = "Signal Timeframe")
src = close // Source of Calculations (Close of Bar)
r = rsi(src, rsiPeriod) // RSI of Close
ma = sma(r, bandLength) // Moving Average of RSI [current]
offs = (1.6185 * stdev(r, bandLength)) // Offset
up = ma + offs // Upper Bands
dn = ma - offs // Lower Bands
mid = (up + dn) / 2 // Average of Upper and Lower Bands
fastMA = sma(r, lengthrsipl) // Moving Average of RSI 2 bars back
slowMA = sma(r, lengthtradesl) // Moving Average of RSI 7 bars back
hline(20) // ExtremelyOversold
hline(30) // Oversold
hline(50) // Midline
hline(70) // Overbought
hline(80) // ExtremelyOverbought
up1 = request.security(syminfo.tickerid, p1, up)
dn1 = request.security(syminfo.tickerid, p1, dn)
mid1 = request.security(syminfo.tickerid, p1, mid)
slowMA1 = request.security(syminfo.tickerid, p1, slowMA)
fastMA1 = request.security(syminfo.tickerid, p1, fastMA)
plot(up1, "Upper Band", color = #3286c3, linewidth = 2) // Upper Band
plot(dn1, "Lower Band", color = #3286c3, linewidth = 2) // Lower Band
plot(mid1, "Middle of Bands", color = yellow, linewidth = 2) // Middle of Bands
plot(slowMA1, "Slow MA", color=green, linewidth=2) // Plot Slow MA
plot(fastMA1, "Fast MA", color=red, linewidth=1) // Plot Fast MA
if (crossover(slowMA1, fastMA1))
strategy.entry("Buy", strategy.long, comment="Buy")
if (crossunder(slowMA1, fastMA1))
strategy.entry("Sell", strategy.short, comment="Sell")