Chiến lược theo xu hướng dựa trên bộ dao động Bollinger Bands


Ngày tạo: 2023-10-10 10:54:05 sửa đổi lần cuối: 2023-10-10 10:54:05
sao chép: 0 Số nhấp chuột: 739
1
tập trung vào
1617
Người theo dõi

Tổng quan

Ý tưởng cốt lõi của chiến lược này là sử dụng chỉ số buoys để xác định xu hướng và tham gia kịp thời khi xu hướng thay đổi. Làm nhiều hơn khi giá vượt qua buoys trên đường ray và làm trống khi giá giảm xuống buoys, sử dụng phương pháp theo dõi xu hướng để kiếm lợi nhuận.

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

Chiến lược này chủ yếu dựa trên các chỉ số của Bollinger Bands để đánh giá xu hướng. Công thức tính toán của Bollinger Bands là:

BBO = (收盘价 - N日移动平均价) / (2 * N日标准差) * 100

Trong đó, giá đóng cửa là giá đóng cửa trong ngày, giá trung bình di chuyển ngày N là trung bình di chuyển đơn giản ngày N của giá đóng cửa, chênh lệch chuẩn ngày N là chênh lệch chuẩn ngày N của giá đóng cửa.

Chiến lược này đầu tiên tính toán 65 ngày của buoys và sau đó tính toán đường trung bình 30 ngày của buoys. Khi đi qua đường trung bình trên buoys, cho rằng xu hướng bắt đầu thay đổi, làm nhiều hơn; khi đi qua đường trung bình dưới buoys, cho rằng xu hướng bắt đầu thay đổi, làm trống.

Sau khi vào vị trí, chiến lược sử dụng dừng di động, dừng cố định và dừng theo dõi di động để kiểm soát rủi ro và lợi nhuận. Các tham số cụ thể có thể được tối ưu hóa theo kết quả kiểm tra lại.

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

  1. Sử dụng chỉ số Brin Band oscillator để đánh giá xu hướng, chỉ số này nhạy cảm hơn với sự thay đổi xu hướng.

  2. Sử dụng dừng di chuyển để kiểm soát tổn thất cá nhân, có thể dừng lại kịp thời khi xu hướng quay trở lại.

  3. Sử dụng các điểm dừng cố định để khóa lợi nhuận, bạn có thể bán lợi nhuận khi xu hướng đúng hướng.

  4. Sử dụng lệnh dừng theo dõi di động để theo dõi giá ưu đãi, có thể tối đa hóa lợi nhuận đơn lẻ.

  5. Chiến lược này đơn giản và trực quan, dễ hiểu và dễ thực hiện.

Rủi ro chiến lược

  1. Brin có thể bị phá vỡ và phát ra tín hiệu sai.

  2. Thiết lập dừng di động hoặc theo dõi dừng không đúng có thể dừng hoặc dừng quá sớm.

  3. Cài đặt trạm dừng cố định không đúng cách có thể dừng trạm dừng quá sớm, bỏ lỡ nhiều tiền hơn.

  4. Các tham số Brin và Moving Average cần được tối ưu hóa, nếu không có thể dẫn đến quá phù hợp.

  5. Việc rút lui có thể lớn hơn và cần được hỗ trợ tài chính.

Tối ưu hóa chiến lược

  1. Tối ưu hóa tham số Brin và tham số đường trung bình di chuyển để tìm ra sự kết hợp tham số tốt nhất.

  2. Kiểm tra các phương thức dừng di động khác nhau, chẳng hạn như dừng ATR, dừng phần trăm, v.v.

  3. Kiểm tra và tối ưu hóa các tham số dừng cố định và dừng theo dõi.

  4. Thêm các điều kiện lọc khác để tránh tín hiệu sai của máy rung dây chuyền Brin.

  5. Tối ưu hóa quản lý vị trí, phù hợp với quy mô vị trí khác nhau ở các thị trường khác nhau.

  6. Thử nghiệm hiệu quả của chiến lược này trong các giống và thời gian khác nhau.

Tóm tắt

Chiến lược này sử dụng chỉ số buzzer của Brin để xác định hướng xu hướng, vào vị trí khi xu hướng bắt đầu thay đổi và sử dụng dừng di động, dừng cố định và theo dõi dừng để kiểm soát rủi ro và lợi nhuận. Chiến lược này đơn giản và dễ thực hiện, nhưng cần tối ưu hóa các tham số, đồng thời ngăn chặn phá vỡ giả và cài đặt dừng không phù hợp. Nếu tối ưu hóa đúng, chiến lược này có thể có hiệu quả tốt hơn trong tình huống xu hướng.

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

//@version=2
strategy(title="Strategy CCT Bollinger Band Oscillator", shorttitle="Hornkild", calc_on_order_fills=true, default_qty_type=strategy.percent_of_equity, default_qty_value=50, overlay=false)

length=input(65)
lengthMA=input(30)
src=close
cctbbo=100 * ( src + 2*stdev( src, length) - sma( src, length ) ) / ( 4 * stdev( src, length ) )

//ul=hline(100, color=gray, editable=true)
//ll=hline(0, color=gray)
//hline(50, color=gray)
//fill(ul,ll, color=blue)
//plot(cctbbo, color=blue, linewidth=2)
//plot(ema(cctbbo, lengthMA), color=red)

TP = input(0) * 10
SL = input(0) * 10
TS = input(1) * 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(cctbbo, ema(cctbbo, lengthMA))
if (longCondition)
    strategy.entry("Long", strategy.long)


shortCondition = crossunder(cctbbo, ema(cctbbo, lengthMA))
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)