Estratégia do Momentum Surfer Baseada no Índice de Momentum Stochastic

Autora:ChaoZhang, Data: 2024-02-27 14:32:46
Tags:

img

Resumo

Este artigo apresenta uma estratégia para rastrear as tendências de ações com base no indicador do Índice de Momento Estocástico (SMI). A estratégia é chamada de Momentum Surfer Strategy. Identifica áreas sobrecompradas e sobrevendidas com SMI e entra em longo / curto para lucrar com inversões de tendência.

Estratégia lógica

O indicador SMI é usado para identificar zonas de sobrecompra e sobrevenda. Os valores na área vermelha indicam que o estoque está sobrevendido, enquanto a área verde significa condições de sobrecompra. Os sinais de negociação são gerados a partir do cruzamento entre o SMI e sua linha EMA.

Especificamente, um sinal longo é acionado quando o SMI cruza acima de sua EMA e o SMI está abaixo do nível de sobrevenda de -40. Um sinal curto é acionado quando o SMI cruza abaixo de sua EMA e o SMI está acima do nível de sobrecompra de 40.

Ao fazê-lo, a estratégia pode capturar a reversão de preços e implementar comprar baixo vender alto.

Análise das vantagens

A maior vantagem reside na sua capacidade de seguir as tendências. Como utiliza o SMI para determinar os pontos de entrada e saída, os sinais se alinham perfeitamente com as inversões de preços.

Além disso, o próprio SMI tem a característica de suavizar os preços. Em comparação com médias móveis simples, ele responde mais constantemente às mudanças de preço. Os sinais de negociação são mais confiáveis sem serem facilmente afetados pelo ruído do mercado.

Em resumo, a estratégia aproveita com sucesso a força do SMI para rastrear efetivamente as tendências de ações.

Análise de riscos

A estratégia baseia-se fortemente no indicador SMI e enfrenta, por conseguinte, alguns riscos associados.

Em primeiro lugar, o SMI é sensível ao ajuste de parâmetros. Parâmetros incorretos podem prejudicar significativamente a qualidade do sinal.

Além disso, nenhum indicador é imune a sinais falsos, incluindo o SMI. Whipsaws podem acontecer durante alta volatilidade que causa perdas desnecessárias.

Por último, não atenuam o risco sistémico de mercado. Se o mercado inteiro entrar em estado de baixa, são inevitáveis perdas graves.

Reforço

A estratégia pode ser melhorada a partir dos seguintes aspectos:

  1. Incorporar outros indicadores para formar um sistema de sindicatos. Isso ajuda a aumentar a confiabilidade e rentabilidade do sinal. Fatores fundamentais e medidas de volatilidade podem ser adicionados.

  2. Utilize o aprendizado de máquina para otimizar automaticamente os parâmetros do SMI com base em grandes dados históricos.

  3. Adicionar mecanismos de stop loss. Stop loss razoável reduz enormemente a perda de uma única negociação e evita riscos.

  4. Combinar as regras quantitativas de selecção dos stocks para melhorar a qualidade global do conjunto de stocks.

Conclusão

Neste artigo, apresentamos a estratégia Momentum Surfer, que rastreia tendências com o indicador SMI. Sua maior força reside em capturar reversões e seguir as tendências sem problemas. Alguns riscos como sensibilidade de parâmetros e qualidade do sinal estão presentes. Sugerimos algumas maneiras de aprimorá-lo.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Stochastics Momentum Index Strategy", shorttitle="Stoch_MTM_Doan", overlay=true)

// 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) and (SMI < os)
if (longCondition)
    strategy.entry("Buy", strategy.long)

shortCondition = ta.crossunder(SMIsignal, emasignal) and (SMI > ob)
if (shortCondition)
    strategy.entry("Sell", strategy.short)


Mais.