本方案由 EasyQuant AI量化助手 提供。
问题背景
布林带由中轨均线、上轨和下轨组成,常用于判断价格波动区间与潜在突破信号。在 TB 开拓者中,可以使用均线和标准差构建布林带,并根据价格突破上下轨生成交易信号。
策略逻辑
-
中轨为 20 周期收盘价均线。
-
上轨为中轨加两倍标准差。
-
下轨为中轨减两倍标准差。
-
收盘价向上突破上轨时开多。
-
收盘价跌破中轨或下轨时平仓。
-
加入固定比例止损控制单笔风险。
TB简语言示例
Params
Numeric Length(20);
Numeric StdMultiple(2);
Numeric Lots(1);
Numeric StopLossPct(0.03);
Vars
NumericSeries MiddleBand(0);
NumericSeries UpperBand(0);
NumericSeries LowerBand(0);
NumericSeries PriceStd(0);
Numeric EntryPriceValue(0);
BoolSeries BuySignal(false);
BoolSeries ExitSignal(false);
Begin
// 计算布林带中轨与标准差
MiddleBand = Average(Close, Length);
PriceStd = StandardDev(Close, Length, 1);
// 计算上轨和下轨
UpperBand = MiddleBand + StdMultiple * PriceStd;
LowerBand = MiddleBand - StdMultiple * PriceStd;
// 价格向上突破上轨
BuySignal = CrossOver(Close, UpperBand);
// 回落跌破中轨,或向下跌破下轨
ExitSignal = CrossUnder(Close, MiddleBand)
Or CrossUnder(Close, LowerBand);
// 空仓时开多
If MarketPosition = 0 And BuySignal Then
Begin
Buy(Lots, Open);
EntryPriceValue = Open;
Commentary("突破布林带上轨,执行开多");
End;
// 持仓时处理退出
If MarketPosition > 0 Then
Begin
// 固定比例止损
If Close <= EntryPriceValue * (1 - StopLossPct) Then
Begin
Sell(0, Open);
Commentary("触发布林带策略止损");
End
// 布林带离场信号
Else If ExitSignal Then
Begin
Sell(0, Open);
Commentary("跌破布林带中轨或下轨,执行平仓");
End;
End;
End
注意事项
-
Length=20、StdMultiple=2是常见参数,不适合直接用于所有品种。 -
突破上轨并不必然代表趋势持续,震荡行情中可能出现假突破。
-
建议结合成交量、长期均线或趋势指标进行信号过滤。
-
StandardDev()在不同 TB 版本的参数写法可能不同,发布或实盘前请以本机帮助文档为准。 -
回测必须考虑手续费、滑点和实际开平仓规则。
总结
布林带策略适合学习 TB 开拓者的均线、标准差、突破判断和止损逻辑。通过加入趋势过滤与风险控制,可进一步形成更完整的波动突破策略。

187

被折叠的 条评论
为什么被折叠?



