
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 .
A lógica central da estratégia é:
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.
A estratégia tem as seguintes vantagens:
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.
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.
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.
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.
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.
A estratégia também apresenta os seguintes principais riscos:
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.
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.
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.
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.
Os principais pontos de otimização da estratégia são:
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.
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.
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.
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.
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.
Melhorias integradasA integração com outros tipos de estratégias ou modelos, formando um mecanismo de votação e aumentando a estabilidade do julgamento.
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.
/*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)