本策略通过计算布林带的上轨、中轨、下轨,并结合K线的收盘价进行判断,实现布林带突破交易策略。当价格突破上轨时,做多;当价格突破下轨时,做空。同时设置止损和止盈价格。
计算布林带的中轨SMA,长度为60周期,代表价格趋势的中轨。
计算布林带上下轨,上轨为中轨+2倍标准差,下轨为中轨-2倍标准差,带宽通过多值控制。
当收盘价大于上轨时,做多入场;当收盘价小于下轨时,做空入场。
设置止损止盈机制。止损比例为1.5%,止盈比例为6%。
当价格重新进入布林带时或触发止损止盈退出位置时,平仓离场。
使用布林带指标判断价格突破,具有较强的趋势判断能力。
策略操作简单,容易理解实现。
设置止损止盈机制控制风险。
布林带突破并不能准确判断价格趋势反转点,可能出现虚假突破的风险。
止损止盈设置不合理可能带来更大的风险。
交易频率可能较高,需要考虑交易成本的影响。
结合其他指标过滤虚假突破信号。例如KDJ指标判断趋势,MACD判断背离。
动态调整布林带参数,根据市场波动率计算合理带宽。
优化止损止盈策略,trailing stop或分批止损止盈。
考虑交易成本的影响,调整持仓时间。
本策略通过布林带指标判断价格突破实现趋势following,具有一定的效果。但可能出现虚假突破 bringing更大风险。可以考虑与其他指标组合,并不断测试优化参数,以控制风险和提高盈利能力。
/*backtest start: 2024-01-04 00:00:00 end: 2024-02-03 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Fuera Bolinga", overlay=true) length = input.int(60, minval=1) mult = input.float(2.0, minval=0.001, maxval=50) take_profit_percentage = 6.0 basis = ta.sma(close, length) dev = mult * ta.stdev(close, length) upper = basis + dev lower = basis - dev stop_loss_percentage = 1.5 // Determinar si la vela cierra por fuera de las bandas above_upper_band = close > upper under_lower_band = close < lower // Pintar las velas que cierran por fuera de las bandas barcolor(above_upper_band ? color.new(#2cee32, 0) : na) barcolor(under_lower_band ? color.new(#e02c2c, 0) : na) // Entrada larga con stop loss y take profit if (ta.crossover(close, upper)) strategy.entry("BBandLE", strategy.long, oca_name="BollingerBands", comment="BBandLE") else strategy.cancel(id="BBandLE") // Entrada corta con stop loss y take profit if (ta.crossunder(close, lower)) strategy.entry("BBandSE", strategy.short, oca_name="BollingerBands",comment="BBandSE") else strategy.cancel(id="BBandSE") //// Salida de operación larga if ((ta.crossunder(close, upper) or ta.crossunder(close, lower)) and (strategy.opentrades != 0)) strategy.close("BBandLE") // Salida de operación corta if ((ta.crossover(close, lower) or ta.crossover(close, upper)) and (strategy.opentrades != 0)) strategy.close("BBandSE") // Plot de las bandas de Bollinger plot(upper, color=color.new(#2cee32, 0), title="Upper Bollinger Band") plot(lower, color=color.new(#e02c2c, 0), title="Lower Bollinger Band")