Esta estratégia integra a média móvel, o índice de força relativa e o índice do canal de commodities, formando uma estratégia relativamente completa de acompanhamento de tendências e combinação de indicadores.
Use hl2 para calcular o preço médio.
Calcule o indicador CCI de 14 períodos para julgar a tendência principal. Quando o CCI é maior que 0, a tendência é ascendente. Quando menor que 0, a tendência é descendente.
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 cruza acima da linha lenta, um sinal de compra é gerado. Quando a linha rápida cruza abaixo da linha lenta, um sinal de venda é gerado.
Os sinais de negociação reais são gerados apenas quando o indicador CCI também corresponde à direção do sinal do indicador RSI. Ou seja, compre apenas quando o CCI for maior que 0 e a linha rápida do RSI cruzar acima da linha lenta, e venda apenas quando o CCI for menor que 0 e a linha rápida do RSI cruzar abaixo da linha lenta.
Comparar o preço com a média móvel de 14 períodos de hl2 para ajudar a julgar a tendência menor, a fim de evitar falhas. Um sinal de compra é gerado apenas quando o preço está acima da média móvel de 14 períodos de hl2 e o indicador RSI cruza para cima. Um sinal de venda é gerado apenas quando o preço está abaixo da média móvel de 14 períodos de hl2 e o indicador RSI cruza para baixo.
Esta estratégia integra o julgamento da tendência e os sinais de reversão para entrar em tempo após o início da tendência e usa indicadores de sinal de reversão para determinar pontos de saída, obtendo assim melhores retornos.
O índice do canal de commodities determina com precisão as principais direções de tendência, evitando escolhas incorretas de direções de negociação.
Os cruzamentos rápidos e lentos de linhas do índice de força relativa servem como sinais favoráveis confiáveis, evitando o problema de atraso das médias móveis e podem capturar as reversões de preços em tempo hábil.
A comparação dos preços com as linhas médias pode filtrar ainda mais falhas que causam sinais errôneos.
Em geral, esta estratégia apresenta uma boa estabilidade e apresenta bons resultados em tendências fortes.
Esta estratégia é sensível às variedades comerciais, exigindo otimização de parâmetros para variedades específicas.
As definições dos parâmetros, tais como as médias móveis de 14 períodos e as médias móveis de 50 períodos, devem ser ajustadas de acordo com os diferentes mercados.
Confiar apenas no CCI para determinar a direcção da tendência principal ainda não é perfeito o suficiente, com algum atraso.
A combinação de indicadores de sinal de reversão é relativamente grande, o que pode levar a um certo grau de otimização excessiva.
Considerar a adição de mais indicadores para avaliar as principais tendências, tais como DMI, ADX, etc., para tornar os julgamentos de tendências mais precisos.
Aumentar a lógica de stop loss. Por exemplo, depois que um sinal de reversão aparece, se o preço voltar a ser chamado por uma certa amplitude, a saída de stop loss pode ser considerada para reduzir as perdas.
Otimizar parâmetros para torná-los mais adequados para variedades de negociação específicas, por exemplo, aumentar o parâmetro de ciclo da linha lenta ou ajustar o método de cálculo do preço médio, etc.
Construir uma combinação de otimização de parâmetros para selecionar os parâmetros ideais para diferentes variedades, o que pode melhorar muito a aplicabilidade das estratégias.
Adicionar indicadores de momento para evitar sinais enganosos quando o momento for insuficiente.
A estrutura geral desta estratégia é completa, integrando o julgamento da tendência e indicadores de reversão, que teoricamente podem obter excelente desempenho. Mas na aplicação real, ainda precisa de otimização de parâmetros e modelos para as variedades comerciais para reduzir o risco de sobreajuste.
/*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)