Tendência do Índice de Impulso do ETF Seguindo a Estratégia

Autora:ChaoZhang, Data: 2023-12-05 15:13:25
Tags:

img

Resumo

Trata-se de uma estratégia de seguimento da tendência do ETF com índice de momentum baseada em médias móveis, que utiliza o cruzamento e a inclinação das médias móveis rápidas e lentas para determinar a direção da tendência para a tendência de seguimento da tendência de momentum de baixo risco dos ativos do ETF com índice.

Estratégia lógica

A estratégia usa médias móveis de 50 períodos e 150 períodos. Quando a média móvel rápida cruza a média móvel lenta e a inclinação da média móvel rápida é maior que o limiar, ela sinaliza uma reversão de tendência de alta para entrada longa. Quando a média móvel rápida cruza abaixo da média móvel lenta ou a inclinação da média móvel rápida é menor que o limiar, ela sinaliza uma reversão de tendência de baixa para as posições de saída.

A estratégia simplesmente utiliza a direção e a inclinação das médias móveis para determinar a tendência do mercado, evitando o sobreajuste e controlando efetivamente os riscos.

Análise das vantagens

Esta é uma tendência do ETF com índice de ímpeto de baixo risco que segue uma estratégia com as seguintes vantagens:

  1. Forte capacidade de controlo de riscos.
  2. Baixo custo de implementação: são utilizadas apenas médias móveis simples, resultando em baixo custo e fácil implementação.
  3. Os próprios ETFs de índice têm baixa volatilidade, combinados com a tendência de seguir, podem ser alcançados retornos excessivos estáveis.
  4. Alta adaptabilidade. Muitos parâmetros ajustáveis permitem otimizações para diferentes ETFs de índices.

Análise de riscos

Há também alguns riscos:

  1. Usando médias móveis para determinar tendências pode perder reversões rápidas.
  2. Configurações de parâmetros inadequadas podem resultar em excesso de negociação ou em oportunidades perdidas.
  3. Dependência do desempenho das condições de mercado Pode ter um desempenho inferior em mercados agitados/desorientados.

Soluções:

  1. Incorporar outros indicadores para determinar reversões rápidas.
  2. Teste e otimize os parâmetros.
  3. Ajustar dinamicamente os parâmetros em função da evolução das condições de mercado.

Orientações de otimização

Há algumas áreas em que esta estratégia pode ser melhorada:

  1. Utilize outros indicadores como MACD, KD para complementar a estratégia.
  2. Incorporar uma lógica de stop loss para controlar ainda mais os riscos.
  3. Otimizar os períodos de média móvel para adaptar mais ETFs de índices.
  4. Ajustar dinamicamente os parâmetros para se adequarem aos diferentes ambientes de mercado.

Conclusão

Em conclusão, esta é uma estratégia de seguimento de tendência do ETF de índice de impulso de baixo risco e fácil de implementar. Determina direções de tendência usando cruzamento de médias móveis e tem vantagens como forte controle de risco, baixo custo de implementação e lucros estáveis.


/*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)

Mais.