Estratégia de acompanhamento de tendências em vários períodos de tempo


Data de criação: 2023-11-14 14:29:39 última modificação: 2023-11-14 14:29:39
cópia: 1 Cliques: 667
1
focar em
1617
Seguidores

Estratégia de acompanhamento de tendências em vários períodos de tempo

Visão geral

Esta estratégia permite o acompanhamento de tendências no índice SPX500 através da combinação de vários indicadores como a linha média, MACD e RSI para identificar a direção da tendência em vários períodos de tempo.

Princípio da estratégia

  1. Use a média móvel simples de 10 dias para determinar a direção da tendência de preços. Quando o preço atravessa a linha de 10 dias, sobe e desce.

  2. Aplicar a dinâmica de determinação do MACD positivo-negativo bidirecional. Calcular a diferença entre as médias móveis do índice de 12 e 21 dias e identificar o sinal de compra e venda através do cruzamento de linhas rápidas e lentas com a diferença da linha média.

  3. O RSI de 14 dias e sua linha média de 50 dias são calculados, com a linha média acima do RSI como um sinal de tendência positiva e abaixo como um sinal de tendência negativa.

  4. Confirmar a consistência da tendência com um timeframe de 1, 3 e 5 minutos.

  5. Um sinal de compra é gerado quando o preço atravessa a linha de 10 dias acima, a linha média acima do RSI e a linha curta abaixo do MACD. Um sinal de venda é gerado quando o preço atravessa a linha de 10 dias abaixo, a linha média abaixo do RSI e a linha curta abaixo do MACD.

Vantagens estratégicas

  1. A combinação de indicadores múltiplos identifica tendências, aumentando a precisão do sinal. A linha média de 10 dias determina a direção da tendência principal, o MACD determina a força do momento, o RSI confirma o excesso de compra e venda. A combinação de indicadores pode ser verificada entre si, reduzindo o erro de negociação.

  2. Confirmação de múltiplos prazos, para evitar a confusão com o ruído do mercado. Verificação dupla de prazos de 1 minuto, 3 minutos e 5 minutos, para garantir a sincronização do sinal e filtrar os falsos sinais.

  3. Combinado com a forma gráfica de julgamento, intuitivamente confiável. A forma gráfica auxilia na determinação da forma do preço, evitando as áreas extremas do ponto de compra e venda, reduzindo o risco de perda.

  4. A frequência de negociação é moderada e atende às características de negociação do índice. Usando a linha média de 10 dias como principal indicador de julgamento, a frequência de negociação não é muito alta, evitando o custo excessivo de negociação por negociação repetida.

Risco estratégico

  1. Incapacidade de identificar a ruptura causada por eventos súbitos. Eventos irracionais podem perturbar o julgamento do modelo, e o risco de evasão de posições deve ser reduzido.

  2. A configuração dos parâmetros é fixa e não leva em conta as mudanças do ambiente do mercado. Na prática, os parâmetros devem ser ajustados de acordo com a dinâmica do ambiente da cidade, para que a estratégia se adapte a várias situações.

  3. Os pontos de compra e venda são idealizados demais e são muito difíceis de executar. Os pontos de compra e venda devem ser ajustados para que os sinais sejam mais executáveis, combinando fatores como o custo do ponto de deslizamento.

  4. O multi-marco de tempo aumenta o atraso na tomada de decisões. O controle de risco deve ser feito para evitar surpresas e reduzir os prejuízos causados pelo atraso.

Direção de otimização da estratégia

  1. Aumentar os mecanismos de suspensão, como a suspensão móvel, a suspensão percentual, etc., para controlar a perda individual.

  2. Optimizar a configuração de parâmetros para que a dinâmica dos parâmetros se adapte ao ambiente do mercado e melhore a estabilidade da estratégia.

  3. Combinado com o controle de eventos de mercado, evita que eventos importantes causem impacto na estratégia.

  4. Considere os custos reais de transação, como o ponto de deslizamento, e ajuste o ponto de compra e venda para que o sinal seja executado.

  5. Testar diferentes métodos de valorização, como linhas K, como fontes de confirmação de sinais, com uma ampla variedade de métodos de verificação de quadros de tempo.

  6. Adicionar algoritmos de aprendizagem de máquina, usando modelos de treinamento de big data, para otimizar automaticamente os parâmetros da estratégia.

Resumir

Esta estratégia permite o acompanhamento da tendência do índice SPX 500 através da identificação de tendências em vários indicadores e da confirmação de sinais em vários prazos. A vantagem da estratégia é a alta precisão do sinal e a forte capacidade de resistir à interferência de ruído, mas é necessário prestar atenção ao controle de risco e manter a otimização dinâmica dos parâmetros da estratégia.

Código-fonte da estratégia
/*backtest
start: 2022-11-07 00:00:00
end: 2023-11-13 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// USE HEIEN ASHI, 1 min, SPX 500 USD OANDA
// © connor2279
//@version=5
strategy(title="SPX Strategy", shorttitle="SPXS", overlay=true)

//SMA
len1 = 10
src1 = input(close, title="SMA Source #1")
out1 = ta.sma(src1, len1)
plot(out1, title="SMA #1", color=close >= out1 ? color.lime : color.red, linewidth=2)

data_over = ta.crossover(close, out1)
dataO = close >= out1
data_under = ta.crossunder(close, out1)
dataU = close < out1

bgcolor(color=ta.crossover(close, out1) ? color.new(color.lime, 90) : na)
bgcolor(color=ta.crossunder(close, out1) ? color.new(color.red, 90) : na)     

//Norm MacD
sma = 12
lma = 21
tsp = 10
np = 50
    
sh = ta.ema(close,sma)  

lon= ta.ema(close,lma) 

ratio = math.min(sh,lon)/math.max(sh,lon)

Mac = ratio - 1
if(sh>lon)
    Mac := 2-ratio - 1
else
    Mac := ratio - 1

MacNorm = ((Mac-ta.lowest(Mac, np)) /(ta.highest(Mac, np)-ta.lowest(Mac, np)+.000001)*2)- 1

MacNorm2 = MacNorm

if(np<2)
    MacNorm2 := Mac
else
    MacNorm2 := MacNorm
    
Trigger = ta.wma(MacNorm2, tsp)

trigger_above = Trigger >= MacNorm
trigger_under = Trigger < MacNorm
plotshape(ta.crossover(Trigger, MacNorm2), style=shape.triangledown, color=color.red)
plotshape(ta.crossunder(Trigger, MacNorm2), style=shape.triangledown, color=color.lime)

//RSI / SMA RSI
swr=input(true,title="RSI")
src = close
len = 14
srs = 50
up = ta.rma(math.max(ta.change(src), 0), len)
down = ta.rma(-math.min(ta.change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
mr = ta.sma(rsi,srs)
rsi_above = rsi >= mr
rsi_under = rsi < mr

//All
buySignal = rsi_above and trigger_under and dataO
shortSignal = rsi_under and trigger_above and dataU
bgcolor(color=buySignal ? color.new(color.lime,97) : na)     
bgcolor(color=shortSignal ? color.new(color.red, 97) : na)     
     
sellSignal = ta.cross(close, out1) or ta.cross(Trigger, MacNorm2) or ta.cross(rsi, mr)
if (buySignal)
    strategy.entry("LONG", strategy.long, 1)

if (shortSignal)
    strategy.entry("SHORT", strategy.short, 1)

// Submit exit orders
strategy.close("LONG", when=sellSignal)
strategy.close("SHORT", when=sellSignal)