Esta estrategia de negociación es una estrategia cuantitativa basada en la operación de cruce de la media móvil de 200 días del indicador MACD. Combina las funciones duales del indicador MACD para juzgar las señales de compra y venta del mercado y la media móvil de 200 días para juzgar las tendencias del mercado, con el objetivo de descubrir tiempos de entrada y salida más precisos.
Esta estrategia tiene dos puntos clave:
Los cruces de línea rápida y lenta del indicador MACD generan señales de compra y venta. Cuando la línea rápida rompe la línea lenta hacia arriba, se genera una señal de compra. Cuando la línea rápida rompe la línea lenta hacia abajo, se genera una señal de venta.
El promedio móvil de 200 días juzga la tendencia general del mercado. Los precios por encima del promedio móvil de 200 días indican un mercado alcista, y por debajo indican un mercado bajista.
De acuerdo con estos dos puntos, las reglas específicas de negociación de esta estrategia son:
Cuando la línea rápida del MACD rompe la línea lenta del MACD hacia arriba, el histograma es negativo, y el precio está por encima del promedio móvil de 200 días, se realiza una operación de compra.
La doble confirmación mejora la estabilidad y la tasa de éxito de la estrategia. El MACD juzga las señales de compra y venta, y el promedio móvil de 200 días juzga la tendencia del mercado. La doble confirmación puede filtrar algunas señales comerciales con mayor incertidumbre.
En un mercado de tendencia fuerte, esta estrategia puede traer ganancias relativamente altas.
Cuando el precio termina un largo período de consolidación y entra en una fase de tendencia, esta estrategia puede capturar rápidamente la nueva dirección de tendencia.
Esta estrategia es muy sensible a la configuración de parámetros.
Al acercarse a los puntos de inflexión de la tendencia, las señales MACD tienden a producir más errores.
Cuando los precios se encuentran en un largo período de consolidación, esta estrategia no puede determinar una dirección de tendencia clara, lo que conduce a una mayor fluctuación de las ganancias y pérdidas y a tiempos de extracción más largos.
Se pueden probar diferentes combinaciones de parámetros para encontrar parámetros MACD que producen señales más precisas.
Considere la posibilidad de añadir confirmación de otros indicadores técnicos como el RSI y el KD para formar un consenso de múltiples indicadores, aumentando así la fiabilidad de la estrategia.
Establezca puntos de stop loss para controlar el descenso máximo. Detenga inmediatamente la pérdida cuando los precios realicen una reversión significativa, lo que puede evitar efectivamente aumentar las pérdidas.
La estrategia de cruce de la media móvil de 200 días del MACD combina las funciones duales de juicio de tendencia y juicio de señal comercial, lo que puede mejorar efectivamente la probabilidad de rentabilidad. Es una estrategia comercial cuantitativa relativamente robusta y confiable. Pero esta estrategia también se basa en algunos parámetros y condiciones del mercado. La optimización y prueba continuas pueden mejorar aún más la capacidad estable de generación de ganancias de la estrategia.
/*backtest start: 2023-12-26 00:00:00 end: 2024-01-02 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © x11joe //@version=4 //This strategy is based on a youtube strategy that suggested I do this...so I did! strategy(title="MacD 200 Day Moving Average Signal Crossover Strategy", overlay=false, precision=2,commission_value=0.26, initial_capital=10000, currency=currency.USD, default_qty_type=strategy.percent_of_equity, default_qty_value=100) // Getting inputs fast_length = input(title="Fast Length", type=input.integer, defval=12) slow_length = input(title="Slow Length", type=input.integer, defval=26) src = input(title="Source", type=input.source, defval=close) signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9) sma_source = input(title="Simple MA(Oscillator)", type=input.bool, defval=false) sma_signal = input(title="Simple MA(Signal Line)", type=input.bool, defval=false) // Plot colors col_grow_above = #26A69A col_grow_below = #FFCDD2 col_fall_above = #B2DFDB col_fall_below = #EF5350 col_macd = #0094ff col_signal = #ff6a00 // Calculating fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length) slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length) macd = fast_ma - slow_ma signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length) hist = macd - signal moving_avg_length = input(title="Moving Average Length", type=input.integer, defval=200) moving_avg = sma(close,moving_avg_length) moving_avg_normalized = close - moving_avg plot(moving_avg_normalized, title="Moving Average Normalized", style=plot.style_line, color=color.orange,linewidth=3) plot(hist, title="Histogram", style=plot.style_columns, color=(hist>=0 ? (hist[1] < hist ? col_grow_above : col_fall_above) : (hist[1] < hist ? col_grow_below : col_fall_below) ), transp=0 ) plot(macd, title="MACD", color=col_macd, transp=0) plot(signal, title="Signal", color=col_signal, transp=0) if(macd>signal and macd<0 and close>moving_avg) strategy.entry("buy",strategy.long) if(close<moving_avg and macd<signal and macd>0) strategy.entry("sell",strategy.short)