
Chiến lược xu hướng RSI cá mập là một tập hợp các chỉ số cá mập dựa trên chỉ số RSI để đánh giá xu hướng vào và ra. Nó sử dụng ba đường trung bình - đường cá mập lên, đường răng và đường môi, xây dựng RSI với các chu kỳ khác nhau.
Chiến lược xu hướng RSI cá mập sử dụng chỉ số RSI để xây dựng ba đường trung bình di chuyển của chỉ số cá mập. Các thiết lập cụ thể như sau:
Lập luận của tín hiệu nhập là:
Tín hiệu đa đầu: làm nhiều hơn khi vắt môi trên dây răng và dây răng trên cao hơn dây răng.
Tín hiệu đầu trống: Hàm trống khi đường môi đi qua dưới đường răng và đường lên dưới đường răng.
Chiến lược này đặt ra cả điều kiện dừng lỗ và dừng lại:
Chiến lược RSI Catch Trends có những lợi thế sau:
RSI có những rủi ro sau đây:
Sự giao thoa của dây răng và dây môi có thể dẫn đến phá vỡ giả, dẫn đến tổn thất không cần thiết. Các tham số chu kỳ có thể được điều chỉnh thích hợp để giảm khả năng phá vỡ giả.
Cài đặt dừng lỗ có thể quá quyết liệt, có nhiều khả năng dừng lỗ không cần thiết. Bạn có thể nới lỏng phạm vi dừng lỗ một cách thích hợp, hoặc thêm các điều kiện khác như là điều kiện tiên quyết để kích hoạt dừng lỗ.
Nếu tình hình nghiêm trọng, bị hư hỏng hoặc không có hiệu quả như bảo lãnh. Trong trường hợp này, cần can thiệp bằng tay và dừng thiệt hại kịp thời.
Khi chuyển đổi đa không gian thường xuyên, áp lực chi phí giao dịch cao 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 lặp đi lặp lại không cần thiết.
Các chiến lược RSI có thể được tối ưu hóa từ các khía cạnh sau:
Tối ưu hóa các thiết lập tham số của dòng cá mập, điều chỉnh tham số chu kỳ, tìm các tham số kết hợp tốt nhất
Tối ưu hóa logic điều kiện nhập, chẳng hạn như các chỉ số khối lượng giao dịch mới và các tín hiệu lọc
Tối ưu hóa chiến lược dừng lỗ để phù hợp hơn với tình hình và mức bảo lãnh
Tăng cơ chế xử lý các sự kiện bất ngờ, tránh phơi bày các hành vi bất thường
Tăng thuật toán mở cửa, kiểm soát tỷ lệ đầu tư đơn lẻ, tránh rủi ro
Chiến lược theo dõi xu hướng cá RSI nói chung là một chiến lược theo dõi xu hướng đáng tin cậy và dễ sử dụng. Nó sử dụng chỉ số cá RSI để 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 xu hướng một cách hiệu quả và thiết lập điểm xuất phá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ẽ, đáng để ứng dụng thực tế và tối ưu hóa sau đó.
/*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)