Esta estrategia genera señales de negociación de cruce de oro y cruce de muerte mediante el cálculo de la intersección de la EMA rápida y la EMA lenta. Cuando la EMA rápida atraviesa la EMA lenta, se genera una señal de compra; cuando la EMA rápida atraviesa la EMA lenta, se produce una señal de venta. La estrategia aprovecha al máximo las ventajas de las medias móviles para poder seguir de manera efectiva las tendencias del mercado y generar señales de negociación en la fase de inicio de la tendencia.
El EMA de la línea rápida y el EMA de la línea lenta son los indicadores centrales de esta estrategia. La estrategia se realiza mediante la configuración de dos líneas EMA con dos parámetros diferentes, la EMA de la línea rápida se establece en 10, y la EMA de la línea lenta se establece en 20. De ellos, la EMA de 10 días responde más rápidamente a los cambios de precios, mientras que la línea de 20 días responde más lentamente.
Mediante el principio de cruce de la línea EMA rápida, esta estrategia capta el momento de cambio de la tendencia del mercado y puede generar señales de negociación en el momento oportuno. Al mismo tiempo, el indicador EMA en sí tiene la capacidad de filtrar señales falsas para evitar abrir posiciones con frecuencia cuando el mercado está turbulento. Esto permite que la estrategia capte los puntos de inflexión del mercado, con una mayor rentabilidad, al tiempo que reduce los errores de negociación.
Para los riesgos mencionados, se puede optimizar mediante la introducción de indicadores adicionales, como el aumento de las condiciones de filtración de operaciones, la combinación de indicadores MACD para evitar señales erróneas, el uso de velocidades de respuesta de indicadores EMA acelerados adaptados, etc. Además, también es necesario un alto razonable y un alto positivo.
Las direcciones para mejorar aún más la estrategia incluyen:
Esta estrategia tiene un fuerte efecto en el mercado real gracias al principio de cruce de líneas rápidas y lentas de dos EMA, que captan los puntos de inflexión clave del mercado. La combinación de indicadores auxiliares y la optimización del stop loss pueden aumentar aún más la estabilidad de la estrategia. La idea de la estrategia es simple y clara, vale la pena aprender y aplicar a los traders de manera cuantitativa, y también tiene un gran espacio de expansión y potencial de optimización.
/*backtest
start: 2023-01-15 00:00:00
end: 2024-01-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Backtest single EMA cross", overlay=true)
qty = input(100000, "Buy quantity")
testStartYear = input(2019, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testStartHour = input(0, "Backtest Start Hour")
testStartMin = input(0, "Backtest Start Minute")
testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, testStartHour, testStartMin)
testStopYear = input(2099, "Backtest Stop Year")
testStopMonth = input(1, "Backtest Stop Month")
testStopDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0)
testPeriodBackground = input(title="Color Background?", type=input.bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and time >= testPeriodStart and time <= testPeriodStop ?
#00FF00 : na
testPeriod() => true
ema1 = input(10, title="Select EMA 1")
ema2 = input(20, title="Select EMA 2")
expo = ema(close, ema1)
ma = ema(close, ema2)
avg_1 = avg(expo, ma)
s2 = cross(expo, ma) ? avg_1 : na
//plot(s2, style=plot.style_line, linewidth=3, color=color.red, transp=0)
p1 = plot(expo, color=#00FFFF, linewidth=2, transp=0)
p2 = plot(ma, color=color.orange, linewidth=2, transp=0)
fill(p1, p2, color=color.white, transp=80)
longCondition = crossover(expo, ma)
shortCondition = crossunder(expo, ma)
if testPeriod()
strategy.entry("Long", strategy.long, when=longCondition)
strategy.entry("Short", strategy.short, when=shortCondition)
plotshape(longCondition, title = "Buy Signal", text ="BUY", textcolor =#FFFFFF , style=shape.labelup, size = size.normal, location=location.belowbar, color = #1B8112, transp = 0)
plotshape(shortCondition, title = "Sell Signal", text ="SELL", textcolor = #FFFFFF, style=shape.labeldown, size = size.normal, location=location.abovebar, color = #FF5733, transp = 0)