Chiến lược giao dịch Bollinger Band Breakout

Tác giả:ChaoZhang, Ngày: 2023-12-19 14:08:45
Tags:

img

Tổng quan

Chiến lược này dựa trên các đường ray trên và dưới của Bollinger Bands để xác định khi nào giá vượt qua đường ray trên của Bollinger Bands để đi dài và vượt qua đường ray dưới để đi ngắn.

Chiến lược logic

Chiến lược này sử dụng đường ray giữa / trên / dưới của Bollinger Bands để xác định phạm vi giá cực. Đường ray giữa là trung bình di chuyển đơn giản của giá đóng trong 25 giai đoạn qua. Đường ray trên và dưới là một độ lệch chuẩn trên và dưới đường ray giữa. Khi giá vượt qua đường ray trên hoặc dưới, nó chỉ ra rằng có một sự đột phá và hành vi giá bất thường, có thể được sử dụng để đưa ra quyết định giao dịch.

Nếu giá dưới đường ray dưới, đi dài. Nếu giá trên đường ray trên, đi ngắn. Khi đi dài, thiết lập stop loss với giá nhập nhân nhân nhân nhân stop loss và lấy lợi nhuận với giá nhập nhân nhân nhân nhân nhân.

Chiến lược cũng kết hợp một số quy tắc phụ, chẳng hạn như chỉ cho phép một tín hiệu mỗi 24 giờ để tránh giao dịch không cần thiết.

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

  1. Sử dụng Bollinger Bands để xác định phạm vi giá bất thường thuộc về các chiến lược theo dõi xu hướng có thể nắm bắt xu hướng giá.
  2. Các thông số dừng lỗ và lấy lợi nhuận được thiết lập theo các nguyên tắc để kiểm soát lỗ đơn.
  3. Một số quy tắc phụ được thêm vào để tránh các tín hiệu trùng lặp và giao dịch không cần thiết.

Rủi ro của chiến lược

  1. Bollinger Bands không thể đại diện đầy đủ xu hướng giá, và có thể có tín hiệu sai.
  2. Thời điểm không đúng của tín hiệu đột phá có thể dẫn đến tổn thất.
  3. Thời gian và động lực của thị trường xu hướng hoặc không xu hướng khó dự đoán, có thể dẫn đến các vị trí dài không cần thiết.

Quản lý rủi ro:

  1. Điều chỉnh các thông số Bollinger Band để tối ưu hóa thời gian tín hiệu đột phá.
  2. Bao gồm các chỉ số khác để xác định xu hướng chính.
  3. Thiết lập phạm vi dừng lỗ và lấy lợi nhuận theo các sản phẩm và điều kiện thị trường khác nhau.

Hướng dẫn tối ưu hóa

  1. Xem xét tối ưu hóa thích nghi của các thông số Bollinger Band để làm cho chúng phù hợp hơn với điều kiện thị trường hiện tại.
  2. Bao gồm các chỉ số khác để đánh giá độ tin cậy của các tín hiệu xu hướng và tránh các tín hiệu sai.
  3. Kết hợp các mô hình học máy để tự động xác định thời gian dài và ngắn tối ưu.

Kết luận

Tóm lại, đây là một chiến lược theo dõi xu hướng đơn giản bằng cách sử dụng Bollinger Bands để xác định giá bất thường và theo dõi xu hướng.


/*backtest
start: 2023-11-18 00:00:00
end: 2023-12-18 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("I11L OIL Bot",overlay=true, initial_capital=1000000,default_qty_value=1000000,default_qty_type=strategy.cash,commission_type=strategy.commission.percent,commission_value=0.00)

leverage = input.float(1,"Leverage (x)",step=1)
SL_Factor = 1 - input.float(1,"Risk Capital per Trade (%)", minval=0.1, maxval=100, step=0.05) / 100 / leverage
TP_Factor = input.float(2, step=0.1)
invertBuyLogic = input.bool(false)
 
lookbackDistance = input.int(25)
devMult = input.float(2,step=0.1)

var lastSellHour = 0
var disableAdditionalBuysThisDay = false


if(time > lastSellHour + 1000 * 60 * 60 * 6)
    disableAdditionalBuysThisDay := false
if(strategy.position_size != strategy.position_size[1])
    disableAdditionalBuysThisDay := true
    lastSellHour := time

source = close

//Trade Logic
basis = ta.sma(source, lookbackDistance)
dev = devMult * ta.stdev(source, lookbackDistance)
upper = basis + dev
lower = basis - dev
isBuy = ta.crossunder(source, upper)
isBuyInverted = ta.crossover(source, lower)

plot(upper, color=color.white)
plot(lower, color=color.white)

strategy.initial_capital = 50000

if((invertBuyLogic ? isBuyInverted : isBuy) and not(disableAdditionalBuysThisDay))
    strategy.entry("Long", strategy.long, (strategy.initial_capital / close) * leverage)

if(strategy.position_size > 0)
    strategy.exit("SL Long", "Long", stop=strategy.position_avg_price * SL_Factor)
    strategy.close("Long",  when=close > strategy.position_avg_price * (1 + (1 - SL_Factor) * TP_Factor), comment="TP Long")





Thêm nữa