Chiến lược này sử dụng chỉ số RSI để xác định liệu một đồng tiền điện tử có bị bán quá mức hay không, và mua khi chỉ số RSI dưới 30, được coi là bán quá mức. Sau đó, nó thiết lập giá dừng lỗ và lấy lợi nhuận. Nếu giá dừng lỗ bị trúng, nó sẽ thoát khỏi vị trí. Nếu giá lấy lợi nhuận đạt được, nó sẽ đóng vị trí để kiếm lợi nhuận.
Chiến lược này sử dụng chỉ số RSI để xác định các tín hiệu nhập cảnh. RSI đo tốc độ và quy mô của sự thay đổi giá để xác định xem một tài sản có bị mua quá nhiều hay bán quá nhiều không. RSI dao động từ 0 đến 100, với mức trên 70 được coi là mua quá nhiều và dưới 30 là bán quá nhiều.
Khi chỉ số RSI giảm xuống dưới 30, chiến lược đi vào một vị trí dài, đặt cược vào sự đảo ngược xu hướng.
Sau khi mở vị trí, dừng lỗ và lấy lợi nhuận được thiết lập. Stop loss được thiết lập 1% dưới giá nhập cảnh. Lợi nhuận được thiết lập 7% trên giá nhập cảnh.
Nếu giá giảm xuống dưới mức dừng lỗ, vị trí được đóng. Nếu giá tăng trên mức lấy lợi nhuận, vị trí được đóng để kiếm lợi nhuận.
Sử dụng chỉ số RSI để xác định các điều kiện bán quá mức cung cấp các điểm đầu vào tốt ở mức thấp tương đối.
Việc dừng lỗ chặt chẽ kiểm soát rủi ro trên cơ sở mỗi giao dịch. Nó cho phép một số rút tiền trước khi bị dừng lại.
Lợi nhuận lấy khóa trong lợi nhuận từ các động thái tăng lớn.
Chiến lược này có kiểm soát rút vốn mạnh mẽ và rủi ro thấp hơn nói chung.
RSI tín hiệu bán quá mức không phải lúc nào cũng dẫn đến một sự đảo ngược, giá có thể tiếp tục giảm dẫn đến dừng lỗ.
Stop loss có thể quá chặt chẽ, dẫn đến việc dừng sớm nếu drawdown lớn.
Lợi nhuận có thể quá lớn, đóng lợi nhuận sớm và không để người chiến thắng chạy.
Chiến lược có thể phải đối mặt với những tổn thất lớn trong thời gian thị trường bên lề bị biến động.
Kết hợp RSI với các chỉ số khác như KDJ có thể cải thiện độ chính xác tín hiệu và tránh tín hiệu sai.
Tối ưu hóa tỷ lệ dừng lỗ và lấy lợi nhuận dựa trên sự biến động của các đồng tiền khác nhau.
Kiểm tra các thông số khung thời gian khác nhau để tìm kết hợp tối ưu.
Tối ưu hóa kích thước vị trí dựa trên kết quả backtest.
Nhìn chung, đây là một chiến lược vượt quá mức bán khá mạnh mẽ. Lấy vị trí sau khi tín hiệu RSI vượt quá mức bán cung cấp các điểm vào tốt ở mức giá tương đối thấp. Cơ chế dừng lỗ và lấy lợi nhuận giúp kiểm soát rủi ro và khóa lợi nhuận.
/*backtest start: 2023-09-18 00:00:00 end: 2023-09-25 00:00:00 period: 15m basePeriod: 5m 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/ // © brodieCoinrule //@version=4 strategy(shorttitle='Oversold RSI with tight SL',title='Oversold RSI with tight SL Strategy (by Coinrule)', overlay=true, initial_capital = 1000, process_orders_on_close=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 50, commission_type=strategy.commission.percent, commission_value=0.1) //Backtest dates fromMonth = input(defval = 1, title = "From Month", type = input.integer, minval = 1, maxval = 12) fromDay = input(defval = 1, title = "From Day", type = input.integer, minval = 1, maxval = 31) fromYear = input(defval = 2020, title = "From Year", type = input.integer, minval = 1970) thruMonth = input(defval = 1, title = "Thru Month", type = input.integer, minval = 1, maxval = 12) thruDay = input(defval = 1, title = "Thru Day", type = input.integer, minval = 1, maxval = 31) thruYear = input(defval = 2112, title = "Thru Year", type = input.integer, minval = 1970) showDate = input(defval = true, title = "Show Date Range", type = input.bool) start = timestamp(fromYear, fromMonth, fromDay, 00, 00) // backtest start window finish = timestamp(thruYear, thruMonth, thruDay, 23, 59) // backtest finish window window() => true // create function "within window of time" perc_change(lkb) => overall_change = ((close[0] - close[lkb]) / close[lkb]) * 100 // RSI inputs and calculations lengthRSI = 14 RSI = rsi(close, lengthRSI) oversold= input(30) //Entry strategy.entry(id="long", long = true, when = RSI< oversold and window()) //Exit Stop_loss= ((input (1))/100) Take_profit= ((input (7)/100)) longStopPrice = strategy.position_avg_price * (1 - Stop_loss) longTakeProfit = strategy.position_avg_price * (1 + Take_profit) strategy.close("long", when = close < longStopPrice or close > longTakeProfit and window())