Xu hướng theo chiến lược dựa trên Bollinger Band Oscillator

Tác giả:ChaoZhang, Ngày: 2023-10-10 10:54:05
Tags:

Tổng quan

Ý tưởng cốt lõi của chiến lược này là xác định xu hướng bằng cách sử dụng Bollinger Band Oscillator và nhập các vị trí khi xu hướng thay đổi. Nó đi dài khi giá phá vỡ trên dải trên và đi ngắn khi giá phá vỡ dưới dải dưới, với xu hướng theo cách tiếp cận lợi nhuận.

Chiến lược logic

Chiến lược chủ yếu sử dụng Bollinger Band Oscillator để xác định hướng xu hướng.

BBO = (Close - N-day Moving Average) / (2 * N-day Standard Deviation) * 100

Trong đó Close là giá đóng cửa, N-day Moving Average là N-day đơn giản trung bình di chuyển của đóng cửa, và N-day Standard Deviation là N-day tiêu chuẩn lệch của đóng cửa.

Chiến lược đầu tiên tính toán BBO 65 ngày, sau đó là trung bình động 30 ngày của BBO. Khi BBO vượt trên MA của nó, nó báo hiệu xu hướng tăng, đi dài. Khi BBO vượt dưới MA của nó, nó báo hiệu xu hướng giảm, đi ngắn.

Sau khi nhập vào các vị trí, chiến lược sử dụng stop loss di chuyển, fixed take profit và trailing stop loss để kiểm soát rủi ro và khóa lợi nhuận. Các thông số có thể được tối ưu hóa dựa trên kết quả backtest.

Ưu điểm

  1. BBO rất nhạy cảm với những thay đổi xu hướng.

  2. Di chuyển dừng lỗ kiểm soát lỗ cá nhân khi xu hướng đảo ngược.

  3. Lập lấy lợi nhuận khóa trong lợi nhuận khi xu hướng là chính xác.

  4. Trailing stop loss tối đa hóa lợi nhuận cho một giao dịch duy nhất.

  5. Chiến lược rất đơn giản và trực quan.

Rủi ro

  1. BBO có thể đưa ra tín hiệu sai.

  2. Stop loss/take profit không đúng có thể thoát quá sớm.

  3. Lợi nhuận cố định có thể rời quá sớm, bỏ lỡ lợi nhuận tiếp theo.

  4. Các thông số cần tối ưu hóa để tránh quá phù hợp.

  5. Khả năng rút vốn lớn, vốn cần thiết.

Tối ưu hóa

  1. Tối ưu hóa các thông số BBO và MA.

  2. Kiểm tra các phương pháp dừng lỗ khác nhau như ATR, phần trăm.

  3. Tối ưu hóa lợi nhuận cố định và dừng lỗ.

  4. Thêm bộ lọc để tránh tín hiệu sai.

  5. Tối ưu hóa kích thước vị trí cho các thị trường khác nhau.

  6. Kiểm tra hiệu quả chiến lược trên các công cụ và khung thời gian.

Kết luận

Chiến lược xác định những thay đổi xu hướng bằng cách sử dụng BBO và nhập vào các vị trí phù hợp. Nó kiểm soát rủi ro và khóa lợi nhuận với các loại lối ra khác nhau. Chiến lược đơn giản và trực quan nhưng đòi hỏi tối ưu hóa tham số. Nó có thể hoạt động tốt trong các thị trường xu hướng nếu được tối ưu hóa đúng cách, nhưng cần phải cảnh giác với các tín hiệu sai và lối ra không phù hợp.


/*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)

Thêm nữa