
Esta estrategia se basa en el indicador MACD y en la línea de posición larga y pacífica, y permite la negociación de la línea larga de un par de divisas. Se abre una posición cuando la línea de indicador MACD cruza la línea de posición larga y se cierra una posición cuando la línea de indicador MACD cruza la línea de posición baja. Al mismo tiempo, se establece una estrategia de stop loss.
La estrategia utiliza la línea rápida y la línea lenta del indicador MACD. El parámetro de la línea rápida es el EMA de 12 días y el parámetro de la línea lenta es el EMA de 26 días. La diferencia entre las dos líneas medias es el gráfico de columnas MACD.
Concretamente, la estrategia calcula primero la línea rápida, la línea lenta y la línea de señal del indicador MACD. Luego, se establece la línea larga como -0.04, la línea de posición baja como 0.015. Si el gráfico MACD actual es mayor que la línea larga, se realiza una operación de plusvalía; Si el gráfico MACD actual es menor que la línea de posición baja, se realiza una operación de plusvalía. Además, se establece la línea de stop loss como el 95% del precio de apertura de la posición.
La estrategia tiene las siguientes ventajas:
La estrategia también tiene ciertos riesgos:
Se puede optimizar y mejorar mediante la adaptación adecuada de los parámetros y la combinación de otros indicadores.
La estrategia puede ser optimizada en los siguientes aspectos:
Se puede probar con diferentes longitudes de cables rápidos, lentos y señales para encontrar la combinación más adecuada.
Indicadores como el RSI y el KD pueden tener efectos muy diferentes.
Se puede recurrir a los datos para encontrar un parámetro de posición más apropiado.
Se pueden considerar métodos como trailing stop para que el stop loss sea más dinámico.
Aplicación de la estrategia a otros pares de divisas, análisis de resultados
Esta estrategia en general es una estrategia de negociación de línea larga muy simple e intuitiva. Utiliza el indicador MACD para juzgar la situación y establece condiciones de doble filtración para reducir las operaciones erróneas. Al mismo tiempo, configura el stop loss para controlar el riesgo. La estrategia es lógica clara, ocupa pocos recursos, es fácil de entender e implementar y es recomendable.
/*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)