Estratégia de negociação RSI usando julgamento condicional bayesiano


Data de criação: 2023-12-18 17:09:00 última modificação: 2023-12-18 17:09:00
cópia: 0 Cliques: 857
1
focar em
1621
Seguidores

Estratégia de negociação RSI usando julgamento condicional bayesiano

Visão geral

Este artigo analisa principalmente uma estratégia de negociação quantitativa de uma estratégia de negociação de RSI chamada de aplicar a determinação de condições de Bayes . Esta estratégia calcula a distribuição de probabilidade do indicador RSI, aplicando o Bayes Law para deduzir a probabilidade de que o indicador RSI continue a subir ou cair, para determinar a tendência futura dos preços e obter lucro .

Princípio da estratégia

A lógica central da estratégia é:

  1. Distribuição de probabilidade de um aumento no preço de fechamento em um determinado período A
  2. Calcular a distribuição de probabilidade de se o RSI continuar a subir no período correspondente B
  3. Aplicar a lei de Bayes para calcular a probabilidade de A e B acontecerem simultaneamente
  4. Quando a probabilidade é maior do que a desvalorização, julgar que a tendência vai continuar e tomar um sinal de negociação

Concretamente, a estratégia define primeiro o parâmetro p como o parâmetro de ciclo para calcular o indicador RSI, e r como o intervalo de tempo para a previsão de mudanças futuras nos preços. Em seguida, durante o ciclo p, calcule o número de vezes que o preço de fechamento aumentou, e calcule a distribuição de probabilidade A. Ao mesmo tempo, durante o ciclo p, calcule o número de vezes que o RSI continuou a subir no ciclo r após o fim do ciclo, e calcule a distribuição de probabilidade B.

Aplicando a fórmula da Lei de Bayes, calcula-se a probabilidade de que o preço de fechamento do mercado suba e o RSI continue a subir, simultaneamente, como um indicador de probabilidade final. Quando a probabilidade é maior do que um determinado limiar, a tendência continua a subir e é feita uma operação múltipla. Quando a probabilidade é menor do que o limiar, a tendência é invertida e é feita uma posição de equilíbrio.

Assim, a análise estratégica leva em consideração informações sobre preços e indicadores técnicos, aplica estatísticas de probabilidade e a lei de Bayes para julgar as tendências futuras e gerar sinais de negociação.

Vantagens estratégicas

A estratégia tem as seguintes vantagens:

  1. Combinação de vários tipos de informaçãoA estratégia não considera apenas a informação de preços, mas também a informação de indicadores técnicos, como o RSI, para avaliar as tendências futuras de forma integrada e aumentar a precisão de avaliação.

  2. Probabilidade de previsãoA distribuição de probabilidade estatística permite fazer previsões de probabilidade sobre a direção das mudanças de preço e RSI, em vez de uma simples comparação numérica, para tornar o julgamento mais científico.

  3. Optimização BayesianaA aplicação da lei de Bayes para calcular a probabilidade de correlação, para otimizar a probabilidade estatística original e tornar o julgamento mais preciso.

  4. Parâmetros flexíveisO objetivo é: fornecer uma variedade de parâmetros para ajuste e otimização, com a capacidade de ajustar parâmetros para diferentes mercados e ativos, aumentando a adaptabilidade da estratégia.

  5. Simples e eficazA estratégia é clara, os sinais de negociação são avaliados por meio de cálculos estatísticos e de probabilidade simples, são fáceis de entender e de otimizar, e os resultados são evidentes.

Risco estratégico

A estratégia também apresenta os seguintes principais riscos:

  1. Dependência de parâmetrosO efeito da estratégia depende da configuração de parâmetros, e os diferentes mercados precisam ajustar uma grande quantidade de parâmetros para obter o melhor efeito, aumentando a dificuldade de operação da estratégia.

  2. Erro de probabilidadeA probabilidade calculada pode não corresponder às tendências reais, o que pode levar a um desvio de julgamento devido ao tempo de estatística e à amostra limitada.

  3. Eventos especiaisA correlação entre os preços de mercado e o RSI pode ser afetada por eventos inesperados significativos que podem tornar a estratégia ineficaz.

  4. Indicadores técnicos não são válidosEm alguns mercados, indicadores técnicos, como o RSI, podem produzir sinais de falha, levando ao fracasso do julgamento estratégico.

