Estratégia de negociação composta de múltiplos indicadores

Autora:ChaoZhang, Data: 2024-01-29 10:06:25
Tags:

img

Resumo

A estratégia de negociação composta de múltiplos indicadores integra quatro principais indicadores: divergência de convergência média móvel (MACD), índice de força relativa (RSI), índice de canal de commodities (CCI) e índice de força relativa estocástica (StochRSI).

Estratégia lógica

Esta estratégia baseia-se essencialmente em quatro indicadores:

  1. MACD: Calcula a diferença entre as médias móveis rápidas e lentas para julgar o ímpeto e as tendências dos preços.

  2. RSI: Calcula a magnitude das mudanças de preço ao longo de um período de tempo. Um RSI acima de 70 indica condições de sobrecompra e abaixo de 30 sobrevenda. Esta estratégia usa 70 e 30 como limiares.

  3. CCI: mede a dinâmica dos preços através do cálculo do desvio percentual do preço em relação à sua média móvel.

  4. StochRSI: combina Stochastics e RSI. Uma cruz de ouro entre as linhas StochRSI %K e %D sinaliza uma compra, enquanto uma cruz de morte sinaliza uma venda.

Só quando os quatro indicadores preencherem os critérios simultaneamente será gerado um sinal de compra ou venda real.

Vantagens

As principais vantagens desta estratégia de múltiplos indicadores são:

  1. Filtra sinais falsos exigindo o acordo de todos os indicadores, evitando perseguir os tops ou o pânico vendendo fundos.

  2. Captura as tendências primárias em diferentes dimensões, combinando diferentes perspectivas de indicadores.

  3. Grande espaço de otimização de parâmetros para ajustar cada indicador para um desempenho geral ótimo.

  4. As ponderações podem ser ajustadas com base em mercados de alta ou baixa para se concentrar em estratégias de tendência ou média de reversão.

Riscos

Os principais riscos são:

  1. Os indicadores podem gerar falsos sinais simultâneos, desencadeando negociações incorretas.

  2. Os preços podem mover-se violentamente o suficiente para sinais falsos simultâneos em todos os indicadores.

  3. Sinais de compra atrasados à medida que os indicadores se alinham.

  4. Difícil de otimizar muitos parâmetros, possivelmente sobreajustado.

As mitigações incluem ajuste de parâmetros, perdas de parada e controle de dimensionamento de posição.

Oportunidades de melhoria

Oportunidades de melhoria:

  1. Teste combinações com mais indicadores como KD, Bollinger Bands para encontrar o portfólio ideal.

  2. Otimizar parâmetros para o melhor desempenho geral, talvez através de aprendizagem de máquina.

  3. Personalizar parâmetros para diferentes unidades populacionais e setores.

  4. Adicione mecanismos de stop loss no código da estratégia, como vender quando o preço ultrapassa o suporte.

  5. Selecionar ações com um desempenho forte dentro dos setores para melhorar os retornos da carteira.

Conclusão

Esta estratégia integra sinais em quatro principais indicadores MACD, RSI, CCI e StochRSI. Ao definir critérios de entrada e saída rigorosos com base na análise de vários prazos, pode identificar efetivamente pontos de virada do mercado. Refinamentos como otimização de parâmetros, atualização do universo de ações e adição de paradas podem melhorar ainda mais o desempenho.


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

//@version=4
strategy("MACD RSI CCI StochRSI Strategy", shorttitle="MRCSS", overlay=true)

// MACD göstergesi
fastLength = input(12, title="Fast Length")
slowLength = input(26, title="Slow Length")
signalLength = input(9, title="Signal Length")
[macdLine, signalLine, _] = macd(close, fastLength, slowLength, signalLength)

// RSI göstergesi
rsiLength = input(14, title="RSI Length")
rsiLevel = input(70, title="RSI Overbought Level")
rsiValue = rsi(close, rsiLength)

// CCI göstergesi
cciLength = input(8, title="CCI Length")
cciLevel = input(100, title="CCI Overbought Level")
cciValue = cci(close, cciLength)

// Stochastic Oscillator göstergesi
stochLength = input(14, title="Stoch Length")
stochK = input(3, title="Stoch K")
stochD = input(3, title="Stoch D")
stochValue = stoch(close, high, low, stochLength)
stochDValue = sma(stochValue, stochD)

// Alış ve Satış Sinyalleri
buySignal = crossover(macdLine, signalLine) and rsiValue < rsiLevel and cciValue < cciLevel and stochValue > stochDValue
sellSignal = crossunder(macdLine, signalLine) and rsiValue > (100 - rsiLevel) and cciValue > (100 - cciLevel) and stochValue < stochDValue

// Ticaret stratejisi uygula
strategy.entry("Buy", strategy.long, when = buySignal)
strategy.close("Buy", when = sellSignal)
strategy.entry("Sell", strategy.short, when = sellSignal)
strategy.close("Sell", when = buySignal)

// Göstergeleri çiz
hline(rsiLevel, "RSI Overbought", color=color.red)
hline(100 - rsiLevel, "RSI Oversold", color=color.green)
hline(cciLevel, "CCI Overbought", color=color.red)
hline(100 - cciLevel, "CCI Oversold", color=color.green)

// Grafik üzerinde sinyal okları çiz
plotshape(series=buySignal, title="Buy Signal", color=color.green, style=shape.triangleup, location=location.belowbar, size=size.small)
plotshape(series=sellSignal, title="Sell Signal", color=color.red, style=shape.triangledown, location=location.abovebar, size=size.small)


Mais.