Chiến lược này kết hợp Chỉ số Sức mạnh Tương đối (RSI) và Bollinger Bands để xây dựng một chiến lược giao dịch ngắn hạn. Nó chủ yếu sử dụng các tín hiệu mua và bán khi RSI phá vỡ các Bollinger Bands trên hoặc dưới. Trong khi đó, một cơ chế dừng lỗ được bao gồm để kiểm soát rủi ro hiệu quả.
Chiến lược này kết hợp các điểm mạnh của cả RSI và Bollinger Bands cho giao dịch ngắn hạn.
Các rủi ro tiềm ẩn của chiến lược này bao gồm:
Giải pháp:
Có chỗ cho việc tối ưu hóa thêm:
Tóm lại, đây là một chiến lược giao dịch ngắn hạn tương đối ổn định và đáng tin cậy. Bằng cách kết hợp các điểm mạnh của phán đoán mua quá mức bán quá mức của RSI và phạm vi thích nghi của Bollinger Bands, nó tạo thành một hệ thống ngắn hạn có lợi. Với điều chỉnh tham số và tinh chỉnh logic, chiến lược này có thể đạt được lợi nhuận nhất quán.
/*backtest start: 2022-12-12 00:00:00 end: 2023-10-13 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("rsi+bb st", shorttitle="rsibb st 0.3") len_rsi=input(14) len_bb = input(25) mul10 = input(20.0) mul=mul10/10 sl100 = input(94.0, title='stop loss rate') sl=sl100/100 lw = 3 vwma_e(src, len) => ema(src*volume, len)/ema(volume,len) rsi = rsi(close, len_rsi) plot(rsi, color=blue, title= 'rsi blue', linewidth=lw) plot(70, color=gray, title='line 70', linewidth=lw) plot(30, color=gray, title='line 30', linewidth=lw) bbg = stdev(rsi, len_bb)*mul bbc = vwma_e(rsi, len_bb) //bbc=ema(rsi,len_bb) ratio = 0.6 bbc := bbc*ratio + 50*(1-ratio) bbu = bbc+bbg bbl = bbc-bbg plot(bbu, color=green, title='bb_up green', linewidth=lw) plot(bbl, color=red, title='bb_low red', linewidth=lw) plot(bbc, color=#808000ff, title='bb center', linewidth=lw) plot(50, color=black) lc = crossover(rsi, bbl) //or crossover(rsi, bbc) sc = crossunder(rsi, bbu) last_pos = 0*close if lc last_pos := 1 else last_pos := last_pos[1] if sc last_pos := 2 last_price = 0*close if last_pos[1] !=1 and last_pos == 1 last_price := close else last_price := last_price[1] if last_pos==1 and close < last_price*sl lc:=false sc:=true last_pos:=2 if (lc) strategy.entry("long", strategy.long) if (sc) strategy.entry("short", strategy.short)