La estrategia de los algoritmos de cruce de oro con dos EMA


La fecha de creación: ¿Qué es lo que está pasando? La última modificación: ¿Qué es lo que está pasando?
¿Qué es lo que está pasando? No hay nada El número de clics: El 303
1
Las preocupaciones
1105
Las personas interesadas

双EMA黄金交叉算法策略

Resumen

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.

Principios estratégicos

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.

Análisis de ventajas

  • Utiliza el principio de cruce de EMA para capturar los puntos de inflexión del mercado y obtener una mayor rentabilidad
  • Las líneas EMA rápidas y las líneas EMA lentas se utilizan conjuntamente para aprovechar sus ventajas respectivas.
  • La EMA tiene un efecto filtrante en sí misma y puede reducir los errores de transacción.
  • Hacer que sea sencillo, fácil de entender y optimizar
  • Escalable y puede ser optimizado con otros indicadores auxiliares.

Análisis de riesgos

  • La intersección de dos EMA puede generar frecuentes señales erróneas en mercados turbulentos
  • Los parámetros de EMA no están bien configurados y pueden perder el punto de inflexión del mercado.
  • Hay un cierto retraso y se puede perder la oportunidad de operar en línea corta.
  • No pueden hacer frente a las mutaciones de la crisis

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.

Dirección de optimización

Las direcciones para mejorar aún más la estrategia incluyen:

  • Aumentar el filtro de operaciones: por ejemplo, combinar indicadores de volumen de negociación para evitar falsos breaks de bajo volumen
  • Combinado con indicadores auxiliares como MACD, evita aún más las señales erróneas
  • Introducción de una EMA adaptativa, con cambios dinámicos en los parámetros de la EMA según las condiciones del mercado
  • Operación conjunta de múltiples marcos de tiempo para aprovechar las ventajas de los EMA de diferentes ciclos
  • Optimizar las estrategias de stop loss para bloquear las ganancias a través de movilidad de stop loss, stop loss proporcional, etc.
  • La optimización automática de parámetros se realiza con tecnologías como el aprendizaje profundo.

Resumen

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.

El código fuente de la estrategia
                
                    /*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)


                
            
Más contenido