
La estrategia es un sistema de comercio cuantitativo basado en la ruptura dinámica de las bandas de Bollinger. Combina varios tipos de promedios móviles, incluidos SMA, EMA, SMMA, WMA y VWMA, para construir bandas de Bollinger y tomar decisiones comerciales a través de la relación entre el precio y el ascenso y el descenso de la banda de Bollinger. La idea central de la estrategia es capturar la tendencia alcista cuando el precio se rompe en la banda de Bollinger y detener los pérdidas en el momento en que el precio se desvía.
El funcionamiento de la estrategia incluye principalmente los siguientes elementos clave:
Se trata de un sistema de negociación completo basado en el Brin Belt, con una buena adaptabilidad y escalabilidad. Se puede adaptar a diferentes entornos de mercado a través de la selección de varios tipos de medias móviles y la configuración de parámetros flexibles. El mecanismo de gestión de riesgos de la estrategia es relativamente completo, pero aún hay espacio para la optimización. Se recomienda centrarse en el fortalecimiento del mecanismo de confirmación de señales y la optimización de la gestión de riesgos para mejorar la estabilidad y la rentabilidad de la estrategia.
/*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")