Esta estrategia se basa en el indicador MACD y líneas largas y cerradas para implementar el comercio a largo plazo del par de divisas.
La estrategia utiliza líneas rápidas y lentas del indicador MACD. La línea rápida tiene un parámetro de EMA de 12 días y la línea lenta tiene un parámetro de EMA de 26 días. La diferencia entre las dos líneas es el histograma MACD. Además, la EMA de 9 días se calcula como la línea de señal.
Específicamente, la estrategia primero calcula la línea rápida, la línea lenta y la línea de señal del indicador MACD. Luego, la línea larga se establece en -0.04, la línea de cierre se establece en 0.015. Si el histograma MACD actual es mayor que la línea larga, va largo. Si el histograma MACD actual es menor que la línea de cierre, cierra la posición larga. Además, la línea de stop loss se establece en el 95% del precio de entrada.
La estrategia tiene las siguientes ventajas:
La estrategia también tiene algunos riesgos:
Se pueden utilizar métodos como ajustar parámetros, combinar otros indicadores para optimizar y mejorar.
La estrategia se puede optimizar en los siguientes aspectos:
Prueba diferentes combinaciones de parámetros MACD para encontrar mejores parámetros
Se puede intentar encontrar combinaciones más adecuadas de línea rápida, línea lenta, línea de señal con diferentes longitudes.
Prueba con otros indicadores.
Indicadores como RSI, KD pueden tener resultados muy diferentes
Optimización de los parámetros de línea larga y cerrada
Los parámetros más adecuados se pueden encontrar mediante pruebas de retroceso repetitivas
Ajuste de la estrategia de stop loss
Considere las paradas de trailing para hacer que el stop loss sea más dinámico
Prueba en diferentes pares de divisas
Aplicar la estrategia a otros pares y examinar los efectos
En conclusión, esta es una estrategia comercial a largo plazo general muy simple e intuitiva. Juzga las condiciones del mercado utilizando el indicador MACD y establece criterios de doble filtro para reducir el comercio falso. El control de riesgos también se configura a través de stop loss. La lógica es clara y la ocupación de recursos es baja. Es fácil de entender e implementar, vale la pena recomendar. Por supuesto, todavía hay mucho espacio para mejorar a través de la puesta a punto de parámetros, el cambio de indicador y otros medios, para hacer que la estrategia sea aún más destacada.
/*backtest start: 2024-01-04 00:00:00 end: 2024-01-11 00:00:00 period: 30m basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy(shorttitle = "GBPJPY MACD", title = "GBPJPY MACD") fastMA = input(title="Fast moving average", defval = 12, minval = 7) slowMA = input(title="Slow moving average", defval = 26, minval = 7) lastColor = yellow [currMacd,_,_] = macd(close[0], fastMA, slowMA, 9) [prevMacd,_,_] = macd(close[1], fastMA, slowMA, 9) plotColor = currMacd > 0 ? currMacd > prevMacd ? lime : green : currMacd < prevMacd ? maroon : red plot(currMacd, style = histogram, color = plotColor, linewidth = 3) plot(0, title = "Zero line", linewidth = 1, color = gray) //MACD // Getting inputs fast_length = input(title="Fast Length", defval=12) slow_length = input(title="Slow Length", defval=26) src = input(title="Source", defval=close) signal_length = input(title="Signal Smoothing", minval = 1, maxval = 50, defval =9) sma_source = input(title="Simple MA(Oscillator)", type=bool, defval=false) sma_signal = input(title="Simple MA(Signal Line)", type=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 //plot(hist, title="Histogram", 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) ///END OF MACD //Long and Close Long Lines linebuy = input(title="Enter Long", type=float, defval=-0.04) linesell = input(title="Close Long", type=float, defval=0.015) //Plot Long and Close Long Lines plot(linebuy,color=green),plot(linesell,color=red) //Stop Loss Input sl_inp = input(0.05, title='Stop Loss %', type=float)/100 //Order Conditions longCond = crossover(currMacd, linebuy) exitLong = crossover(currMacd, linesell) stop_level = strategy.position_avg_price * (1 - sl_inp) //Order Entries strategy.entry("long", strategy.long, when=longCond==true) strategy.close("long", when=exitLong==true) strategy.exit("Stop Loss", stop=stop_level)