Chiến lược này thiết kế một chiến lược giao dịch ngắn hạn dựa trên chỉ số chỉ số sức mạnh tương đối (RSI), chủ yếu cho giao dịch trong khung thời gian 15 phút. Chiến lược tạo ra tín hiệu mua và bán bằng cách tính toán chỉ số RSI để đánh giá xem thị trường có bị mua quá nhiều hay bán quá nhiều không. Nó tạo ra tín hiệu mua khi chỉ số RSI vượt qua điểm dưới 30 và tạo ra tín hiệu bán khi chỉ số RSI vượt qua điểm trên 70.
Chỉ số RSI là một công cụ phân tích kỹ thuật tính toán tỷ lệ xu hướng tăng và giảm giá trong một khoảng thời gian nhất định để xác định xem thị trường có bị mua quá nhiều hay bán quá nhiều không. Giá trị chỉ số RSI dao động từ 0 đến 100. Một giá trị dưới 30 cho thấy tài sản bị bán quá nhiều, và một giá trị trên 70 cho thấy tài sản bị mua quá nhiều.
Chiến lược này đặt các thông số chỉ số RSI thành 14 giai đoạn, đường mua quá mức lên 70, và đường bán quá mức lên 30. Khi RSI vượt trên 30 từ dưới, một tín hiệu mua được tạo ra, có nghĩa là thị trường chuyển từ bán quá mức sang tăng. Khi RSI vượt dưới 70 từ trên, một tín hiệu bán được tạo ra, có nghĩa là thị trường chuyển từ tăng sang giảm. Sau khi nhận được tín hiệu, chiến lược sẽ có một vị trí dài hoặc ngắn theo hướng với đòn bẩy 1x tổng số tiền tài khoản để kiếm lợi nhuận từ giao dịch ngắn hạn.
Lợi thế lớn nhất của chiến lược này là các quy tắc đơn giản và rõ ràng, dễ hiểu và thực hiện. Chỉ số sức mạnh tương đối là một chỉ số định lượng rất cổ điển, được sử dụng rộng rãi để đánh giá các điều kiện mua quá mức và bán quá mức của thị trường. Chính chiến lược không cần dự đoán xu hướng thị trường trong tương lai và mục tiêu giá, chỉ cần theo các tín hiệu chỉ số RSI, làm giảm khó khăn của việc tối ưu hóa chiến lược.
Một lợi thế khác là chiến lược có khả năng thích nghi mạnh mẽ. Chiến lược này có thể được áp dụng cho bất kỳ loại và khung thời gian nào, đặc biệt phù hợp với việc nắm bắt dao động phạm vi trong trung hạn và ngắn hạn. Ngoài ra, chiến lược chỉ cần tối ưu hóa ba thông số: Thời gian RSI, đường mua quá mức và đường bán quá mức. Không gian tham số nhỏ, giúp dễ dàng kiểm tra và tối ưu hóa để tìm sự kết hợp các thông số tốt nhất.
Rủi ro lớn nhất của chiến lược này là thời gian nắm giữ là không chắc chắn. Khi thị trường trải qua các điều kiện mua quá mức hoặc bán quá mức kéo dài, nó sẽ dẫn đến thời gian nắm giữ quá dài các vị trí chiến lược và lỗ lớn hơn. Tại thời điểm này, cần phải dừng lỗ kịp thời để kiểm soát rủi ro.
Một rủi ro khác là tần suất giao dịch có thể quá cao. Khi thị trường dao động lên xuống xung quanh các đường RSI mua quá nhiều và bán quá nhiều, nó sẽ thường xuyên kích hoạt tín hiệu mua và bán, tăng phí giao dịch và chi phí trượt. Điều này đòi hỏi phải điều chỉnh các thông số thích hợp để mở rộng khoảng cách khoảng thời gian mua quá nhiều và bán quá nhiều để giảm giao dịch không cần thiết.
Chiến lược này có thể được tối ưu hóa trong các khía cạnh sau:
Tối ưu hóa các thông số RSI để tìm sự kết hợp tốt nhất của các thông số giai đoạn và các vị trí đường mua quá mức / bán quá mức.
Thêm các chiến lược dừng lỗ / lấy lợi nhuận với giá dừng lỗ hợp lý và giá lấy lợi nhuận.
Thêm các điều kiện lọc để tránh giao dịch không cần thiết, ví dụ như phạm vi biến động tối thiểu, bộ lọc khối lượng giao dịch.
Tối ưu hóa việc sử dụng vốn bằng cách thiết lập kích thước vị trí năng động.
Kết hợp với các chỉ số khác để cải thiện tính ổn định của chiến lược.
Chiến lược này thiết kế một chiến lược giao dịch ngắn hạn đơn giản và thực tế dựa trên chỉ số RSI. Các quy tắc tín hiệu chiến lược rõ ràng và dễ thực hiện với việc sử dụng vốn cao. Nó phù hợp để bắt các điều kiện mua quá mức / bán quá mức trên thị trường cho giao dịch ngược lại trong trung hạn và ngắn hạn. Thông qua kiểm tra và tối ưu hóa liên tục, chiến lược này có thể trở thành một hệ thống giao dịch định lượng rất ổn định và đáng tin cậy.
/*backtest start: 2023-01-10 00:00:00 end: 2024-01-16 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("RSI Strategy", overlay=true) length = input( 14 ) overSold = input( 30 ) overBought = input( 70 ) sl_inp = input(10.0, title='Stop Loss %')/100 tp_inp = input(1.0, title='Take Profit %')/100 haOpen = 0.0 haOpen := haOpen[1] st_level = strategy.position_avg_price * (1 - sl_inp) take_level = strategy.position_avg_price * (1 + tp_inp) price = close vrsi = rsi(price, length) co = crossover(vrsi, overSold) cu = crossunder(vrsi, overBought) strategy.initial_capital =50000 orderSize = ((strategy.initial_capital * 1) / close) if (not na(vrsi)) if (co) strategy.order("RsiLE", strategy.long, orderSize, take_level, st_level, comment="RsiLE") if (cu) strategy.close("RsiLE")//strategy.entry("RsiSE", strategy.short, qty=orderSize, comment="RsiSE") plotshape(not na(vrsi) and co and haOpen == 0.0, style=shape.labelup, location=location.belowbar, color=color.green, size=size.tiny, title="buy label", text="BUY", textcolor=color.white) plotshape(not na(vrsi) and co and haOpen == 1.0, style=shape.labelup, location=location.belowbar, color=color.orange, size=size.tiny, title="buy label", text="INC", textcolor=color.white) plotshape(not na(vrsi) and cu and haOpen == 1.0, style=shape.labeldown, location=location.abovebar, color=color.red, size=size.tiny, title="sell label", text="SELL", textcolor=color.white) if (not na(vrsi)) if (co) haOpen := 1.0 if (cu) haOpen := 0.0 //strategy.exit("Stop Loss/TP","RsiLE", stop=stop_level, limit=take_level) //plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)