
Chiến lược này là một hệ thống giao dịch định lượng dựa trên sự phá vỡ động của các dải Bollinger Bands. Nó kết hợp nhiều loại trung bình di chuyển bao gồm SMA, EMA, SMMA, WMA, VWMA để xây dựng các dải Bollinger và đưa ra quyết định giao dịch thông qua mối quan hệ của giá với đường đua và đường mòn của dải Bollinger. Ý tưởng cốt lõi của chiến lược là nắm bắt xu hướng tăng khi giá phá vỡ dải Bollinger và dừng lại khi giá rơi xuống đường mòn.
Các nguyên tắc hoạt động của chiến lược bao gồm các yếu tố chính sau:
Đây là một hệ thống giao dịch hoàn chỉnh dựa trên Brin Belt, có khả năng thích ứng và mở rộng tốt. Có thể thích ứng với các môi trường thị trường khác nhau thông qua nhiều loại moving average và cài đặt tham số linh hoạt. Cơ chế quản lý rủi ro của chiến lược tương đối hoàn thiện, nhưng vẫn có chỗ để tối ưu hóa.
/*backtest
start: 2024-06-30 00:00:00
end: 2025-02-18 08:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Binance","currency":"DOGE_USDT"}]
*/
//@version=6
strategy(shorttitle="BB Demo", title="Demo GPT - Bollinger Bands", overlay=true, commission_type=strategy.commission.percent, commission_value=0.1, slippage=0, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// Inputs
length = input.int(20, minval=1, title="Length")
maType = input.string("SMA", "Basis MA Type", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"])
src = input.source(close, title="Source")
mult = input.float(2.0, minval=0.001, maxval=50, title="StdDev")
offset = input.int(0, "Offset", minval=-500, maxval=500)
// MA Calculation Function
ma(source, length, _type) =>
switch _type
"SMA" => ta.sma(source, length)
"EMA" => ta.ema(source, length)
"SMMA (RMA)" => ta.rma(source, length)
"WMA" => ta.wma(source, length)
"VWMA" => ta.vwma(source, length)
// Indicator Calculations
basis = ma(src, length, maType)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev
// Visual Plots
plot(basis, "Basis", color=color.new(#2962FF, 0), offset=offset)
p1 = plot(upper, "Upper", color=color.new(#F23645, 0), offset=offset)
p2 = plot(lower, "Lower", color=color.new(#089981, 0), offset=offset)
fill(p1, p2, color=color.rgb(33, 150, 243, 95), title="Background")
// Strategy Logic
longCondition = close > upper
exitCondition = close < lower
if longCondition
strategy.entry("Long", strategy.long)
if exitCondition
strategy.close("Long")