Chiến lược này được gọi là
Lý thuyết cốt lõi của chiến lược này dựa trên sự kết hợp của Bollinger Bands và chỉ số RSI.
Đầu tiên, Bollinger Bands bao gồm ba đường: đường giữa, đường trên và đường dưới. Đường giữa là đường trung bình di chuyển đơn giản trong n ngày, trong khi đường trên và đường dưới là k lần độ lệch chuẩn trên và dưới đường giữa. Khi giá đạt hoặc chạm vào đường trên hoặc dưới, nó cho thấy cổ phiếu đang ở trạng thái mua quá mức hoặc bán quá mức.
Trong chiến lược này, thời gian dài của đường giữa Bollinger Bands là 235 ngày, và giá trị tham số k là 2. Nó tạo ra tín hiệu mua khi giá giảm xuống dưới đường dưới Bollinger hoặc vượt qua đường giữa, và bán tín hiệu khi giá tăng trên đường trên Bollinger.
Thứ hai, chỉ số RSI phản ánh mức mua quá mức / bán quá mức của một cổ phiếu. RSI trên 70 cho thấy tình trạng mua quá mức, trong khi dưới 30 tình trạng bán quá mức. Độ dài thời gian tham số cho RSI trong chiến lược này là 2.
Trong chiến lược này, Bollinger Bands và chỉ số RSI được sử dụng cùng nhau: Các tín hiệu mua được tạo ra khi RSI vượt qua mức bán quá mức trong khi giá chạm hoặc giảm xuống dưới đường dưới Bollinger. Các tín hiệu bán được tạo ra khi RSI phá vỡ từ mức mua quá mức trong khi giá tăng trên đường trên Bollinger.
Chiến lược này có những lợi thế sau:
Ngoài ra còn có một số rủi ro liên quan đến chiến lược này:
Có một số hướng để tối ưu hóa thêm chiến lược này:
Đây là một chiến lược chỉ dài đặc biệt phù hợp với các cổ phiếu biến động cao như FNGU. Bằng cách kết hợp Bollinger Bands và RSI, nó tạo ra các tín hiệu giao dịch xung quanh mức giá mua quá mức / bán quá mức, nhằm mục đích nắm bắt các cơ hội đảo ngược giá.
/*backtest start: 2023-12-29 00:00:00 end: 2024-01-28 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Bollinger + RSI + EMA, Double Strategy Long-Only (by EMKM)", shorttitle="1Min Killer", overlay=true) ///////////// RSI RSIlength = input(2, title="RSI Period Length") // Adjusted RSI period length RSIoverSold = 50 RSIoverBought = 50 price = close vrsi = rsi(price, RSIlength) ///////////// Bollinger Bands BBlength = input(235, minval=1, title="Bollinger Period Length") // Adjusted Bollinger period length BBmult = 2 BBbasis = sma(price, BBlength) BBdev = BBmult * stdev(price, BBlength) BBupper = BBbasis + BBdev BBlower = BBbasis - BBdev BBtarget38 = BBbasis + 0.38 * BBdev // Line at 38% of Bollinger Band width BBtarget50 = BBbasis + 0.50 * BBdev // Line at 50% of Bollinger Band width ///////////// EMA emaLength = input(20, title="EMA Period Length") ema = ema(close, emaLength) source = close buyEntry = crossover(source, BBlower) or (close < BBlower and close > BBbasis) or (low < BBlower and close > BBbasis) // Add condition for low touching Bollinger Band sellEntry = crossunder(source, BBupper) ///////////// Plotting plot(BBbasis, color=color.aqua, title="Bollinger Bands SMA Basis Line") plot(BBupper, color=color.silver, title="Bollinger Bands Upper Line") plot(BBlower, color=color.silver, title="Bollinger Bands Lower Line") plot(BBtarget38, color=color.blue, linewidth=2, title="SMA at 38% of BB width") // Line at 38% plot(BBtarget50, color=color.green, linewidth=2, title="SMA at 50% of BB width") // Line at 50% plot(ema, color=color.orange, title="EMA") // Plot EMA ///////////// RSI + Bollinger Bands Strategy longCondition = crossover(vrsi, RSIoverSold) and buyEntry sellCondition = crossunder(vrsi, RSIoverBought) and close > BBupper close_long = close > BBbasis close_short = close < BBbasis if (not na(vrsi)) if longCondition strategy.entry("Buy", strategy.long, qty=10, stop=BBlower, comment="Buy") else strategy.cancel(id="Buy") if close_long strategy.close("Buy") if (sellCondition) strategy.entry("Sell", strategy.short, qty=10, stop=BBupper, comment="Sell") else strategy.cancel(id="Sell") if close_short strategy.close("Sell")