Estrategia de tendencia de marco temporal cruzado basada en media móvil y EMA


Fecha de creación: 2024-02-21 15:59:43 Última modificación: 2024-02-21 15:59:43
Copiar: 1 Número de Visitas: 713
1
Seguir
1617
Seguidores

Estrategia de tendencia de marco temporal cruzado basada en media móvil y EMA

Descripción general

Esta estrategia es una estrategia que utiliza la línea media y la EMA para realizar operaciones de tendencia a través de marcos de tiempo. La estrategia determina la dirección de la tendencia mediante la combinación de diferentes períodos de SMA, EMA y entidades de la línea K, para lograr un seguimiento de tendencias de bajo riesgo.

Principio de estrategia

La estrategia se basa principalmente en la comparación de las medias SMA de tres períodos diferentes para determinar el movimiento de los precios. Además, se utiliza la EMA para determinar la dirección de la entidad.

En concreto, la estrategia utiliza una media SMA de 3 períodos, 3 períodos, 8 períodos y 10 períodos. El precio se considera bajista cuando está por debajo de las tres medias y emite una señal de compra cuando el precio vuelve a subir a la media.

Además, la estrategia utiliza la ayuda de la EMA de 5 ciclos para determinar la dirección de la entidad en la línea K, asegurando que la entidad se compra hacia arriba.

En la administración de posiciones, la estrategia establece el número de ganancias o el período de máxima posición como una forma de detener las pérdidas.

Análisis de las ventajas

La estrategia se combina con la median línea de diferentes períodos de tiempo para lograr un juicio de tendencias, que puede filtrar eficazmente el ruido del mercado y seguir las tendencias de la línea media y larga. Los parámetros de la estrategia se optimizan y se desempeñan bien en la retroalimentación histórica.

Además, las estrategias que incorporan el juicio de la EMA evitan que las entidades de la línea K compren hacia abajo, lo que reduce la pérdida innecesaria de puntos de deslizamiento.

En general, la estrategia es estable, fiable y adecuada para el seguimiento de líneas medianas y largas.

Riesgos y contramedidas

  • La estrategia es muy sensible a los parámetros, y la configuración incorrecta de 3 períodos SMA o EMA puede causar una disminución de la calidad de la señal de negociación. Se requiere optimización de los parámetros para diferentes variedades.

  • La estrategia no tiene en cuenta las situaciones en las que el precio se disparará o se abrirá. Si se produce una noticia importante que cause un gran salto en el precio, se puede causar una cierta pérdida. Se puede establecer un stop loss para evitar este riesgo.

Dirección de optimización

  • Se puede considerar la adición de más parámetros de ciclo para formar comparaciones de EMA o SMA en varios marcos de tiempo, lo que hace que la estrategia sea más precisa en el juicio de la tendencia.

  • Se puede probar una configuración de stop loss de cierta amplitud para reducir las pérdidas en situaciones extremas, siempre que se garantice una ganancia.

  • Se puede intentar introducir aprendizaje automático para optimizar dinámicamente los parámetros, lo que permite que los parámetros de la estrategia se ajusten a la situación del mercado en tiempo real.

Resumir

La estrategia es robusta y confiable en su conjunto, y utiliza la comparación de líneas medias para determinar la dirección de la tendencia, complementada con señales de filtración de EMA. A través de la optimización de los parámetros y la configuración de control de viento, se puede mejorar aún más la tasa de victoria y la rentabilidad de la estrategia.

Código Fuente de la Estrategia
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Free Strategy #02 (ES / SPY)", overlay=true)

// Inputs
Quantity = input(1, minval=1, title="Quantity")
SmaPeriod01 = input(3, minval=1, title="SMA Period 01")
SmaPeriod02 = input(8, minval=1, title="SMA Period 02")
SmaPeriod03 = input(10, minval=1, title="SMA Period 03")
EmaPeriod01 = input(5, minval=1, title="EMA Period 01")
MaxProfitCloses = input(5, minval=1, title="Max Profit Close")
MaxBars = input(10, minval=1, title="Max Total Bars")

// Misc Variables
src = close
BarsSinceEntry = 0
MaxProfitCount = 0
Sma01 = sma(close, SmaPeriod01)
Sma02 = sma(close, SmaPeriod02)
Sma03 = sma(close, SmaPeriod03)
Ema01 = ema(close, EmaPeriod01)

// Conditions
Cond00 = strategy.position_size == 0
Cond01 = close < Sma03
Cond02 = close <= Sma01
Cond03 = close[1] > Sma01[1]
Cond04 = open > Ema01
Cond05 = Sma02 < Sma02[1]

// Update Exit Variables
BarsSinceEntry := Cond00 ? 0 : nz(BarsSinceEntry[1]) + 1
MaxProfitCount := Cond00 ? 0 : (close > strategy.position_avg_price and BarsSinceEntry > 1) ? nz(MaxProfitCount[1]) + 1 : nz(MaxProfitCount[1])

// Entries
strategy.entry(id="L1", long=true, qty=Quantity, when=(Cond00 and Cond01 and Cond02 and Cond03 and Cond04 and Cond05))
 
// Exits
strategy.close("L1", (BarsSinceEntry - 1 >= MaxBars or MaxProfitCount >= MaxProfitCloses))