
Se trata de una estrategia de seguimiento de tendencias dinámicas de ETFs de índices basados en medias móviles. Utiliza la dirección y la pendiente de la intersección de las medias móviles rápidas y las medias móviles lentas para determinar la dirección de la tendencia y lograr el seguimiento de tendencias dinámicas de activos de ETFs de índices de bajo riesgo.
La estrategia utiliza un promedio móvil de 50 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, considere que la tendencia cambia, haga más; cuando el promedio móvil rápido cruza el promedio móvil lento por debajo del promedio móvil rápido, o la pendiente del promedio móvil rápido es menor que el umbral, considere que la tendencia se invierte, y se posiciona.
Esta estrategia utiliza la dirección y la pendiente de las medias móviles para determinar las tendencias del mercado, evitar el ajuste de la curva y controlar el riesgo de manera efectiva. Además, las medias móviles tienen una característica de silencio natural que puede filtrar eficazmente el ruido del mercado.
Se trata de un ETF índice de bajo riesgo con una estrategia de seguimiento de tendencias dinámicas que tiene las siguientes ventajas:
La estrategia también tiene sus riesgos:
Resolución de las mismas:
La estrategia también puede ser optimizada en los siguientes aspectos:
Esta estrategia es una estrategia de seguimiento de tendencias de tipo dinámico de ETF de índice de bajo riesgo y sencilla de implementar. Utiliza la dirección de la tendencia de determinación cruzada de los promedios móviles, con fuertes ventajas de control de riesgo, para lograr costos bajos y estabilidad de ganancias. La estrategia también tiene ciertas deficiencias, pero puede optimizarse aún más de varias maneras, lo que la convierte en una herramienta eficaz 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)