Chiến lược giao dịch định lượng của FNGU dựa trên Bollinger Bands và RSI

Tác giả:ChaoZhang, Ngày: 2024-01-29 14:53:47
Tags:

img

Tổng quan

Chiến lược này được gọi là FNGU Quantitative Trading Strategy Based on Bollinger Bands and RSI. Đây là một chiến lược chỉ dài được thiết kế đặc biệt cho cổ phiếu FNGU. Chiến lược chủ yếu sử dụng các chỉ số Bollinger Bands và RSI để xác định các điều kiện mua quá mức và bán quá mức của cổ phiếu để tạo ra tín hiệu mua và bán.

Chiến lược logic

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.

Ưu điểm của Chiến lược

Chiến lược này có những lợi thế sau:

  1. Kết hợp Bollinger Bands và RSI làm cho tín hiệu mua / bán chính xác và đáng tin cậy hơn.
  2. Bollinger Bands xác định các vùng giá mua quá mức / bán quá mức, trong khi RSI lọc các tín hiệu giả.
  3. Nó chỉ thực hiện giao dịch dài, không cần phải xem xét rủi ro bán ngắn.
  4. Các thông số tối ưu hóa làm cho nó phù hợp đặc biệt với cổ phiếu FNGU dễ bay hơi.
  5. Nó thực hiện tự động dừng lỗ để giảm rủi ro mất mát.
  6. Việc thực hiện mã là đơn giản và rõ ràng, dễ hiểu và sửa đổi.

Rủi ro và giải pháp

Ngoài ra còn có một số rủi ro liên quan đến chiến lược này:

  1. Cả Bollinger Bands và RSI đều có thể tạo ra các tín hiệu giả, dễ dàng dẫn đến quá phù hợp. Các thông số có thể được điều chỉnh hoặc thêm các bộ lọc.
  2. FNGU tự nó có biến động cao. Thiết lập stop loss không đúng có thể làm tăng lỗ. Phạm vi stop loss nên được mở rộng.
  3. Chiến lược chỉ áp dụng cho các cổ phiếu biến động cao như FNGU thay vì những cổ phiếu khác.
  4. Mặc dù được tối ưu hóa, các thông số có thể trở nên lỗi thời với những thay đổi trên thị trường, đòi hỏi phải theo dõi và tối ưu hóa liên tục.

Hướng dẫn tối ưu hóa chiến lược

Có một số hướng để tối ưu hóa thêm chiến lược này:

  1. Thêm các chỉ số kỹ thuật khác như KDJ và MACD để tạo ra các tín hiệu chính xác hơn.
  2. Tối ưu hóa các thông số của Bollinger Bands và RSI để thích nghi với nhiều loại cổ phiếu hơn.
  3. Kết hợp các mô hình học máy để hỗ trợ ra quyết định với nhiều dữ liệu hơn.
  4. Thực hiện giao dịch liên kỳ sử dụng dữ liệu khung thời gian cao hơn.
  5. Kết hợp phân tích tình cảm bằng cách sử dụng dữ liệu truyền thông xã hội để tạo ra các tín hiệu giao dịch.
  6. Phát triển hệ thống backtesting định lượng để nhanh chóng kiểm tra các thiết lập tham số khác nhau.

Kết luận

Đâ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")


Thêm nữa