Esta estrategia hace pleno uso del juicio de tendencia de los promedios móviles y el juicio de sobrecompra/superventa de las bandas de Bollinger. Con la suavización del promedio móvil T3, puede identificar la inversión de tendencia a tiempo y entrar en el mercado. En la zona de oscilación, utiliza las bandas de Bollinger para identificar áreas de sobrecompra/superventa para la negociación contra tendencia. Por lo tanto, realiza operaciones a muy corto plazo.
La estrategia utiliza principalmente tres grupos de promedios móviles para identificar la tendencia y generar señales comerciales. El primero es el promedio móvil T3, que puede filtrar las fluctuaciones de precios a través de una suavización exponencial y juzgar la dirección de la tendencia. El segundo es el promedio móvil a medio plazo, aquí utiliza un SMA de 20 períodos para determinar la tendencia a medio plazo. El último son los promedios móviles rápidos y lentos, los promedios móviles T3 de 50 períodos y 200 períodos respectivamente. Cuando la línea rápida es mayor que la línea lenta, indica una tendencia ascendente, de lo contrario, una tendencia descendente.
Las señales comerciales se generan cuando la SMA a medio plazo cruza la banda T3 a mediano plazo, combinando con una tendencia al alza, ir largo. Cuando la SMA a mediano plazo cruza por debajo de la banda T3 a mediano plazo, combinando con una tendencia a la baja, ir corto. Además, las bandas de Bollinger se pueden utilizar para tomar ganancias y detener pérdidas. Si el precio rompe la banda superior, considere tomar ganancias. Si el precio rompe la banda inferior, considere detener pérdidas.
Específicamente, la condición larga es que el SMA medio cruza la T3 media hacia arriba, y el MA rápido es mayor que el MA lento. Si el precio rompe la banda superior de Bollinger o el SMA medio cruza por debajo de T3, considere tomar ganancias. La condición corta es que el SMA medio cruza por debajo de la T3 media hacia abajo, y el MA rápido es menor que el MA lento. Si el precio rompe la banda inferior de Bollinger o el SMA medio cruza por encima de T3, considere el stop loss.
Mejoras:
En resumen, esta estrategia utiliza promedios móviles sistemáticamente para determinar la tendencia e identifica los niveles de sobrecompra / sobreventa con bandas de Bollinger. Puede entrar en el mercado a tiempo en las reversiones de tendencia y también controla los riesgos de manera efectiva. Pero la puesta a punto y optimización de parámetros son importantes para que la estrategia funcione realmente bien.
/*backtest start: 2023-10-25 00:00:00 end: 2023-11-01 00:00:00 period: 10m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(shorttitle="BB T3 Strategy", title="BB T3 Strategy", overlay=true) //T3 b = 0.7 c1 = -b*b*b c2 = 3*b*b+3*b*b*b c3 = -6*b*b-3*b-3*b*b*b c4 = 1+3*b+b*b*b+3*b*b t3(len) => c1 * ema(ema(ema(ema(ema(ema(close, len), len), len), len), len), len) + c2 * ema(ema(ema(ema(ema(close, len), len), len), len), len) + c3 * ema(ema(ema(ema(close, len), len), len), len) + c4 * ema(ema(ema(close, len), len), len) //T3 end length = input(20, minval=1) mult = input(2.5, minval=0.001, maxval=50, title="StdDev") basis = t3(length) basisDev = t3(length/10) dev = mult * stdev(basisDev,length) upper = basis + dev lower = basis - dev offset = input(0, "Offset", type = input.integer, minval = -500, maxval = 500) plot(basis, "Basis", color=#872323, offset = offset) p1 = plot(upper, "Upper", color=color.teal, offset = offset) p2 = plot(lower, "Lower", color=color.teal, offset = offset) fill(p1, p2, title = "Background", color=#198787, transp=95) stoploss = input(true, "Stop Loss") basisSma = sma(close, length) p3 = plot(basisSma, color=color.blue, title="MA", offset=offset) fastT3 = t3(50) slowT3 = t3(200) crossUp = crossover(basisSma, basis) crossDown = crossunder(basisSma, basis) bollBounce = crossover(close, upper) bollReject = crossunder(close, lower) underBasis = crossunder(close, basis) overBasis = crossover(close, basis) trendUp = fastT3 > slowT3 trendDown = fastT3 < slowT3 strategy.entry("long", strategy.long, when=(trendUp and crossUp), stop=(stoploss ? high+syminfo.mintick : na)) strategy.close("long", when=(bollBounce or crossDown or underBasis)) strategy.entry("short", strategy.short, when=(trendDown and crossDown), stop=(stoploss ? low-syminfo.mintick : na)) strategy.close("short", when=(bollReject or crossUp or overBasis))