Chiến lược xu hướng cá sấu RSI dựa trên sự kết hợp của chỉ số RSI và chỉ số cá sấu để xác định bước vào và bước ra của xu hướng. Nó sử dụng ba đường trung bình động - đường hàm cá sấu, đường răng và đường môi, được xây dựng bởi RSI của các giai đoạn khác nhau. Nó sẽ dài khi đường răng vượt qua đường môi và đường hàm RSI cao hơn đường răng; nó sẽ ngắn khi đường răng vượt qua dưới đường môi và đường hàm RSI thấp hơn đường răng. Chiến lược cũng thiết lập điều kiện dừng lỗ và lấy lợi nhuận.
Chiến lược RSI Alligator Trend xây dựng ba đường của chỉ số Alligator bằng cách sử dụng chỉ số RSI.
Logic tín hiệu đầu vào là:
Tín hiệu dài: khi đường răng vượt qua đường môi và đường hàm cao hơn đường răng, đi dài.
Tín hiệu ngắn: khi đường răng vượt qua dưới đường môi và đường hàm thấp hơn đường răng, hãy đi ngắn.
Chiến lược cũng thiết lập các điều kiện dừng lỗ và lấy lợi nhuận:
Chiến lược RSI Alligator Trend có những điểm mạnh sau:
Chiến lược RSI Alligator Trend cũng có những rủi ro sau:
Có thể có sự đột quỵ sai ở vị trí chéo giữa đường răng và đường môi, dẫn đến tổn thất không cần thiết. Các thông số chu kỳ có thể được điều chỉnh để giảm xác suất đột quỵ sai.
Cài đặt stop loss có thể quá hung hăng, với xác suất cao của stop loss không cần thiết.
Nếu thị trường di chuyển mạnh mẽ, stop loss có thể không thể đóng vai trò bảo vệ lợi nhuận đúng cách.
Khi các vị trí dài và ngắn thường xuyên chuyển đổi, áp lực chi phí giao dịch lớn hơn. Các điều kiện nhập cảnh có thể được nới lỏng thích hợp để giảm đi lại không cần thiết.
Chiến lược RSI Alligator Trend có thể được tối ưu hóa trong các khía cạnh sau:
Tối ưu hóa các thiết lập tham số dòng Alligator để tìm kết hợp tham số tốt nhất
Tối ưu hóa logic điều kiện nhập cảnh, chẳng hạn như thêm các chỉ số như khối lượng giao dịch để lọc tín hiệu
Tối ưu hóa các chiến lược lấy lợi nhuận và dừng lỗ để làm cho chúng thích nghi hơn với điều kiện thị trường và mức ký quỹ
Thêm các cơ chế để đối phó với các sự kiện cực đoan và tránh tiếp xúc với điều kiện thị trường bất thường
Thêm các thuật toán vị trí mở để kiểm soát tỷ lệ vốn đầu tư vào một giao dịch duy nhất để giảm thiểu rủi ro
Nói chung, chiến lược RSI Alligator Trend là một chiến lược theo xu hướng đáng tin cậy và dễ sử dụng. Nó sử dụng chỉ số Alligator để xác định hướng xu hướng, kết hợp với chỉ số RSI để thiết lập ngưỡng tham chiếu, có thể khóa hiệu quả xu hướng và thiết lập các điểm thoát hợp lý. Đồng thời, chính chiến lược cũng có tính linh hoạt và mở rộng mạnh mẽ, làm cho nó có giá trị cho giao dịch trực tiếp và tối ưu hóa hơn nữa.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // @version=3 // RSI Alligator // Forked from Author: Reza Akhavan // Updated by Khalid Salomão strategy("RSI Alligator Strategy", overlay=false, pyramiding=0, default_qty_type=strategy.cash, default_qty_value=25000, initial_capital=25000, commission_type=strategy.commission.percent, commission_value=0.15, slippage=3) // === TA LOGIC === overBought = input(70, minval=0, maxval=100, title="Over bought") overSold = input(30, minval=0, maxval=100, title="Over sold") jawPeriods = input(5, minval=1, title="Jaw Periods") jawOffset = input(0, minval=0, title="Jaw Offset") teethPeriods = input(13, minval=1, title="Teeth Periods") teethOffset = input(0, minval=0, title="Teeth Offset") lipsPeriods = input(34, minval=1, title="Lips Periods") lipsOffset = input(0, minval=0, title="Lips Offset") jaws = rsi(close, jawPeriods) teeth = rsi(close, teethPeriods) lips = rsi(close, lipsPeriods) plot(jaws, color=green, offset=jawOffset, title="Jaw") plot(teeth, color=red, offset=teethOffset, title="Teeth") plot(lips, color=blue, offset=lipsOffset, title="Lips") // // === Signal logic === // LONG_SIGNAL_BOOLEAN = crossover(teeth, lips) and jaws > teeth SHORT_SIGNAL_BOOLEAN = crossunder(teeth, lips) and jaws < teeth // === INPUT BACKTEST DATE RANGE === strategyType = input(defval="Long Only", options=["Long & Short", "Long Only", "Short Only"]) FromMonth = input(defval = 7, title = "From Month", minval = 1, maxval = 12) FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) FromYear = input(defval = 2018, title = "From Year", minval = 2017) ToMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12) ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31) ToYear = input(defval = 2020, title = "To Year", minval = 2017) start = timestamp(FromYear, FromMonth, FromDay, 00, 00) finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) window() => true // === STRATEGY BUY / SELL ENTRIES === // TODO: update the placeholder LONG_SIGNAL_BOOLEAN and SHORT_SIGNAL_BOOLEAN to signal // long and short entries buy() => window() and LONG_SIGNAL_BOOLEAN sell() => window() and SHORT_SIGNAL_BOOLEAN if buy() if (strategyType == "Short Only") strategy.close("Short") else strategy.entry("Long", strategy.long, comment="Long") if sell() if (strategyType == "Long Only") strategy.close("Long") else strategy.entry("Short", strategy.short, comment="Short") // === BACKTESTING: EXIT strategy === sl_inp = input(10, title='Stop Loss %', type=float)/100 tp_inp = input(90, title='Take Profit %', type=float)/100 stop_level = strategy.position_avg_price * (1 - sl_inp) take_level = strategy.position_avg_price * (1 + tp_inp) strategy.exit("Stop Loss/Profit", "Long", stop=stop_level, limit=take_level)