Estratégia da média móvel do CRSI

Autora:ChaoZhang, Data: 2024-02-02 18:12:17
Tags:

img

Resumo

Esta estratégia constrói um indicador CRSI composto personalizado, tomando a média do RSI, a força de alta/baixa e a taxa de variação de preços em percentagem, e negociando com base na média móvel do CRSI cruzando níveis fixos.

Estratégia lógica

A estratégia primeiro calcula o RSI de 3 dias do preço para avaliar se o preço está sobrecomprado ou sobrevendido. Enquanto isso, calcula o poder de touro / urso do preço para julgar o impulso. Também calcula a classificação percentual da taxa de mudança de preço (ROC) para verificar a velocidade relativa da mudança de preço. Em seguida, leva a média desses três indicadores para construir um indicador composto personalizado CRSI, que reflete a condição geral do preço. Finalmente, calcula a média móvel simples de 2 dias (MA) do CRSI. Quando o MA cruza acima do nível de 40, ele vai longo. Quando o MA cruza abaixo do nível de 70, ele sai de posições longas.

Análise das vantagens

Esta estratégia combina vários indicadores para construir o indicador CRSI personalizado, tornando os sinais de negociação mais confiáveis. O RSI pode dizer se o preço está superaquecido ou sobrevendido. O poder de touro / urso pode julgar o impulso. O ROC verifica a rapidez com que o preço está mudando. Combiná-los juntos no CRSI torna os sinais de negociação mais abrangentes e confiáveis. Além disso, o uso do MA também ajuda a filtrar sinais falsos.

Análise de riscos

Embora esta estratégia use múltiplos indicadores para uma combinação, ainda corre o risco de gerar sinais falsos em certas condições de mercado. Por exemplo, em mercados de faixa, RSI, ROC e outros indicadores podem produzir sinais de compra e venda freqüentes, enquanto na verdade o preço não tem uma tendência clara. Ou alguns indicadores podem atrasar e atrasar a geração de sinais de negociação após um evento súbito. Essas situações podem causar perdas. Os riscos podem ser reduzidos por otimização de parâmetros ou adição de outras condições de filtragem.

Orientações de otimização

Aqui estão alguns aspectos que poderiam otimizar esta estratégia: 1) Otimizar os parâmetros do RSI, poder de alta/baixa e ROC para tornar o CRSI mais estável e confiável; 2) Adicionar outros indicadores auxiliares como KDJ, MACD na combinação para sinais mais abrangentes; 3) Otimizar os parâmetros MA para reduzir o risco de atraso; 4) Adicionar condições de stop loss para controlar perdas únicas; 5) Incorporar indicadores de longo prazo para julgar o status da tendência, evitando o excesso de negociação nos mercados de faixa de entrada.

Conclusão

Esta estratégia constrói um indicador personalizado CRSI baseado na média do RSI, poder de touro / urso e ROC, e negocia no MA do CRSI cruzando níveis fixos. Tal combinação de múltiplos indicadores pode tornar os sinais de negociação mais estáveis e confiáveis.


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

//@version=3
src = close, lenrsi = 3, lenupdown = 2, lenroc = 100, malengt = 2, low = 40, high = 70, a = 1, vlow = 20
updown(s) => 
    isEqual = s == s[1]
    isGrowing = s > s[1]
    ud = 0.0
    ud := isEqual ? 0 : isGrowing ? (nz(ud[1]) <= 0 ? 1 : nz(ud[1])+1) : (nz(ud[1]) >= 0 ? -1 : nz(ud[1])-1)
    ud
rsi = rsi(src, lenrsi)
updownrsi = rsi(updown(src), lenupdown)
percentrank = percentrank(roc(src, 1), lenroc)
crsi = avg(rsi, updownrsi, percentrank)
MA = sma(crsi, malengt)

band1 = 70
band0 = 40
band2 = 20

ColorMA = MA>=band0 ? lime : red

p1 = plot(MA, title="BuyNiggers", style=line, linewidth=4, color=ColorMA)

p2 = plot(low, title="idk", style=line, linewidth=2, color=blue)
p3 = plot(high, title="idk2", style=line, linewidth=2, color=orange)
p4 = plot(vlow, title="idk3", style=line, linewidth=1, color=red)

//@version=2
strategy("CMARSI")


if crossover(MA, band0)
    strategy.entry("buy", strategy.long, 1, when=strategy.position_size <= 0)
    
if crossunder(MA, band1)
    strategy.exit("close", "buy",  1, profit=1, stop=1)
    



plot(strategy.equity)


Mais.