Tendencia del índice de impulso del ETF siguiendo la estrategia

El autor:¿ Qué pasa?, Fecha: 2023-12-05 15:13:25
Las etiquetas:

img

Resumen general

Se trata de una estrategia de seguimiento de la tendencia del ETF de índices de impulso basada en promedios móviles. Utiliza el cruce y la pendiente de promedios móviles rápidos y lentos para determinar la dirección de tendencia de la tendencia de impulso de bajo riesgo de los activos del ETF de índices.

Estrategia lógica

La estrategia utiliza promedios móviles de 50 períodos y 150 períodos. Cuando el promedio móvil rápido cruza el promedio móvil lento y la pendiente del promedio móvil rápido es mayor que el umbral, señala una inversión de tendencia alcista para la entrada larga. Cuando el promedio móvil rápido cruza por debajo del promedio móvil lento, o la pendiente del promedio móvil rápido es menor que el umbral, señala una inversión de tendencia bajista para las posiciones de salida.

La estrategia simplemente utiliza la dirección y la pendiente de las medias móviles para determinar la tendencia del mercado, evitando el sobreajuste y controlando eficazmente los riesgos.

Análisis de ventajas

Se trata de una tendencia de ETF de índice de impulso de bajo riesgo que sigue una estrategia con las siguientes ventajas:

  1. Las medias móviles filtran el ruido del mercado para un control eficaz del riesgo.
  2. Bajo costo de implementación: solo se utilizan medias móviles simples, lo que resulta en un bajo costo y una implementación fácil.
  3. Los propios ETF de índices tienen baja volatilidad, combinados con el seguimiento de tendencias, se pueden lograr rendimientos excedentes estables.
  4. Muchos parámetros ajustables permiten optimizaciones para diferentes ETF de índices.

Análisis de riesgos

También hay algunos riesgos:

  1. El uso de promedios móviles para determinar las tendencias puede hacer que se pierdan las inversiones rápidas.
  2. La configuración incorrecta de los parámetros puede dar lugar a un exceso de operaciones o a oportunidades perdidas.
  3. Dependencia del rendimiento de las condiciones del mercado.

Soluciones:

  1. Incorporar otros indicadores para determinar las inversiones rápidas.
  2. Prueba y optimiza los parámetros.
  3. Ajustar dinámicamente los parámetros en función de las condiciones cambiantes del mercado.

Direcciones de optimización

Hay algunos ámbitos en los que esta estrategia puede optimizarse aún más:

  1. Utilice otros indicadores como MACD, KD para complementar la estrategia.
  2. Incorporar una lógica de stop loss para controlar aún más los riesgos.
  3. Optimizar los períodos de media móvil para adaptar más ETF de índices.
  4. Ajustar dinámicamente los parámetros para adaptarse a los diferentes entornos del mercado.

Conclusión

En conclusión, se trata de una estrategia de seguimiento de tendencias de ETF de índice de impulso de bajo riesgo y fácil de implementar. Determina las direcciones de tendencia utilizando cruces de promedio móvil y tiene ventajas como un fuerte control de riesgos, bajo costo de implementación y ganancias estables. Aunque existen algunos defectos, la estrategia puede mejorarse aún más en muchos aspectos para convertirse en una herramienta efectiva para la asignación de activos de ETF de índice.


/*backtest
start: 2023-11-04 00:00:00
end: 2023-12-04 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//please use on daily SPY, or other indexes only
strategy("50-150 INDEX TREND FOLLOWING", overlay=true)

//user input
fastSMA = input(title="Fast Moving Average (Int)",type=input.integer,minval=1,maxval=1000,step=1,defval=50,confirm=false)
slowSMA = input(title="Slow Moving Average (Int)",type=input.integer,minval=1,maxval=1000,step=1,defval=150,confirm=false)
longSlopeThreshold = input(title="Bullish Slope Angle (Deg)",type=input.integer,minval=-90,maxval=90,step=1,defval=5,confirm=false)
shortSlopeThreshold = input(title="Bearish Slope Angle (Deg)",type=input.integer,minval=-90,maxval=90,step=1,defval=-5,confirm=false)
atrValue = input(title="Average True Range (Int)",type=input.integer,minval=1,maxval=100,step=1,defval=14,confirm=false)
risk = input(title="Risk (%)",type=input.integer,minval=1,maxval=100,step=1,defval=100,confirm=false)

//create indicator
shortSMA = sma(close, fastSMA)
longSMA = sma(close, slowSMA)

//calculate ma slope
angle(_source) =>
    rad2degree=180/3.14159265359
    ang=rad2degree*atan((_source[0] - _source[1])/atr(atrValue)) 

shortSlope=angle(shortSMA)
longSlope=angle(longSMA)

//specify crossover conditions
longCondition = (crossover(shortSMA, longSMA) and (shortSlope > longSlopeThreshold)) or ((close > shortSMA) and (shortSMA > longSMA) and (shortSlope > longSlopeThreshold))
exitCondition = crossunder(shortSMA, longSMA) or (shortSlope < shortSlopeThreshold)
strategy.initial_capital = 50000
//units to buy
amount = (risk / 100) * (strategy.initial_capital + strategy.netprofit)
units = floor(amount / close)

//long trade
if (longCondition and strategy.position_size == 0)
    strategy.order("Long", strategy.long, units)

//close long trade
if (exitCondition and strategy.position_size > 0)
    strategy.order("Exit", strategy.short, strategy.position_size)

// Plot Moving Average's to chart
plot(shortSMA, color=color.blue)
plot(longSMA, color=color.green)

Más.