该策略是一个基于布林带(Bollinger Bands)动态突破的量化交易系统。它结合了多种移动平均线类型(包括SMA、EMA、SMMA、WMA、VWMA)来构建布林带,通过价格与布林带上轨和下轨的关系来进行交易决策。策略的核心思想是捕捉价格突破布林带上轨时的上涨趋势,并在价格跌破下轨时及时止损。
策略的运作原理主要包含以下几个关键要素: 1. 通过可选择的移动平均线类型(SMA、EMA等)计算布林带的中轨。 2. 利用标准差乘数(默认为2.0)计算上下轨带。 3. 当收盘价突破上轨时,开启多头仓位。 4. 当收盘价跌破下轨时,平仓结束交易。 策略还包含了日期范围过滤和滑点控制等风险管理机制,以提高交易的稳定性和可靠性。
这是一个基于布林带的完整交易系统,具有较好的适应性和可扩展性。通过多种移动平均线类型的选择和灵活的参数设置,能够适应不同的市场环境。策略的风险管理机制相对完善,但仍有优化空间。建议重点关注信号确认机制的增强和风险管理的优化,以提高策略的稳定性和盈利能力。
/*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")