Chiến lược này theo dõi sự đột phá của chỉ số RSI trong các phạm vi khác nhau để thực hiện mua thấp và bán cao. Nó đi dài khi RSI ở trong phạm vi thấp và đi ngắn khi RSI ở trong phạm vi cao, do đó đảo ngược vị trí khi các điều kiện mua quá mức hoặc bán quá mức xuất hiện.
Đặt thời gian RSI là 14
Đặt phạm vi tín hiệu mua RSI:
Đặt phạm vi tín hiệu bán RSI:
Khi RSI vào phạm vi mua, mua dài:
Khi RSI bước vào bán phạm vi, đi ngắn:
Đặt cố định lấy lợi nhuận đến 2500 pips và dừng lỗ đến 5000 pips
Khóa vị trí khi RSI thoát khỏi phạm vi tín hiệu
Cài đặt phạm vi hai giúp xác định tốt hơn các điều kiện mua quá mức và bán quá mức, tránh bỏ lỡ cơ hội đảo ngược
Việc áp dụng lợi nhuận cố định và dừng lỗ trong pips ngăn chặn theo đuổi xu hướng quá nhiều
RSI là một dao động trưởng thành trong việc xác định mức mua quá mức và bán quá mức với lợi thế so với các chỉ số khác
Với điều chỉnh tham số thích hợp, chiến lược này có thể bắt hiệu quả các điểm đảo ngược xu hướng và tạo ra lợi nhuận dư thừa
Sự khác biệt RSI có thể xảy ra dẫn đến tổn thất liên tiếp từ vị trí ngắn bền vững
Lợi nhuận cố định và dừng lỗ có thể không phù hợp với biến động thị trường, không thể kiếm lợi nhuận hoặc dừng sớm
Việc thiết lập phạm vi không chính xác có thể dẫn đến việc bỏ lỡ giao dịch hoặc giao dịch thường xuyên không có lợi nhuận
Chiến lược này phụ thuộc nhiều vào tối ưu hóa tham số dựa trên backtests.
Hiệu quả thử nghiệm của RSI với thời gian dài khác nhau
Tối ưu hóa giá trị bán và mua để phù hợp với các đặc điểm của các sản phẩm khác nhau
Nghiên cứu năng động lấy lợi nhuận và dừng lỗ để cải thiện lợi nhuận và hợp lý
Xem xét kết hợp các chỉ số khác cho giao dịch tập thể để cải thiện độ vững chắc
Khám phá các kỹ thuật học máy để tự động tối ưu hóa phạm vi tham số cho độ bền
Chiến lược này dựa trên các nguyên tắc mua quá nhiều và bán quá nhiều của RSI. Bằng cách áp dụng phạm vi giao dịch kép, nó sử dụng chỉ số RSI hiệu quả, nắm bắt những điều cực đoan của thị trường với sự ổn định tốt. Tuy nhiên, nó có một số độ phụ thuộc tham số và cần tối ưu hóa trên các sản phẩm. Nếu điều chỉnh đúng cách, chiến lược này có thể mang lại lợi nhuận dư thừa tốt. Tóm lại, đây là một chiến lược giao dịch đơn giản nhưng hiệu quả sử dụng chỉ số trưởng thành, đáng nghiên cứu để cải thiện và cung cấp thông tin chi tiết cho giao dịch định lượng.
/*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/ // © Rawadabdo // Ramy's Algorithm //@version=5 strategy("BTC/USD - RSI", overlay=false, initial_capital = 5000) // User input length = input(title = "Length", defval=14, tooltip="RSI period") first_buy_level = input(title = "Buy Level 1", defval=27, tooltip="Level where 1st buy triggers") second_buy_level = input(title = "Buy Level 2", defval=18, tooltip="Level where 2nd buy triggers") first_sell_level = input(title = "Sell Level 1", defval=68, tooltip="Level where 1st sell triggers") second_sell_level = input(title = "Sell Level 2", defval=80, tooltip="Level where 2nd sell triggers") takeProfit= input(title="target Pips", defval=2500, tooltip="Fixed pip stop loss distance") stopLoss = input(title="Stop Pips", defval=5000, tooltip="Fixed pip stop loss distance") lot = input(title = "Lot Size", defval = 1, tooltip="Trading Lot size") // Get RSI vrsi = ta.rsi(close, length) // Entry Conditions long1 = (vrsi <= first_buy_level and vrsi>second_buy_level) long2 = (vrsi <= second_buy_level) short1= (vrsi >= first_sell_level and vrsi<second_sell_level) short2= (vrsi >= second_sell_level) // Entry Orders // Buy Orders if (long1 and strategy.position_size == 0) strategy.entry("Long", strategy.long, qty=lot, comment="Buy") if (long2 and strategy.position_size == 0) strategy.entry("Long", strategy.long, qty=lot, comment="Buy") // Short Orders if (short1 and strategy.position_size == 0) strategy.entry("Short", strategy.short,qty=lot, comment="Sell") if (short2 and strategy.position_size == 0) strategy.entry("Short", strategy.short,qty=lot, comment="Sell") // Exit our trade if our stop loss or take profit is hit strategy.exit(id="Long Exit", from_entry="Long",qty = lot, profit=takeProfit, loss=stopLoss) strategy.exit(id="Short Exit", from_entry="Short", qty = lot, profit=takeProfit, loss=stopLoss) // plot data to the chart hline(first_sell_level, "Overbought Zone", color=color.red, linestyle=hline.style_dashed, linewidth = 2) hline(second_sell_level, "Overbought Zone", color=color.green, linestyle=hline.style_dashed, linewidth = 2) hline(first_buy_level, "Oversold Zone", color=color.red, linestyle=hline.style_dashed, linewidth = 2) hline(second_buy_level, "Oversold Zone", color=color.green, linestyle=hline.style_dashed, linewidth = 2) plot (vrsi, title = "RSI", color = color.blue, linewidth=2)