Chiến lược giao cắt dựa trên Bollinger Bands và chỉ báo Hull


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

Chiến lược giao cắt dựa trên Bollinger Bands và chỉ báo Hull

Tổng quan

Chiến lược này dựa trên sự giao thoa của các chỉ số Brin và Hull để tạo ra tín hiệu giao dịch. Khi Hull vượt qua Brin, bạn sẽ làm nhiều hơn và khi Hull vượt qua Brin, bạn sẽ không làm gì cả. Chiến lược này kết hợp chiến lược phá vỡ của Brin và chiến lược theo dõi xu hướng của Hull để tận dụng lợi thế của cả hai.

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

Chiến lược này chủ yếu dựa trên sự giao thoa của các chỉ số Brin và Hull để tạo ra tín hiệu giao dịch.

Đầu tiên, Brin Belt bao gồm ba đường: đường trung đạo, đường lên và đường xuống. đường trung đạo là đường trung lưu di chuyển n ngày, đường lên và đường xuống là đường trung đạo và đường xuống cộng với một chênh lệch tiêu chuẩn. Nếu giá phá vỡ đường lên, đại diện cho cơ hội phá vỡ; nếu giá phá vỡ đường xuống, đại diện cho cơ hội hồi phục.

Thứ hai, chỉ số Hull là một chỉ số theo dõi xu hướng. Nó sử dụng chênh lệch giữa các đường trung bình di chuyển có trọng lượng của hai chu kỳ khác nhau để đánh giá xu hướng hiện tại. Nếu đường trung bình ngắn hạn cao hơn đường trung bình dài hạn, thì nó thuộc loại tăng nhiều đầu, ngược lại, nó thuộc loại giảm đầu.

Chiến lược này là kết hợp lợi thế của hai chỉ số này. Khi chỉ số Hull đi qua đường dây Brin xuống, cho rằng giá cổ phiếu có thể đi vào giai đoạn xu hướng lên, thì làm nhiều hơn; Khi chỉ số Hull đi qua đường dây Brin xuống, cho rằng giá cổ phiếu có thể đi vào giai đoạn điều chỉnh xuống, thì làm trống.

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

  1. Kết hợp lợi thế của cả hai chỉ số BRI và HRI làm cho tín hiệu giao dịch đáng tin cậy hơn.

  2. Sử dụng chỉ số Hull để xác định hướng xu hướng, và Brin để xác định vị trí kháng cự để tạo ra tín hiệu chéo, có thể làm tăng xác suất lợi nhuận.

  3. Bằng cách điều chỉnh các tham số của BRI và HRI, nó có thể được tối ưu hóa cho các cổ phiếu trong các chu kỳ khác nhau và có thể áp dụng rộng rãi hơn.

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

  1. Chiến lược này có thể tạo ra nhiều tín hiệu giả hơn, dẫn đến tổn thất khi giá cổ phiếu nằm trên bảng xếp hạng ngang. Có thể giảm tín hiệu giả bằng cách tối ưu hóa tham số hoặc thêm điều kiện lọc.

  2. Khi giá cổ phiếu dao động mạnh, BRI và HRI có thể phát tín hiệu giao dịch cùng một lúc, cần đảm bảo tính thứ tự của tín hiệu, tránh các sai lầm trong phán đoán tín hiệu chéo. Bạn có thể xem xét thêm dừng để kiểm soát tổn thất.

  3. Số lượng kho mở được thiết lập trực tiếp trong mã là 100%. Khi triển khai thực tế, cần điều chỉnh quản lý vị trí kho, không thể mở toàn bộ kho, có thể dẫn đến tổn thất mở rộng.

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

  1. Các tham số có thể được thử nghiệm để tối ưu hóa các chỉ số của BRI và HRI cho các cổ phiếu có nhiều chu kỳ hơn.

  2. Bộ lọc để tăng khối lượng giao dịch hoặc biến động, tránh tín hiệu sai khi tính toán.

  3. Tối ưu hóa chiến lược dừng lỗ, thiết lập dừng di động hoặc dừng đơn.

  4. Điều chỉnh các quy tắc quản lý vị trí, thêm các điều kiện tái nhập sân, tránh sự mất mát.

Tóm tắt

Chiến lược này tích hợp sử dụng chiến lược phá vỡ của Binance và chiến lược theo dõi xu hướng của chỉ số Hull để tạo ra tín hiệu giao dịch bằng cách tạo ra tín hiệu giao dịch qua nhau. Chiến lược này có khả năng thích ứng mạnh mẽ với cổ phiếu đường ngắn trung bình nếu không có thay đổi cơ bản. Tuy nhiên, khi triển khai thực tế, vẫn cần tối ưu hóa tham số cho các đặc điểm của từng cổ phiếu và điều chỉnh thích hợp các chiến lược quản lý vị thế, dừng lỗ, v.v.

Mã nguồn chiến lược
/*backtest
start: 2023-11-30 00:00:00
end: 2023-12-07 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


//@version=3
strategy(title="Strategy Hull Bollinger", shorttitle="Hull bollinger",overlay=true, calc_on_order_fills=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, overlay=false)

n=input(title="period",defval=3)


n2ma=2*wma(close,round(n/2))
nma=wma(close,n)
diff=n2ma-nma
sqn=round(sqrt(n))


n2ma1=2*wma(close[1],round(n/2))
nma1=wma(close[1],n)
diff1=n2ma1-nma1
sqn1=round(sqrt(n))


n1=wma(diff,sqn)
n2=wma(diff1,sqn)
c=n1>n2?green:red

i = input(1)
PP = close[i]

length1 = input(20, minval=1)
src = input(close, title="Source")
mult = input(2.0, minval=0.001, maxval=10, step=0.2)
basis = sma(src, length1)
dev = mult * stdev(src, length1)
upper = basis + dev
lower = basis - dev


TP = input(500) * 10
SL = input(500) * 10
TS = input(20) * 10
TO = input(10) * 10
CQ = 100

TPP = (TP > 0) ? TP : na
SLP = (SL > 0) ? SL : na
TSP = (TS > 0) ? TS : na
TOP = (TO > 0) ? TO : na

longCondition = crossover(n1,lower)
if (longCondition)
    strategy.entry("Long", strategy.long)


shortCondition = crossunder(n1,upper)
if (shortCondition)
    strategy.entry("Short", strategy.short)

strategy.exit("Close Short", "Short", qty_percent=CQ, profit=TPP, loss=SLP, trail_points=TSP, trail_offset=TOP)
strategy.exit("Close Long", "Long", qty_percent=CQ, profit=TPP, loss=SLP, trail_points=TSP, trail_offset=TOP)