Chiến lược giao dịch chỉ số dựa trên kênh Bollinger Bands


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

Chiến lược giao dịch chỉ số dựa trên kênh Bollinger Bands

Tổng quan

Chiến lược này được gọi là chiến lược giao dịch định lượng dải Bollinger Bands, một chiến lược giao dịch chỉ số và cổ phiếu dựa trên việc cải thiện các kênh dải Bollinger Bands. Chiến lược này có thể được tối ưu hóa cho cả vị trí dài và ngắn đồng thời bằng cách điều chỉnh các tham số dải Bollinger Bands, do đó có thể kiếm lợi nhuận trong thị trường giảm giá.

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

Lịch lý cốt lõi của chiến lược này dựa trên đường dẫn Brin. Brin bao gồm đường trung tâm, đường trên và đường dưới, đường trung tâm là đường trung bình di chuyển của giá đóng cửa trong n ngày, đường trên và đường dưới là sai lệch từ đường trung tâm xuống. Khi giá gần đường trên, đại diện cho thị trường có thể quá nóng, sẽ tạo ra cơ hội đầu không; Khi giá gần đường dưới, đại diện cho thị trường có thể bị đánh giá thấp, sẽ tạo ra cơ hội đa đầu.

Chiến lược này sử dụng hai vùng Brin, vùng Brin 1 được sử dụng để làm nhiều, và vùng Brin 2 được sử dụng để làm trống. Các tham số của vùng Brin 1 được tối ưu hóa, với chiều dài 25 và độ lệch 2,9 lần; tham số của vùng Brin 2 cũng được tối ưu hóa, với chiều dài 36 và độ lệch 3,2 lần.

Phân tích lợi thế

So với các chiến lược truyền thống, chiến lược này có những ưu điểm sau:

  1. Có thể thực hiện giao dịch song phương đa không gian. Nó cũng có thể áp dụng cho các tình huống song phương, có thể nắm bắt các cơ hội giao dịch ở các giai đoạn khác nhau của thị trường.

  2. Các tham số đã được tối ưu hóa. Hai bộ tham số của Brin đã được kiểm tra kỹ lưỡng, có thể phát ra tín hiệu giao dịch hiệu quả.

  3. Có thể kiểm soát rủi ro. Sử dụng phương pháp dừng chân di động, có thể kiểm soát rủi ro đơn phương một cách hiệu quả.

Phân tích rủi ro

Chiến lược này cũng có một số rủi ro tiềm ẩn:

  1. Rủi ro thất bại của dây chuyền Brin. Khi thị trường biến động mạnh, các kênh dây chuyền Brin có thể bị thất bại.

  2. Hạn kiệt được đặt rủi ro. Hạn kiệt di động có thể được đặt, do đó mở rộng tổn thất. Hạn kiệt có thể được nới lỏng thích hợp hoặc dừng lỗ kịp thời để tránh.

  3. Tỷ lệ giao dịch quá cao có nguy cơ. Các tham số được đặt quá nhạy cảm có thể dẫn đến giao dịch thường xuyên và tăng chi phí giao dịch.

Hướng tối ưu hóa

Chiến lược này có thể được tối ưu hóa hơn nữa:

  1. Kết hợp với các chỉ số khác để lọc tín hiệu, tránh giao dịch sai khi Brin bị mất hiệu lực. Ví dụ: hình dạng K-line, khối lượng giao dịch, v.v.

  2. Phong cách điều chỉnh các tham số để làm cho các dải Brin phù hợp hơn với các đặc điểm thị trường của các chu kỳ khác nhau. Ví dụ: áp dụng các dải Brin thích ứng.

  3. Tối ưu hóa phương thức dừng lỗ, sử dụng theo dõi dừng hoặc dừng di chuyển chỉ số, để kiểm soát rủi ro hiệu quả.

  4. Kết hợp với thuật toán học máy, để thực hiện tối ưu hóa tự động của tham số.

Tóm tắt

Chiến lược này được dựa trên hai kênh Brin, thông qua các tham số tối ưu hóa, tối ưu hóa giao dịch song phương dài hạn và ngắn hạn. So với chiến lược Brin truyền thống, nó có nhiều lợi thế trong việc kiểm soát rủi ro, có giá trị thực tế, phù hợp với cơ hội nắm bắt các giai đoạn thị trường khác nhau.

Mã nguồn chiến lược
/*backtest
start: 2022-12-01 00:00:00
end: 2023-12-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © exlux99

//@version=4
strategy("BB NDX strategy", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, calc_on_every_tick = true, commission_type = strategy.commission.percent, commission_value = 0.01)

source = close
length = input(25, minval=1, title="Length BB long")
mult = input(2.9, minval=0.001, maxval=50, step=0.1, title="MULT BB long")

length2 = input(36, minval=1, title="Length BB short")
mult2 = input(3.2, minval=0.001, maxval=50, step=0.1, title="MULT BB short")


basis = sma(source, length)
dev = mult * stdev(source, length)
dev2 = mult2 * stdev(source, length2)

upper = basis + dev2
lower = basis - dev

buyEntry = crossover(source, lower)
sellEntry = crossunder(source, upper)

longEntry=input(true)
shortEntry=input(true)

g(v, p) => round(v * (pow(10, p))) / pow(10, p)
risk     = input(100)
leverage = input(1.0, step = 0.5)
c = g((strategy.equity * leverage / open) * (risk / 100), 4)


tplong=input(0.065, step=0.005, title="Take profit % for long")
sllong=input(0.04, step=0.005, title="Stop loss % for long")
tpshort=input(0.025, step=0.005, title="Take profit % for short")
slshort=input(0.04, step=0.005, title="Stop loss % for short")

if(longEntry)
    strategy.entry("long",1,c,when=buyEntry)
    strategy.exit("short_tp/sl", "long", profit=close * tplong / syminfo.mintick, loss=close * sllong / syminfo.mintick, comment='LONG EXIT',  alert_message = 'closeshort')
    strategy.close("long",when=sellEntry)
if(shortEntry)
    strategy.entry("short",0,c,when=sellEntry)
    strategy.exit("short_tp/sl", "short", profit=close * tpshort / syminfo.mintick, loss=close * slshort / syminfo.mintick, comment='SHORT EXIT',  alert_message = 'closeshort')
    strategy.close("short",when=buyEntry)