Esta estrategia utiliza ampliamente el indicador EMA, el indicador Bollinger Bands y el indicador MACD. Sobre la base de la cruz de oro y la cruz de la muerte de la EMA de 9 días y la EMA de 30 días, determina el momento de compra y venta en combinación con el rango de distribución de precios e indicadores de impulso.
Calcular la EMA de 3 días, la EMA de 9 días y la EMA de 30 días.
Calcular la desviación estándar dentro de los 20 días del precio y dibujar las bandas de Bollinger con 1 y 2 veces la desviación estándar.
Calcule la línea de señal de 12 días, 26 días y 9 días.
Cuando la EMA de 9 días supera la EMA de 30 días y el precio excede el límite superior de las bandas de Bollinger de 1x de desviación estándar, se emite una señal de compra.
Cuando la EMA de 30 días cae por debajo de la EMA de 9 días y el precio es inferior al límite inferior de las bandas de Bollinger de 1x desviación estándar, se emite una señal de venta.
Al combinar indicadores de media móvil e indicadores de impulso, esta estrategia permite comprender mejor las tendencias y el calendario del mercado, con las siguientes ventajas:
El indicador EMA puede responder rápidamente a los cambios de precios para determinar las tendencias del mercado; el indicador MACD juzga el impulso para evitar fallas falsas.
La combinación de los indicadores de desviación estándar de Bollinger Bands y las EMA puede determinar con mayor precisión el momento de compra y venta.
La combinación de múltiples indicadores puede complementarse entre sí. Diferentes indicadores pueden verificar el juicio en un solo avance.
Esta estrategia también tiene algunos riesgos. Preste atención a los siguientes puntos de optimización:
La combinación de medias móviles de la EMA puede ajustarse y optimizarse.
Los parámetros de las bandas de Bollinger se pueden optimizar cambiando la multiplicación de las desviaciones estándar para filtrar las señales falsas.
Los parámetros y la combinación del indicador MACD se pueden optimizar para mejorar el efecto de juzgar el impulso.
Esta estrategia integra el indicador EMA para determinar la tendencia principal, complementado por el indicador Bollinger Bands que puede capturar con precisión los puntos de compra y venta cuando el impulso es relativamente grande; el indicador MACD complementa la confirmación de tendencia y puede filtrar eficazmente las señales falsas.
/*backtest start: 2023-02-20 00:00:00 end: 2024-02-26 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("emabb_collab", shorttitle="emabb", overlay=true) // Input parameters ema3 = input(3, title="3 EMA") ema9 = input(9, title="9 EMA") ema30 = input(30, title="30 EMA") macdShort = input(12, title="MACD Short") macdLong = input(26, title="MACD Long") macdSignal = input(9, title="MACD Signal") length = input.int(20, minval=1) src = input(close, title="Source") mult = input.float(2.0, minval=0.001, maxval=50, title="StdDev") basis = ta.sma(src, length) dev1 = mult * ta.stdev(src, length) upper1 = basis + dev1 lower1 = basis - dev1 dev2 = mult * 2 * ta.stdev(src, length) upper2 = basis + dev2 lower2 = basis - dev2 plot(basis, "Basis", color=#FF6D00) p1 = plot(upper1, "Upper1", color=#2962FF) p2 = plot(lower1, "Lower1", color=#2962FF) fill(p1, p2, title = "Background", color=color.rgb(33, 150, 243, 95)) plot(basis, "Basis", color=#FF6D00) p3 = plot(upper2, "Upper2", color=#00FF8C) p4 = plot(lower2, "Lower2", color=#00FF8C) fill(p3, p4, title = "Background", color=color.rgb(0, 153, 140, 95)) // Calculate EMAs ema3Value = ta.ema(close, ema3) ema9Value = ta.ema(close, ema9) ema30Value = ta.ema(close, ema30) // Calculate MACD [macdLine, signalLine, _] = ta.macd(close, macdShort, macdLong, macdSignal) // Conditions for buy signal buyCondition = ta.crossover(ema9Value, ema30Value) and ta.stdev(close, 20) > ta.stdev(close, 20)[1] //Conditions for sell signal sellCondition = ta.crossover(ema30Value, ema9Value) and ta.stdev(close, 20) < ta.stdev(close, 20)[1] // Plot signals on the chart plotshape(buyCondition, title='Buy Label', style=shape.triangleup, location=location.belowbar, size=size.normal, text='Buy', textcolor=color.new(color.white, 0), color=color.new(color.green, 0)) plotshape(sellCondition, title='sell Label', style=shape.triangledown, location=location.abovebar, size=size.normal, text='sell', textcolor=color.new(color.white, 0), color=color.new(color.red, 0)) // Plot EMAs plot(ema3Value, title="3 EMA", color=color.orange) plot(ema9Value, title="9 EMA", color=color.purple) plot(ema30Value, title="30 EMA", color=color.red) if buyCondition strategy.entry('Long', strategy.long) if sellCondition strategy.entry('Short', strategy.short)