
Chiến lược bù đắp pháo đáy là một chiến lược bán cao mua thấp điển hình. Nó sử dụng chỉ số RSI để xác định điểm bán tháo, phát ra tín hiệu mua sau khi giá giảm xuống một mức độ nhất định và tích lũy token với giá thấp hơn; Khi giá tăng trở lại, lợi nhuận được thực hiện bằng cách thiết lập RSI thoát khỏi ngưỡng thấp.
Chiến lược này chủ yếu dựa trên chỉ số RSI để xác định điểm bán tháo. RSI có phạm vi bình thường từ 0 đến 100. RSI sẽ phát ra tín hiệu mua khi chỉ số RSI giảm xuống dưới ngưỡng thả đặt 35 và sẽ phát ra tín hiệu bán khi chỉ số RSI tăng trở lại ngưỡng thả đặt trên 65.
Ngoài ra, chiến lược cũng giới thiệu một trung bình di chuyển đơn giản 100 chu kỳ, tạo điều kiện kết hợp với chỉ số RSI, chỉ khi giá giảm xuống dưới trung bình di chuyển và RSI đi vào khu vực bán tháo, tín hiệu mua sẽ được kích hoạt. Điều này có thể lọc một số trường hợp phá vỡ giả và giảm giao dịch không cần thiết.
Chiến lược bù đắp pháo đáy là một chiến lược mua bán giá thấp và giá cao thực tế. Bằng cách lọc kép RSI và đường trung bình di chuyển, có thể ngăn chặn hiệu quả các tín hiệu sai, có thể có được chi phí nắm giữ đồng tiền thấp hơn với các tham số được tối ưu hóa. Đồng thời, tối ưu hóa các tham số chỉ số thích hợp, điều chỉnh chiến lược vị trí, có khả năng đạt được hiệu quả sử dụng tiền cao hơn.
/*backtest
start: 2024-01-10 00:00:00
end: 2024-01-17 00:00:00
period: 1m
basePeriod: 1m
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/
// © Coinrule
//@version=4
strategy(shorttitle='Optimized RSI Strategy',title='Optimized RSI Strategy - Buy The Dips (by Coinrule)', overlay=true, initial_capital = 1000, default_qty_type = strategy.percent_of_equity, default_qty_type = strategy.percent_of_equity, default_qty_value = 30, 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"
// RSI inputs and calculations
lengthRSI = (14)
RSI = rsi(close, lengthRSI)
RSI_entry = input(35, title = 'RSI Entry', minval=1)
RSI_exit = input(65, title = 'RSI Close', minval=1)
//Calculate Moving Averages
movingaverage_signal = sma(close, input(100))
//Entry
strategy.entry(id="long", long = true, when = RSI< RSI_entry and close < movingaverage_signal and window())
//Exit
//RSI
strategy.close("long", when = RSI > RSI_exit and window())
plot (movingaverage_signal)