Tài nguyên đang được tải lên... tải...

Chiến lược Bollinger Bands Standard Deviation Breakout

Tác giả:ChaoZhang, Ngày: 2024-04-30 16:51:34
Tags:SMA

img

Tổng quan

Chiến lược này dựa trên chỉ số Bollinger Bands. Nó đi vào một vị trí dài khi giá đóng phá vỡ trên dải trên và đi vào một vị trí ngắn khi giá đóng phá vỡ dưới dải dưới. Điều kiện thoát cho vị trí dài là khi giá giảm xuống dưới dải giữa, và điều kiện thoát cho vị trí ngắn là khi giá phá vỡ trên dải giữa. Chiến lược sử dụng vị trí của giá tương đối với các dải trên và dưới của Bollinger Bands để xác định xu hướng và thời gian nhập và xuất.

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

  1. Tính toán các dải trên, giữa và dưới của Bollinger Bands. Dải giữa là đường trung bình di chuyển đơn giản của giá đóng cửa, và các dải trên và dưới là dải giữa cộng hoặc trừ một số lần của độ lệch chuẩn.
  2. Khi giá đóng phá vỡ trên dải trên, nhập vào một vị trí dài.
  3. Khi giá đóng phá vỡ dưới dải dưới, nhập vào một vị trí ngắn.
  4. Khi nắm giữ một vị trí dài, nếu giá đóng giảm xuống dưới dải giữa, đóng vị trí dài.
  5. Khi giữ một vị trí ngắn, nếu giá đóng phá vỡ trên dải giữa, đóng vị trí ngắn.

Ưu điểm chiến lược

  1. Bollinger Bands có thể phản ánh hiệu quả phạm vi biến động giá và hướng xu hướng.
  2. Khoảng cách giữa dải trên và dưới và dải giữa là một độ lệch chuẩn nhất định, có thể thích nghi với những thay đổi trong biến động giá.
  3. Điều kiện thoát sử dụng dải giữa thay vì phá vỡ ngược các dải trên hoặc dưới, cho phép dừng lỗ sớm và lấy lợi nhuận.
  4. Các thông số có thể điều chỉnh, cho phép tối ưu hóa thời gian Bollinger Band, nhân độ lệch chuẩn và các thông số khác để thích nghi với các biểu tượng và khung thời gian khác nhau.

Rủi ro chiến lược

  1. Trong một thị trường dao động, giá có thể dao động nhiều lần gần các băng tần trên và dưới, có khả năng gây ra các bước vào và ra thường xuyên, dẫn đến chi phí giao dịch tăng lên.
  2. Khi giá tăng tốc trong một chuyển động xu hướng, điểm vào tương đối chậm lại, và khả năng theo xu hướng yếu hơn.
  3. Vào đầu của một sự đảo ngược xu hướng, một sự hồi phục chạm vào dải giữa sẽ kích hoạt một lối ra, bỏ lỡ các biến động giá tiếp theo nếu xu hướng tiếp tục phát triển.

Hướng dẫn tối ưu hóa chiến lược

  1. ATR hoặc các chỉ số dừng lỗ khác có thể được kết hợp để kiểm soát rút tiền.
  2. Định kích thước vị trí động cho các vị trí dài và ngắn có thể được sử dụng để phân bổ các vị trí linh hoạt dựa trên sức mạnh xu hướng.
  3. Nhiều điều kiện lọc hơn, chẳng hạn như chỉ số khối lượng và giá, có thể được thêm vào các điều kiện nhập để cải thiện độ tin cậy của tín hiệu nhập cảnh.

Tóm lại

Chiến lược này là một chiến lược theo xu hướng cổ điển nắm bắt thị trường xu hướng bằng cách sử dụng Bollinger Bands. Lý thuyết chiến lược rõ ràng, và lợi thế là hiển nhiên, nhưng nó cũng có một số rủi ro. Bằng cách tối ưu hóa dừng lỗ, lấy lợi nhuận, quản lý vị trí và các bộ lọc nhập cảnh, hiệu suất chiến lược có thể được cải thiện và khả năng thích nghi có thể được tăng cường. Tuy nhiên, mọi chiến lược đều có những hạn chế của nó và cần phải được áp dụng linh hoạt kết hợp với điều kiện thị trường thực tế.


/*backtest
start: 2024-03-01 00:00:00
end: 2024-03-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
// Bollinger Bands: Madrid : 14/SEP/2014 11:07 : 2.0
// This displays the traditional Bollinger Bands, the difference is 
// that the 1st and 2nd StdDev are outlined with two colors and two
// different levels, one for each Standard Deviation

strategy(shorttitle='MBB', title='Bollinger Bands', overlay=true)
src = input(close)
length = input.int(20, minval=1, title = "Length")
mult = input.float(2.0, minval=0.001, maxval=50, title = "Multiplier")

basis = ta.sma(src, length)
dev = ta.stdev(src, length)
dev2 = mult * dev

upper1 = basis + dev
lower1 = basis - dev
upper2 = basis + dev2
lower2 = basis - dev2

// Strategy
long_condition = ta.crossover(close, upper1)
short_condition = ta.crossunder(close, lower1)

if (long_condition)
    strategy.entry("Long", strategy.long)
if (short_condition)
    strategy.entry("Short", strategy.short)

// Exit conditions
exit_long_condition = ta.crossunder(close, basis)
exit_short_condition = ta.crossover(close, basis)

if (exit_long_condition)
    strategy.close("Long")
if (exit_short_condition)
    strategy.close("Short")


colorBasis = src >= basis ? color.blue : color.orange

pBasis = plot(basis, linewidth=2, color=colorBasis)
pUpper1 = plot(upper1, color=color.new(color.blue, 0), style=plot.style_circles)
pUpper2 = plot(upper2, color=color.new(color.blue, 0))
pLower1 = plot(lower1, color=color.new(color.orange, 0), style=plot.style_circles)
pLower2 = plot(lower2, color=color.new(color.orange, 0))

fill(pBasis, pUpper2, color=color.new(color.blue, 80))
fill(pUpper1, pUpper2, color=color.new(color.blue, 80))
fill(pBasis, pLower2, color=color.new(color.orange, 80))
fill(pLower1, pLower2, color=color.new(color.orange, 80))

Có liên quan

Thêm nữa