
Este artigo descreve uma estratégia de negociação quantitativa baseada no SMI, que usa o indicador SMI e sua média móvel exponencial (EMA) para identificar potenciais oportunidades de compra e venda. Quando o SMI atravessa sua EMA na linha de sinal, ele dispara um sinal de compra. Quando o SMI atravessa sua EMA abaixo da linha de sinal, ele dispara um sinal de venda.
O SMI é um indicador de oscilação dinâmica usado para medir a posição do preço de liquidação em relação ao alto e baixo da faixa de preços durante um período de tempo. Concretamente, a estratégia primeiro calcula o máximo e o mínimo do preço de liquidação no período especificado, e depois calcula a diferença entre o preço de liquidação e o ponto médio do alto e baixo, e a diferença entre o máximo e o mínimo. Em seguida, a estratégia calcula o valor do SMI, ou seja, a média da diferença relativa multiplicada pela média da diferença absoluta por 100.
Quando o SMI atravessa sua EMA na linha de sinalização, indica um aumento na oscilação ascendente, desencadeando um sinal de compra; quando o SMI atravessa sua EMA na linha de sinalização, indica um aumento na oscilação descendente, desencadeando um sinal de venda. Além disso, a estratégia também marca o estado extremo do SMI através dos níveis de sobrecompra e sobrevenda.
A estratégia baseia-se em um forte indicador de dinâmica, o SMI, capaz de capturar de forma eficaz as tendências do mercado e as mudanças de dinâmica.
A lógica da estratégia é clara, fácil de entender e de implementar.
Usando a média móvel indexada como linha de sinal, a estratégia pode suavizar o ruído de preços e aumentar a confiabilidade do sinal.
Os indicadores de níveis de sobrecompra e sobrevenda fornecem ferramentas adicionais de gestão de risco para a estratégia.
A estratégia depende de um único indicador SMI, podendo enfrentar o risco de falha do indicador. Para mitigar este risco, pode ser considerado a confirmação de sinais de negociação em combinação com outros indicadores técnicos ou fatores fundamentais.
A estratégia pode gerar sinais de negociação frequentes em mercados turbulentos, resultando em altos custos de negociação. Para resolver este problema, a frequência de negociação pode ser reduzida através da otimização de parâmetros ou da introdução de mecanismos de filtragem.
A estratégia não possui um mecanismo de stop loss definido, o que pode levar a problemas de risco excessivo em uma única transação. O risco pode ser controlado através da definição de um nível de stop loss apropriado.
Otimização de parâmetros: O desempenho da estratégia depende muito dos parâmetros usados no cálculo do SMI, como o comprimento% K, o comprimento% D, etc. Otimizando 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, pode-se considerar a introdução de mecanismos de filtragem adicionais, como confirmação de tendências, confirmação de volume de negociação, etc.
Gerenciamento de riscos: a inclusão de regras claras de stop loss e gerenciamento de posições na estratégia pode controlar melhor o risco e melhorar a solidez da estratégia.
Combinação de múltiplos 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 apresenta uma estratégia de negociação quantitativa baseada no indicador de força aleatória (SMI). Esta estratégia usa o indicador SMI com o sinal cruzado de sua média móvel de índice para identificar oportunidades de compra e venda potenciais. A vantagem da estratégia é que ela é baseada em um indicador de força dinâmica, clareza lógica e facilidade de implementação, além de aumentar a confiabilidade do sinal e o gerenciamento de risco através do uso de médias móveis e níveis de super-compra e super-venda.
/*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)