As soluções para os riscos incluem: otimizar o processo de configuração de parâmetros, ajustar o tempo estatístico e o volume de amostragem, incorporar mais informações auxiliares, casos de intervenção manual anormal, etc.

Otimização de Estratégia

Os principais pontos de otimização da estratégia são:

  1. Quadro de tempo múltiplaA estratégia pode ser executada em múltiplos períodos de tempo (linhas do sol, linhas do horário, etc.) e o julgamento integral pode melhorar a estabilidade.

  2. Mais indicadoresA adição de mais sinais de indicadores técnicos, como a forma da linha K, a média de movimento, etc., proporciona uma base de julgamento mais rica.

  3. Optimização de modelosAplicação de métodos de aprendizagem de máquina para otimizar o modelo de Bayes e tornar o cálculo mais preciso.

  4. Parâmetros dinâmicos: Modulo de otimização dinâmica de parâmetros adicionados, permitindo que os parâmetros sejam ajustados de acordo com as mudanças de mercado em tempo real.

  5. Mecanismo de controle de ventoO objetivo é definir indicadores de controle de vento, como a retirada máxima e a monotonia, para evitar grandes perdas em mercados extremos.

  6. Melhorias integradasA integração com outros tipos de estratégias ou modelos, formando um mecanismo de votação e aumentando a estabilidade do julgamento.

Resumir

Esta estratégia primeiro calcula a distribuição de probabilidade do preço e do indicador RSI, em seguida, usa a lei de Bayes para calcular a probabilidade de composição, gerando um sinal de negociação quando a probabilidade é maior do que o limite dado, para obter lucro. A estratégia integra informações de várias fontes, previsão de probabilidade de aplicação e otimização de Bayes, para obter melhores resultados.

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

//@version=2
// Stealthy7 trading scripts are radikal. You have entered the mystical realm of demonic profit.
// If you like this script, check out my bots at cryptotrader.org/?r=51
// Let me know if you find any improvements to this script. It is beta. 
// Please subscribe.
strategy("Stealthy7 Bayes Conditional RSI Trader Strategy", overlay=true)
p = input(title="Period",  defval=30, minval=5, maxval=500)
t = input(title="Movement Thresh", type=float, defval=1.003, minval=1.001, maxval=1.5, step=0.001)
r = input(title="Look Range",  defval=7, minval=1,maxval=500, step=1)
RSIT = input(title="Jump",  defval=8, minval=1,maxval=99, step=1)
BAYEST = input(title="SM",  defval=3, minval=1,maxval=99, step=1)
RSIP = input(title="RSIP",  defval=14, minval=2,maxval=100, step=1)
countup = 1
countdn = 1
countupS = 1
countdnS = 1
for i = p to 1
    if close[i]/close[i + r] > t
        countup := countup + 1
    else
        countdn := countdn + 1
    if close[i]/close[i + r] < 2 - t
        countupS := countupS + 1
    else
        countdnS := countdnS + 1

rsi = rsi(open,RSIP)

countup2 = 1
countup3 = 1
countup2S = 1
countup3S = 1
for i = p to 1
    if close[i]/close[i + r] > t and rsi[i + r + 1] > rsi[i + r + 2] + RSIT
        countup2 := countup2 + 1
    else
        countup3 := countup3 + 1
    if close[i]/close[i + r] < 2 - t and rsi[i + r + 1] < rsi[i + r + 2] - RSIT
        countup2S := countup2S + 1
    else
        countup3S := countup3S + 1

countup2b = countup2 / p
countup3b = countup3 / p
countupb = countup / p
countdnb = countdn / p

countup2bS = countup2S / p
countup3bS = countup3S / p
countupbS = countupS / p
countdnbS = countdnS / p
bayes = 0
bayes := ((countupb * countup2b) / ((countupb * countup2b) + (countdnb * countup3b))) * 100
bayesS = 0
bayesS := ((countupbS * countup2bS) / ((countupbS * countup2bS) + (countdnbS * countup3bS))) * 100
SN1 = sma(bayes,BAYEST)
SN2 = sma(bayesS,BAYEST)
shortCondition = crossunder(bayesS, SN2) //and rsi < 49
longCondition = crossover(bayes, SN1) //and rsi > 59
if (longCondition)
    strategy.entry("Long", strategy.long)
if (shortCondition)
    strategy.entry("Short", strategy.short)