Chiến lược kết hợp Supertrend và Bollinger Bands

Tác giả:ChaoZhang, Ngày: 2024-03-29 15:18:22
Tags:

img

Tổng quan

Chiến lược này kết hợp chỉ số Supertrend và chỉ số Bollinger Bands để nắm bắt các cơ hội xu hướng trên thị trường. Chỉ số Supertrend được sử dụng để xác định hướng xu hướng thị trường hiện tại, trong khi chỉ số Bollinger Bands được sử dụng để đo biến động thị trường. Một tín hiệu dài được tạo ra khi giá đóng phá vỡ trên đường Supertrend và nằm dưới đường Bollinger Band thấp hơn, và một tín hiệu ngắn được tạo ra khi giá đóng phá vỡ dưới đường Supertrend và nằm trên đường Bollinger Band trên.

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

  1. Tính toán phạm vi trung bình thực sự (ATR) và chỉ số Supertrend để xác định hướng xu hướng thị trường hiện tại.
  2. Tính toán Bollinger Bands trên và dưới để đo biến động thị trường.
  3. Tạo tín hiệu dài khi giá đóng phá vỡ trên đường Supertrend và nằm dưới Bollinger Band dưới; tạo tín hiệu ngắn khi giá đóng phá vỡ dưới đường Supertrend và nằm trên Bollinger Band trên.
  4. Khi giữ một vị trí dài, nếu giá đóng phá dưới đường Supertrend, đóng vị trí; khi giữ một vị trí ngắn, nếu giá đóng phá trên đường Supertrend, đóng vị trí.

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

  1. Kết hợp thông tin từ cả hai chiều xu hướng và biến động có thể nắm bắt đầy đủ hơn các cơ hội thị trường.
  2. Có thể tham gia thị trường kịp thời khi xu hướng rõ ràng, giúp nắm bắt lợi nhuận của thị trường xu hướng.
  3. Trong một thị trường hỗn loạn, sự kết hợp của Bollinger Bands và Supertrend có thể lọc hiệu quả các tín hiệu đột phá sai và giảm nguy cơ thua lỗ.
  4. Khái niệm mã là rõ ràng, với một số tham số, và dễ hiểu và thực hiện.

Rủi ro chiến lược

  1. Trong một thị trường xu hướng đơn phương, do các tín hiệu đột phá thường xuyên, nó có thể dẫn đến tần suất giao dịch quá mức và tăng chi phí giao dịch.
  2. Việc thu thập các điểm đột phá dựa trên chỉ số Supertrend, nhạy cảm với các thông số, và xu hướng chỉ số thay đổi rất nhiều theo các thông số khác nhau, có thể ảnh hưởng đến hiệu quả của chiến lược.
  3. Chiều rộng của Bollinger Bands sẽ thay đổi theo sự thay đổi về biến động thị trường và có thể mở rộng stop-loss trong môi trường biến động cao.

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

  1. Xem xét việc giới thiệu các điều kiện lọc hiệu quả hơn, chẳng hạn như khối lượng giao dịch, tâm lý thị trường, v.v., để tiếp tục cải thiện độ tin cậy của tín hiệu.
  2. Đối với các thông số của chỉ số Supertrend, các thử nghiệm tối ưu hóa có thể được thực hiện để chọn các thông số tối ưu để cải thiện tính ổn định của chiến lược.
  3. Về việc thực hiện giao dịch, các biện pháp quản lý vị trí và kiểm soát rủi ro chi tiết hơn có thể được đưa ra, chẳng hạn như thiết lập trailing stops, điều chỉnh động các vị trí, v.v., để giảm rủi ro của một giao dịch duy nhất.

Tóm lại

Chiến lược kết hợp Supertrend Bollinger Band là một chiến lược theo xu hướng có thể nắm bắt hiệu quả các cơ hội xu hướng bằng cách kết hợp hai yếu tố thị trường: xu hướng và biến động. Tuy nhiên, chiến lược này cũng có một số hạn chế nhất định, chẳng hạn như nhạy cảm với các thông số và tăng rủi ro trong môi trường biến động cao. Do đó, trong ứng dụng thực tế, cần phải tối ưu hóa và cải thiện chiến lược phù hợp theo đặc điểm thị trường và sở thích rủi ro của riêng bạn.


/*backtest
start: 2024-03-21 00:00:00
end: 2024-03-28 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © sabhiv27

//@version=4
strategy("Supertrend & Bollinger Bands Strategy", shorttitle="ST_BB_Strategy", overlay=true)

// Input options
factor = input(3, title="Supertrend Factor")
length = input(10, title="ATR Length")
bollinger_length = input(20, title="Bollinger Bands Length")
bollinger_deviation = input(2, title="Bollinger Bands Deviation")

// Calculate True Range for Supertrend
truerange = rma(tr, length)

// Calculate Supertrend
var float up_trend = na
var float dn_trend = na
var float trend = na
up_signal = hl2 - (factor * truerange)
dn_signal = hl2 + (factor * truerange)
up_trend := close[1] > up_trend[1] ? max(up_signal, up_trend[1]) : up_signal
dn_trend := close[1] < dn_trend[1] ? min(dn_signal, dn_trend[1]) : dn_signal
trend := close > dn_trend ? 1 : close < up_trend ? -1 : nz(trend[1], 1)

// Calculate Bollinger Bands
basis = sma(close, bollinger_length)
dev = stdev(close, bollinger_length)
upper_band = basis + bollinger_deviation * dev
lower_band = basis - bollinger_deviation * dev

// Entry conditions
long_condition = crossover(close, up_trend) and close < lower_band
short_condition = crossunder(close, dn_trend) and close > upper_band

// Exit conditions
exit_long_condition = crossover(close, dn_trend)
exit_short_condition = crossunder(close, up_trend)

// Plot Supertrend
plot(trend == 1 ? up_trend : dn_trend, color=trend == 1 ? color.green : color.red, linewidth=2)

// Plot Bollinger Bands
plot(upper_band, color=color.blue)
plot(lower_band, color=color.blue)

// Generate buy and sell signals
strategy.entry("Long", strategy.long, when=long_condition)
strategy.entry("Short", strategy.short, when=short_condition)
strategy.close("Long", when=exit_long_condition)
strategy.close("Short", when=exit_short_condition)

Thêm nữa