Chiến lược giao dịch RSI trong ngày TAM sử dụng sự chéo chéo của các chỉ số RSI trong các giai đoạn khác nhau để tạo ra các tín hiệu nhập và xuất trong ngày. Chiến lược hoạt động tốt trong cả môi trường tăng và giảm bằng cách tận dụng hiệu quả các điều kiện mua quá mức và bán quá mức được tiết lộ bởi chỉ số RSI và thực hiện giao dịch chống xu hướng khi thị trường cho thấy dấu hiệu đảo ngược.
Chiến lược sử dụng hai chỉ số RSI để tạo ra tín hiệu mua và bán. Tín hiệu mua sử dụng một thời gian ngắn 2 ngày RSI và một thời gian trung bình 14 ngày RSI, kích hoạt mua khi RSI ngắn hoặc trung bình vượt trên 50.
Chiến lược này cũng yêu cầu chỉ số RSI thực sự vượt qua ngưỡng 50, không chỉ vượt qua nó, giúp lọc ra nhiều tín hiệu sai.
Các điều kiện bán hàng tương tự:
Việc lọc nhiều lớp như vậy đảm bảo các tín hiệu chỉ được kích hoạt khi RSI cho thấy các dấu hiệu mua quá mức / bán quá mức rõ ràng và sẽ không bị đánh lừa bởi các dao động nhỏ.
Chiến lược RSI trong ngày TAM có những lợi thế sau:
Sử dụng RSI kép cung cấp phân tích nhiều khung thời gian, lọc tiếng ồn thị trường hiệu quả và chỉ vào các điểm đảo ngược xu hướng quan trọng.
Yêu cầu giá trị RSI thực tế để vi phạm ngưỡng chính tránh các tín hiệu đột phá sai.
Việc áp dụng RSI của các tham số khác nhau cho bước vào và bước ra có thể xác định thời gian đảo ngược chính xác hơn.
RSI cho thấy hiệu suất tương đối ổn định trong các cửa sổ giao dịch trong ngày, phù hợp với các chiến lược trong ngày.
Các tham số có thể tùy chỉnh cho phép điều chỉnh đầu vào RSI cho các thị trường khác nhau và kết quả tốt hơn.
Logic đơn giản và rõ ràng làm cho nó dễ hiểu và thực hiện cho giao dịch algo.
Một số rủi ro cũng tồn tại với chiến lược:
Giao dịch trong ngày có rủi ro khoảng cách qua đêm có thể bỏ qua cài đặt dừng lỗ.
Sự khác biệt RSI xảy ra thường xuyên và phải được xác nhận với các chỉ số khác.
Sự biến động cao trong các khoảng thời gian trong ngày có nghĩa là dừng lỗ phải rộng nhưng không quá rộng.
Tối ưu hóa tham số có nguy cơ quá phù hợp, đòi hỏi phải thử nghiệm trên các thị trường khác nhau.
Các hạn chế kiểm tra ngược không thể phản ánh hoàn toàn giao dịch thực tế, đòi hỏi phải điều chỉnh cho hiệu suất trực tiếp.
Chiến lược có thể được cải thiện trong các khía cạnh sau:
Thêm xác nhận với các chỉ số khác như KDJ, MACD v.v.
Thực hiện bộ lọc âm lượng để chỉ xem xét tín hiệu về tăng âm lượng.
Tối ưu hóa các tham số cho các chu kỳ trong ngày thậm chí ngắn hơn.
Giúp quyết định với các mô hình học máy để tìm các thông số tối ưu theo thuật toán.
Nhờ tác phẩm nghệ thuật kết hợp các cấp độ S/R chính, các mẫu biểu đồ từ phân tích kỹ thuật.
Cải thiện stop loss bằng các phương pháp dựa trên biến động, ATR động.
Nhìn chung, chiến lược RSI trong ngày TAM là một chiến lược lượng rất thực tế. Nó đánh giá hiệu quả các điều kiện mua quá mức và bán quá mức bằng cách sử dụng đánh giá RSI nhiều khung thời gian và tạo ra các tín hiệu vững chắc khi kết hợp với các quy tắc vào / ra nghiêm ngặt để lọc ra các tín hiệu sai. Với tối ưu hóa và quản lý rủi ro thích hợp, chiến lược có thể tạo ra các tín hiệu giao dịch ổn định và đạt được kết quả tốt. Logic rõ ràng và đơn giản của nó làm cho nó dễ dàng thực hiện và kiểm tra cho các nhà giao dịch algo.
/*backtest start: 2023-09-16 00:00:00 end: 2023-10-16 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © DvKel //@version=5 strategy("TAM - RSI Strategy", overlay = true) // Input parameters useDateFilter = input.bool(true, title="Filter Date Range of Backtest", group="Backtest Time Period") startDate = input(timestamp("2020-01-01"), title = "Start date", group = "Backtest Time Period") buyRsiLength1 = input(2, title = "RSI Buy Length 1 (default 2)", group="Buy configuration") buyRsiLength2 = input(14, title = "RSI Buy Length 2 (default 14)", group="Buy configuration") buyRsiValue = input(50, title = "RSI Buy Value Signal (default 50)", group="Buy configuration") closeRsiLength1 = input(7, title = "RSI Close Length 1 (default 7)", group="Close configuration") closeRsiLength2 = input(50, title = "RSI Close Length 2 (default 50)", group="Close configuration") closeRsiValue = input(50, title = "RSI Close Value Signal (default 50)", group="Close configuration") // Check timeframe inTradeWindow = true // Calculate RSI rsiBuy1Value = ta.rsi(close, buyRsiLength1) rsiBuy2Value = ta.rsi(close, buyRsiLength2) rsiClose1Value = ta.rsi(close, closeRsiLength1) rsiClose2Value = ta.rsi(close, closeRsiLength2) // Strategy conditions //(ta.crossover(rsiBuy1Value, buyRsiValue) or ta.crossover(rsiBuy2Value, buyRsiValue)) and //8ta.crossunder(rsiClose1Value, closeRsiValue) or ta.crossunder(rsiClose2Value, closeRsiValue)) and buyCondition = (ta.crossover(rsiBuy1Value, buyRsiValue) or ta.crossover(rsiBuy2Value, buyRsiValue)) and rsiBuy1Value > buyRsiValue and rsiBuy2Value > buyRsiValue closeCondition = (ta.crossunder(rsiClose1Value, closeRsiValue) or ta.crossunder(rsiClose2Value, closeRsiValue)) and rsiClose1Value < closeRsiValue and rsiClose2Value < closeRsiValue // Strategy actions if (inTradeWindow and buyCondition) strategy.entry("Buy", strategy.long) if (inTradeWindow and closeCondition) strategy.close("Buy") // Plot RSI and overbought/oversold levels plotchar(rsiBuy1Value, title = "RSI-Buy1", color = color.green) plotchar(rsiBuy2Value, title = "RSI-Buy2", color = color.lime) plotchar(rsiClose1Value, title = "RSI-Close1", color = color.red) plotchar(rsiClose2Value, title = "RSI-Close2", color = color.fuchsia)