Este artigo apresenta uma estratégia quantitativa de negociação baseada no índice de momento estocástico (SMI). A estratégia utiliza os sinais de cruzamento entre o indicador SMI e sua média móvel exponencial (EMA) para identificar oportunidades potenciais de compra e venda.
O núcleo desta estratégia é o Índice de Momento Estocástico (SMI). O SMI é um oscilador de momento que mede o preço de fechamento em relação à faixa alta-baixa em um período especificado. Especificamente, a estratégia primeiro calcula a maior alta e a menor baixa no período especificado, em seguida, calcula a diferença entre o preço de fechamento e o ponto médio da faixa alta-baixa, bem como a diferença entre a maior alta e a menor baixa. Em seguida, a estratégia calcula o valor do SMI, que é a proporção da diferença relativa média para a diferença absoluta média multiplicada por 100. Finalmente, a estratégia calcula a média móvel exponencial do SMI como a linha de sinal.
Quando a linha de sinal SMI cruza acima de sua EMA, ela indica aumento do ímpeto ascendente e desencadeia um sinal de compra; quando a linha de sinal SMI cruza abaixo de sua EMA, ela indica aumento do ímpeto descendente e desencadeia um sinal de venda.
A estratégia baseia-se no poderoso indicador de dinâmica SMI, que pode capturar eficazmente as alterações das tendências e do dinâmica do mercado.
A lógica estratégica é clara e fácil de compreender e implementar.
Usando a média móvel exponencial como linha de sinal, a estratégia pode suavizar o ruído dos preços e melhorar a confiabilidade do sinal.
A marcação dos níveis de sobrecompra e sobrevenda fornece ferramentas adicionais de gestão de risco para a estratégia.
A estratégia baseia-se num único indicador, o SMI, e pode enfrentar o risco de falha do indicador.
A estratégia pode gerar sinais de negociação frequentes em mercados agitados, levando a altos custos de transação.
A estratégia carece de um mecanismo de stop-loss explícito e pode enfrentar o problema do risco excessivo de transação única, o que pode ser resolvido estabelecendo níveis de stop-loss adequados para controlar o risco.
Optimização de parâmetros: o desempenho da estratégia depende em grande parte dos parâmetros utilizados no cálculo do SMI, tais como % K de comprimento, % D de comprimento, etc. Ao otimizar esses parâmetros, o desempenho da estratégia pode ser melhorado.
Filtragem de sinais: Para reduzir a frequência de negociação e melhorar a qualidade do sinal, podem ser considerados mecanismos de filtragem adicionais, como a confirmação da tendência e a confirmação do volume.
Gestão de riscos: a incorporação de regras explícitas de stop loss e gestão de posições na estratégia pode controlar melhor o risco e aumentar a robustez da estratégia.
Combinação de vários fatores: Combinação de sinais SMI com outros indicadores técnicos ou fatores fundamentais para formar um mecanismo de decisão de negociação mais abrangente e confiável.
Este artigo introduz uma estratégia quantitativa de negociação baseada no índice de momento estocástico (SMI). A estratégia utiliza os sinais de cruzamento entre o indicador SMI e sua média móvel exponencial para identificar oportunidades potenciais de compra e venda. As vantagens da estratégia estão em sua base em um poderoso indicador de momento, lógica clara, facilidade de implementação e uso de médias móveis e níveis de sobrecompra / sobrevenda para melhorar a confiabilidade do sinal e gerenciamento de riscos. No entanto, a estratégia também enfrenta riscos como falha de indicador único, negociação de alta frequência e controle de risco insuficiente. Para melhorar ainda mais o desempenho da estratégia, a otimização pode ser feita em termos de otimização de parâmetros, filtragem de sinal, gerenciamento de risco e combinação de vários fatores.
/*backtest start: 2023-03-05 00:00:00 end: 2024-03-10 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Stochastics Momentum Index Strategy", shorttitle="SMI_BackTest", overlay=false) // Input parameters a = input.int(10, "Percent K Length") b = input.int(3, "Percent D Length") ob = input.int(40, "Overbought") os = input.int(-40, "Oversold") // Range Calculation ll = ta.lowest(low, a) hh = ta.highest(high, a) diff = hh - ll rdiff = close - (hh+ll)/2 avgrel = ta.ema(ta.ema(rdiff,b),b) avgdiff = ta.ema(ta.ema(diff,b),b) // SMI calculations SMI = avgdiff != 0 ? (avgrel/(avgdiff/2)*100) : 0 SMIsignal = ta.ema(SMI,b) emasignal = ta.ema(SMI, 10) // Color Definition for Stochastic Line col = SMI >= ob ? color.green : SMI <= os ? color.red : color.white plot(SMIsignal, title="Stochastic", color=color.white) plot(emasignal, title="EMA", color=color.yellow) level_40 = ob level_40smi = SMIsignal > level_40 ? SMIsignal : level_40 level_m40 = os level_m40smi = SMIsignal < level_m40 ? SMIsignal : level_m40 plot(level_40, "Level ob", color=color.red) plot(level_40smi, "Level ob SMI", color=color.red, style=plot.style_line) plot(level_m40, "Level os", color=color.green) plot(level_m40smi, "Level os SMI", color=color.green, style=plot.style_line) //fill(level_40, level_40smi, color=color.red, transp=ob, title="OverSold") //fill(level_m40, level_m40smi, color=color.green, transp=ob, title="OverBought") // Strategy Tester longCondition = ta.crossover(SMIsignal, emasignal) if (longCondition) strategy.entry("Buy", strategy.long) shortCondition = ta.crossunder(SMIsignal, emasignal) if (shortCondition) strategy.entry("Sell", strategy.short)