Estratégia de combinação de indicador de cruzamento de média móvel e indicador de reversão


Data de criação: 2023-12-13 15:20:20 última modificação: 2023-12-13 15:20:20
cópia: 0 Cliques: 682
1
focar em
1621
Seguidores

Estratégia de combinação de indicador de cruzamento de média móvel e indicador de reversão

Visão geral

Esta estratégia combina três indicadores, a média móvel, o índice de força relativa e o índice de canais de mercadorias, formando uma estratégia mais completa de acompanhamento de tendências e combinação de indicadores. Sua idéia básica é usar indicadores de tendência para confirmar a tendência e, depois de formar uma tendência, usar indicadores de sinais de reversão para obter uma entrada mais precisa.

Princípio da estratégia

  1. O preço médio é calculado usando hl2.

  2. Calcule o indicador CCI de 14 ciclos para determinar a tendência de grande nível. Quando o CCI é maior que 0, a tendência é para cima, e menor que 0, a tendência é para baixo.

  3. Calcule a linha rápida do indicador RSI de 14 períodos e a linha lenta do indicador RSI de 50 períodos. Quando a linha rápida atravessa a linha lenta, gera um sinal de compra, e quando a linha rápida atravessa a linha lenta, gera um sinal de venda.

  4. Só se produz um sinal de negociação real quando o indicador CCI coincide simultaneamente com a direção do sinal do indicador RSI. Ou seja, só se compra quando o CCI é maior do que 0 e o RSI cruza a linha lenta na linha rápida e só se vende quando o CCI é menor do que 0 e o RSI cruza a linha lenta abaixo da linha rápida.

  5. Ajudar a julgar o movimento de detalhes, evitando falsas rupturas, calculando se o preço está acima ou abaixo da média móvel de 14 períodos hl2. O sinal de compra só é gerado quando o preço está acima da média de 14 períodos hl2 e do indicador RSI, e o sinal de venda só é gerado quando o preço está abaixo da média de 14 períodos hl2 e do indicador RSI.

Análise de vantagens

  1. A estratégia combina o discernimento de tendências e sinais de reversão, permitindo a entrada em tempo hábil após o início de uma tendência e o melhor desempenho através do discernimento de pontos de saída através de indicadores de sinais de reversão.

  2. O índice de canais de mercadorias é preciso para avaliar as tendências de grande escala, evitando a escolha errada da direção de negociação.

  3. O cruzamento de linhas rápidas e lentas do índice de intensidade relativa serve como sinal revelador mais estável e confiável, evita o atraso da média móvel e pode capturar a reversão do preço em tempo hábil.

  4. Comparando o tamanho do preço com o da linha média, pode-se filtrar ainda mais os sinais errados causados por falsas rupturas.

  5. No geral, a estratégia é mais estável, destacando-se em fortes tendências.

Análise de Riscos

  1. A estratégia é sensível às variedades de negociação e requer parâmetros de otimização para variedades específicas. Se aplicado a cegas em todas as variedades, pode causar um desempenho instável.

  2. Os parâmetros de estratégia, como a média de 14 e a média de 50 períodos, precisam ser ajustados de acordo com os diferentes mercados. Se os parâmetros forem mal definidos, isso também pode levar a um mau desempenho.

  3. O CCI não é perfeito apenas para determinar a direção da tendência de um grande nível, e há um certo atraso.

  4. Há uma combinação de indicadores de sinal de retorno, e pode haver um certo grau de otimização excessiva. Isso também precisa ser testado com um teste de retrocesso rigoroso.

Direção de otimização

  1. Pode-se considerar a inclusão de mais indicadores de tendências de grande escala, como DMI, ADX, etc., para que a tendência seja mais precisa.

  2. Aumentar a lógica de stop-loss. Por exemplo, se o preço voltar a regressar uma certa amplitude após o surgimento de um sinal de reversão, pode-se considerar a saída de stop-loss para reduzir a perda.

  3. Optimizar os parâmetros para que sejam mais adequados a uma variedade de transações específica. Por exemplo, aumentar o parâmetro de ciclo de linha lenta ou ajustar a forma de calcular o preço médio.

  4. Construir uma combinação de parâmetros de otimização, selecionando os melhores parâmetros para diferentes variedades, o que pode aumentar significativamente a aplicabilidade da estratégia.

  5. Adicionar indicadores de energia, para evitar sinais enganosos quando a energia é insuficiente.

Resumir

A estratégia tem uma estrutura completa, que integra um bom entendimento de tendências e indicadores de reversão. Em teoria, a estratégia pode obter um excelente desempenho. No entanto, na prática, é necessário otimizar os parâmetros e o modelo para a variedade de negociação, reduzindo o risco de sobre-conformidade.

Código-fonte da estratégia
/*backtest
start: 2022-12-06 00:00:00
end: 2023-12-12 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/
// © SuchitRaju

//@version=4
strategy("MA RSI CCI")

price_up = if(close > open and close > sma(hl2,14))
    1
else
    0

price_down = if(open > close and close < sma(hl2,14))
    1
else
    0
// 

cci_indicator = cci(hl2, 14)
// plot(cci_indicator, color=color.blue)

rsi_slow = sma(rsi(close, 14), 50)
// plot(rsi_slow, color=color.red)

rsi_fast = rsi(close, 14)
// plot(rsi_fast, color=color.green)

isCrossover = if(rsi_fast > rsi_slow and cci_indicator > 0)
    1
else
    0
// plotshape(isCrossover, style = shape.arrowup, color = color.green, size = size.huge)

isCrossunder = if(rsi_fast < rsi_slow and cci_indicator < 0)
    1
else
    0
// plotshape(isCrossunder, style = shape.arrowup, color = color.red, size = size.huge)

// start = timestamp("GMT-5", 2016,9,1,0,0)
// end = timestamp("GMT-5", 2017,9,1,0,0)

// strategy.entry("Long", strategy.long, 1, when = isCrossover and price_up)
// strategy.entry("Short", strategy.short, 1, when = isCrossunder and price_down)
// strategy.close("Long", when = isCrossunder and price_down)
// strategy.close("Short", when = isCrossover and price_up)

strategy.entry("Long", strategy.long, 1, when = isCrossover)
strategy.entry("Short", strategy.short, 1, when = isCrossunder)
strategy.close("Long", when = isCrossunder)
strategy.close("Short", when = isCrossover)