该策略的核心思想是利用布林带震荡器指标来识别趋势,并在趋势变化时及时入场。当价格突破布林带上轨时做多,当价格跌破布林带下轨时做空,采用趋势跟踪方式来获利。
该策略主要基于布林带震荡器指标来判断趋势方向。布林带震荡器的计算公式为:
BBO = (收盘价 - N日移动平均价) / (2 * N日标准差) * 100
其中收盘价是当日的收盘价,N日移动平均价是收盘价的N日简单移动平均线,N日标准差是收盘价的N日标准差。
该策略首先计算65日的布林带震荡器,然后计算布林带震荡器的30日均线。当布林带震荡器上穿其均线时,认为趋势开始变化,做多;当布林带震荡器下穿其均线时,认为趋势开始变化,做空。
进入仓位后,策略采用移动止损、固定止盈和移动追踪止损来控制风险和获利。具体参数可根据回测结果进行优化。
使用布林带震荡器指标判断趋势,该指标对趋势变化比较敏感。
采用移动止损来控制 individual loss,可以在趋势再次转向时及时止损。
采用固定止盈来锁定 profit,可以在趋势方向正确时及时卖出获利。
采用移动追踪止损来跟踪优势价格,可以最大化单笔盈利。
策略较为简单和直观,容易理解和实现。
布林带震荡器存在假突破的可能,可能发出错误信号。
移动止损或追踪止损设置不当可能过早止损或止盈。
固定止盈设置不当可能过早止盈,错失更大利润。
布林带参数和移动均线参数需要优化,否则可能导致过拟合。
回撤可能较大,需要充足的资金支持。
对布林带参数和移动均线参数进行优化,找到最佳参数组合。
测试不同的移动止损方式,如ATR止损、百分比止损等。
对固定止盈和追踪止损参数进行测试和优化。
增加其他过滤条件,避免布林带震荡器发出错误信号。
优化仓位管理,不同市场适合不同的仓位规模。
测试在不同品种和时间周期使用该策略的效果。
该策略利用布林带震荡器指标判断趋势方向,在趋势开始变化时进入仓位,并采用移动止损、固定止盈和追踪止损来控制风险和获利。策略较为简单直观,容易实现,但需要对参数进行优化,同时要防范假突破和不适当的止损止盈设置。如果优化得当,该策略可以在趋势行情中获得较好的效果。
/*backtest start: 2022-10-03 00:00:00 end: 2023-10-09 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy(title="Strategy CCT Bollinger Band Oscillator", shorttitle="Hornkild", calc_on_order_fills=true, default_qty_type=strategy.percent_of_equity, default_qty_value=50, overlay=false) length=input(65) lengthMA=input(30) src=close cctbbo=100 * ( src + 2*stdev( src, length) - sma( src, length ) ) / ( 4 * stdev( src, length ) ) //ul=hline(100, color=gray, editable=true) //ll=hline(0, color=gray) //hline(50, color=gray) //fill(ul,ll, color=blue) //plot(cctbbo, color=blue, linewidth=2) //plot(ema(cctbbo, lengthMA), color=red) TP = input(0) * 10 SL = input(0) * 10 TS = input(1) * 10 TO = input(10) * 10 CQ = 100 TPP = (TP > 0) ? TP : na SLP = (SL > 0) ? SL : na TSP = (TS > 0) ? TS : na TOP = (TO > 0) ? TO : na longCondition = crossover(cctbbo, ema(cctbbo, lengthMA)) if (longCondition) strategy.entry("Long", strategy.long) shortCondition = crossunder(cctbbo, ema(cctbbo, lengthMA)) if (shortCondition) strategy.entry("Short", strategy.short) strategy.exit("Close Short", "Short", qty_percent=CQ, profit=TPP, loss=SLP, trail_points=TSP, trail_offset=TOP) strategy.exit("Close Long", "Long", qty_percent=CQ, profit=TPP, loss=SLP, trail_points=TSP, trail_offset=TOP)