该策略是一个基于布林通道的自适应交易系统,通过动态监控价格与布林带的关系来进行仓位管理。策略采用20日均线作为中轨,2倍标准差作为通道宽度,结合突破确认和时间周期判断来触发交易信号,实现资金的优化配置。
策略运用布林通道的统计学原理,将价格波动控制在正态分布区间内。具体包括: 1. 使用20日简单移动平均线(SMA)构建布林带中轨 2. 通过2倍标准差设置上下轨,形成价格波动区间 3. 当价格突破上轨5%或在上轨上方停留1小时时,买入50%仓位 4. 首次回归中轨时减仓10%,跌破下轨5%时减仓50% 5. 通过分批建仓和减仓来控制风险,优化收益
该策略通过布林通道和时间周期分析建立了一个完整的交易系统,在趋势跟踪和风险控制之间取得平衡。虽然存在一定的优化空间,但整体设计理念符合量化交易的核心原则,具有实际应用价值。建议投资者在实盘中根据自身风险承受能力和资金规模进行适当调整。
/*backtest
start: 2024-11-11 00:00:00
end: 2024-12-10 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Bollinger Bands Strategy", overlay=true)
// 設定布林通道
length = 20
source = close
mult = 2.0
basis = ta.sma(source, length)
dev = mult * ta.stdev(source, length)
upper = basis + dev
lower = basis - dev
// 畫出布林通道
plot(upper, color=color.red, linewidth=1)
plot(basis, color=color.blue, linewidth=1)
plot(lower, color=color.green, linewidth=1)
// 設定買入條件:突破布林通道高點5%或持續1小時在高點上方
breakout_level = upper * 1.01
hour_breakout = ta.change(time("60")) == 1 and close > upper
buy_condition = (close > breakout_level or hour_breakout)
if (buy_condition)
strategy.entry("Buy", strategy.long, qty=0.5)
// 設定賣出條件:第一次回測中線、跌破低點5%或回升中線
sell_10_condition = ta.crossover(close, basis) and strategy.opentrades > 0
sell_50_condition = close < lower * 0.95
// 賣出10%現貨
if (sell_10_condition)
strategy.close("Buy", qty=0.1)
// 賣出50%現貨
if (sell_50_condition)
strategy.close("Buy", qty=0.5)
// 監控買入與賣出信號
plotshape(series=buy_condition, location=location.belowbar, color=color.green, style=shape.labelup, title="Buy Signal")
plotshape(series=sell_10_condition, location=location.abovebar, color=color.red, style=shape.labeldown, title="Sell 10% Signal")
plotshape(series=sell_50_condition, location=location.abovebar, color=color.blue, style=shape.labeldown, title="Sell 50% Signal")