Esta estrategia implementa una tendencia automatizada después de la negociación mediante el cálculo de bandas de Bollinger para identificar caídas y picos y utilizando promedios móviles a largo y corto plazo para determinar la dirección general de la tendencia.
Los componentes clave de la estrategia son:
Calcular bandas de Bollinger con bandas superior e inferior basándose en el precio de cierre y la desviación típica.
Determinar la tendencia a largo plazo y a corto plazo utilizando una SMA de 300 y de 20 períodos.
Generar una señal de compra cuando el cierre se rompe por debajo de la banda inferior mientras que la SMA larga está por encima y la SMA corta aparece.
Generar una señal de venta cuando el cierre se rompe por encima de la banda superior mientras que la SMA larga está por debajo y la SMA corta baja.
Utilice las órdenes OCO para establecer stop loss y tomar ganancias.
Con este diseño, la estrategia puede identificar automáticamente las oportunidades de compra y venta de picos a lo largo de la dirección de la tendencia principal.
Las ventajas de esta estrategia incluyen:
Detección automática de tendencias sin juicio manual.
Captura sistemáticamente las caídas para las oportunidades de compra.
Identificar sistemáticamente las oportunidades de venta pico para obtener beneficios.
Control eficaz del riesgo mediante el uso de stop loss y take profit.
Filtrar señales no válidas para mejorar la tasa de ganancia.
Tendencia flexible seguida por el ajuste de posición.
Lógica clara y fácil de entender y optimizar.
Los principales riesgos a tener en cuenta:
Una selección de seguridad inadecuada podría fallar en el seguimiento de tendencias.
El ajuste inadecuado de los parámetros puede causar exceso de operaciones o operaciones perdidas.
La reversión de la tendencia debido a eventos repentinos puede dar lugar a pérdidas mayores.
El stop loss demasiado apretado puede causar paradas excesivas.
La liquidez insuficiente puede impedir la plena ejecución.
Sobreajuste con un período de prueba posterior insuficiente.
Las soluciones incluyen: seleccionar acciones líquidas con tendencias claras; optimizar los parámetros; estar atento a las noticias; relajar el stop loss; evaluar el volumen real de operaciones; ampliar el período de backtest.
Algunas maneras de optimizar la estrategia:
Optimice parámetros como el período de Bollinger, el multiplicador de desviación estándar y los períodos de promedio móvil.
Añadir métodos de stop loss como el stop de seguimiento o el stop de media móvil para controlar mejor los riesgos.
Incorporar el tamaño de las posiciones en función de los niveles clave para mejorar la eficiencia de la utilización del capital.
Añadir filtro de volumen para evitar interrupciones no válidas con un volumen bajo.
Añadir un indicador de fuerza relativa para determinar el sesgo de compra/venta.
Introducir el aprendizaje automático para ajuste automático de parámetros y evaluación de estrategias.
Combinar con otras estrategias para crear una cartera de múltiples estrategias para una mayor solidez.
Estas optimizaciones pueden mejorar aún más el rendimiento y la estabilidad de la estrategia.
La estrategia ofrece un enfoque claro y comprensible para comprar sistemáticamente caídas y vender picos a lo largo de la tendencia. Con un control adecuado del riesgo, tiene un buen potencial de ganancia. Se pueden hacer mejoras adicionales a través de la puesta a punto de parámetros, la modificación de la stop loss, el tamaño de la posición, etc. La estrategia sirve como una base sólida para la tendencia automatizada después de la negociación.
/*backtest start: 2023-09-23 00:00:00 end: 2023-10-23 00:00:00 period: 3h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("Buy Dip Sell Rip Strategy", overlay=true) source = close length = input(15, minval=1) mult = input(1.25, minval=0.001, maxval=50) longMAPeriod = input(300, minval=5) shortMAPeriod = input(20, minval=5) basis = sma(source, length) longMA = sma(source, longMAPeriod) prevLongMA = sma(close[1],longMAPeriod) shortMA = sma(source, shortMAPeriod) dev = mult * stdev(source, length) upper = basis + dev lower = basis - dev buyEntry = crossover(source, lower) sellEntry = crossunder(source, upper) if (source > lower and source[1] < lower) if (longMA < source and shortMA>source) strategy.entry("BBandLE", strategy.long, stop=lower, oca_name="BollingerBands", comment="BBandLE") else strategy.close("BBandSE") else strategy.cancel(id="BBandLE") if (source > upper and source[1] < upper) if (longMA > source and shortMA < source) strategy.entry("BBandSE", strategy.short, stop=upper, oca_name="BollingerBands", comment="BBandSE") else strategy.close("BBandLE") else strategy.cancel(id="BBandSE") //plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)