Chiến lược theo dõi dải Bollinger

Tác giả:ChaoZhang, Ngày: 2024-02-27 16:11:44
Tags:

img

Tổng quan

Chiến lược này sử dụng chỉ số Bollinger Band kết hợp với stop loss theo dõi để thực hiện giao dịch theo dõi xu hướng. Nó đi ngắn khi giá vượt qua đường ray trên và đi dài khi giá vượt qua đường ray dưới. Bằng cách đặt giá stop loss và lấy lợi nhuận, lợi nhuận có thể bị khóa. Trong khi đó, chiến lược này cũng cung cấp một lựa chọn vào đảo ngược tùy chọn, có nghĩa là thực hiện các lệnh đảo ngược khi giá tái nhập vào dải.

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

Chiến lược đầu tiên tính toán đường ray giữa, đường ray trên và đường ray dưới của Bollinger Band.

Khi giá vượt qua đường ray trên, đi ngắn; khi giá vượt qua đường ray dưới, đi dài. Sau khi mở vị trí, đặt giá dừng lỗ và lấy lợi nhuận. Giá dừng lỗ là giá trị Stop đầu vào, và giá lấy lợi nhuận là giá trị Limit đầu vào.

Ngoài ra, chiến lược cũng cung cấp tùy chọn mở đảo ngược. Khi Reversal Entry được kiểm tra, các lệnh đảo ngược sẽ được thực hiện khi giá quay trở lại Bollinger Band, thuộc giao dịch MEAN REVERSION.

Cho dù đó là mở xu hướng hoặc mở đảo ngược, các cài đặt cho dừng lỗ và lấy lợi nhuận là như nhau. Có hai tùy chọn cho dừng lỗ và lấy lợi nhuận - dừng lỗ cố định hoặc dừng kéo theo sẽ được điều chỉnh theo sự thay đổi giá.

Phân tích lợi thế

Chiến lược kết hợp chỉ số Bollinger Band và theo dõi dừng lỗ để kiểm soát rủi ro một cách hiệu quả trong khi khóa lợi nhuận xu hướng.

Bollinger Band đường ray trên và dưới có thể xác định rõ ràng sự đột phá giá. Phương pháp giao dịch theo dải làm cho kết quả PnL rõ ràng. Theo dõi dừng lỗ điều chỉnh vị trí dừng lỗ để ngăn chặn lợi nhuận kiếm được bị rút lại.

Phân tích rủi ro

Rủi ro lớn nhất của chiến lược Bollinger Band là sự đảo ngược xu hướng. Sau khi đi ngắn khi giá phá vỡ đường ray trên, giá có thể xuất hiện đảo ngược hình chữ V, dẫn đến dừng lỗ nhanh chóng.

Khởi mở đảo ngược có thể bỏ lỡ cơ hội tiếp tục xu hướng.

Ngoài ra, cài đặt tham số không đúng cũng có thể làm tăng rủi ro. Len và Deviation cần phải được đặt cẩn thận, nếu không nguy cơ dừng lỗ sẽ tăng lên.

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

Chiến lược có thể được tối ưu hóa trong các khía cạnh sau:

  1. Thêm chức năng thích nghi tham số. Len và Deviation có thể được điều chỉnh năng động theo biến động thị trường để làm cho Bollinger Band gần với giá.

  2. Thêm các bộ lọc vị trí mở. Các điều kiện bổ sung có thể được thêm như tăng khối lượng giao dịch và tăng giao dịch giao dịch để tránh bị rút lại.

  3. Kết hợp với các chỉ số khác tín hiệu lọc. Đánh giá xu hướng xu hướng bằng cách sử dụng các chỉ số như MACD và KDJ để tránh các tín hiệu sai hoặc mất tín hiệu.

  4. Chỉ giao dịch trong một khoảng thời gian nhất định có thể giảm rủi ro qua đêm.

Tóm lại

Chiến lược theo dõi Bollinger Band xác định sự đột phá giá bằng cách sử dụng chỉ số Bollinger Band. Nó khóa lợi nhuận bằng cách thiết lập dừng lỗ và lấy lợi nhuận, và sử dụng theo dõi dừng lỗ để điều chỉnh rủi ro. Chiến lược đơn giản và thực tế. Dựa trên điều kiện thị trường, giao dịch xu hướng hoặc đảo ngược có thể được lựa chọn. Bằng cách tối ưu hóa các tham số và thêm các điều kiện lọc, rủi ro có thể được giảm thêm để có được lợi nhuận ổn định hơn.


/*backtest
start: 2024-02-19 00:00:00
end: 2024-02-26 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="BB Strategy (Basic)",overlay=true, initial_capital=25000, default_qty_value=1, commission_type=strategy.commission.cash_per_contract, commission_value=3.02)
len = input(20, minval=1, title="Length")
src = input(close, title="Source")
mult = input(2.0, "Deviation", minval=0.001, maxval=50)
//price_drop = input(.003, "When price drops (In Ticks) Enter Long", step=.001)
//price_climb = input(.003, "When price climbs (In Ticks) Enter Short", step=.001)
trail = input(true, "Trailing Stop(checked), Market stop(unchecked)")
stop = input(10000, "Stop (in ticks)", step=5)
limit = input(20000, "Limit Out", step=5)
//size = input(1, "Limit Position Size (pyramiding)", minval=1)
revt = input(true, "Reversal Entry(checked, Trend Entry(unchecked)")
timec = input(false, "Limit Time of Day (Buying Side)")

//calculations and plots
revti = if revt==false
    true
basis = wma(src, len)
dev = mult * stdev(src, len)
upper = basis + dev
lower = basis - dev
plot(basis, color=red)
p1 = plot(upper, color=teal)
p2 = plot(lower, color=teal)
fill(p1, p2)
u = crossover(high, upper) 
d = crossunder(low, lower)
//Time Session
sess = input("1600-0500", "Start/Stop trades (Est time)")
t = time(timeframe.period, sess)

//Orders
if(timec)
    strategy.entry("Enterlong", long=revt, when=d and t>1)
else
    strategy.entry("Enterlong", long=revt, when=d)
if(trail)
    strategy.exit("Exit","Enterlong", profit=limit, trail_points = 0, trail_offset = stop )
else
    strategy.exit("Exit","Enterlong", profit=limit, loss = stop )
    
if(timec)
    strategy.entry("Entershort", long=revti, when=u and t>1)
else
    strategy.entry("Entershort", long=revti, when=u)
if(trail)
    strategy.exit("Exit","Entershort", profit=limit, trail_points = 0, trail_offset = stop )
else
    strategy.exit("Exit","Entershort", profit=limit, loss = stop )
  



Thêm nữa