Chiến lược giao dịch dải Bollinger


Ngày tạo: 2023-12-19 14:08:45 sửa đổi lần cuối: 2023-12-19 14:08:45
sao chép: 0 Số nhấp chuột: 639
1
tập trung vào
1621
Người theo dõi

Chiến lược giao dịch dải Bollinger

Tổng quan

Chiến lược này dựa trên đường đi lên xuống của vòng Brin, xác định giá phá vỡ đường đi lên của vòng Brin và làm trống khi phá vỡ đường đi xuống.

Nguyên tắc chiến lược

Chiến lược này sử dụng đường trung tâm, đường trên và đường dưới trong vòng Brin để đánh giá phạm vi giá cực. đường trung tâm là đường trung bình di chuyển đơn giản của giá đóng cửa trong 25 chu kỳ qua, đường trên và đường dưới là khoảng cách tiêu chuẩn tiếp theo trên đường trung tâm.

Nếu giá thấp hơn đường ray xuống, mua nhiều hơn; Nếu giá cao hơn đường ray lên, bán hết. Khi làm nhiều hơn, thiết lập đường dừng là giá nhập cảnh nhân với yếu tố dừng, đường dừng là giá nhập cảnh nhân với yếu tố dừng.

Chính sách này cũng có thêm một số quy tắc phụ trợ, chẳng hạn như chỉ cho phép phát một tín hiệu trong vòng 24 giờ để tránh các giao dịch không cần thiết.

Lợi thế chiến lược

  1. Sử dụng các dải Brin để xác định phạm vi giá bất thường, thuộc về chiến lược theo dõi xu hướng, có thể nắm bắt xu hướng giá
  2. Các tham số liên quan được thiết lập theo nguyên tắc dừng lỗ, có thể kiểm soát tổn thất đơn lẻ
  3. Một số quy tắc phụ đã được thêm vào để tránh các tín hiệu lặp lại và giao dịch vô nghĩa.

Rủi ro chiến lược

  1. Phạm vi Brin không hoàn toàn đại diện cho xu hướng giá, có thể có tín hiệu sai
  2. Thời điểm không đúng cho tín hiệu đột phá có thể gây thiệt hại
  3. Thị trường xu hướng có thời gian dài không có xu hướng và biến động khó dự đoán, có thể dẫn đến mua không cần thiết

Biện pháp kiểm soát rủi ro:

  1. Điều chỉnh các tham số Brin để tối ưu hóa thời gian của tín hiệu đột phá
  2. Kết hợp các chỉ số khác để đánh giá xu hướng lớn
  3. Đặt mức dừng lỗ theo các giống và tình hình thị trường khác nhau

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

  1. Có thể xem xét các tham số Brinh tự điều chỉnh để làm cho Brinh gần hơn với tình trạng thị trường hiện tại
  2. Có thể kết hợp với các chỉ số khác để đánh giá độ tin cậy của tín hiệu xu hướng, tránh tín hiệu sai
  3. Có thể kết hợp mô hình học máy để tự động xác định thời điểm mua và bán tốt nhất

Tóm tắt

Chiến lược này nói chung là một chiến lược theo dõi xu hướng đơn giản, sử dụng dây Brin để xác định giá bất thường và theo dõi xu hướng, có không gian tối ưu hóa về tối ưu hóa tham số, kiểm soát rủi ro và lọc tín hiệu, nhưng ý tưởng cốt lõi đơn giản và rõ ràng, phù hợp để học chiến lược.

Mã nguồn chiến lược
/*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")