Este artigo analisa principalmente uma estratégia de negociação quantitativa chamada
A lógica central desta estratégia é a seguinte:
Especificamente, a estratégia define primeiro o parâmetro p como o parâmetro do ciclo para calcular o indicador RSI e r como o intervalo de tempo para prever mudanças futuras de preços. Em seguida, dentro do ciclo p, conte o número de vezes que o preço de fechamento sobe para calcular a distribuição de probabilidade A. Ao mesmo tempo, dentro do ciclo p, conte o número de vezes que o RSI continua a subir dentro do ciclo r após o término deste ciclo e calcule a distribuição de probabilidade B.
Após isso, aplique a fórmula Bayesiana para calcular a probabilidade de que as duas condições de
Desta forma, a estratégia considera de forma abrangente as informações de preços e indicadores técnicos, aplica estatísticas de probabilidade e regras bayesianas para julgar tendências futuras e gerar sinais comerciais.
As principais vantagens desta estratégia são:
Combinação de informações múltiplas: A estratégia não considera apenas informações sobre preços, mas também informações sobre indicadores técnicos, como o RSI, para avaliar de forma abrangente as tendências futuras e melhorar a precisão do julgamento.
Previsão de probabilidade: Fazer previsões de probabilidade sobre a direção das mudanças de preço e RSI através de distribuição de probabilidade estatística, em vez de simples comparação numérica, tornando o julgamento mais científico.
Optimização Bayesiana: Use regras bayesianas para calcular probabilidades relevantes e otimizar probabilidades estatísticas originais para fazer julgamentos mais precisos.
Parâmetros flexíveisProporcionar múltiplos parâmetros de ajustamento e otimização para se adequarem a diferentes mercados e ativos e melhorar a adaptabilidade da estratégia.
Simples e eficaz: A ideia da estratégia é clara e simples operações estatísticas e de probabilidade são usadas para gerar julgamentos de sinais de negociação, que é fácil de entender e otimizar, e o efeito é significativo.
Os principais riscos desta estratégia incluem igualmente:
Dependência do parâmetroO desempenho depende fortemente de configurações de parâmetros. Os diferentes mercados precisam ajustar muitos parâmetros para obter resultados ideais, aumentando a complexidade da operação da estratégia.
Erro de probabilidade: Devido ao tempo estatístico e às amostras limitados, a probabilidade calculada pode não corresponder à tendência real, o que leva a um desvio de julgamento.
Eventos especiais: As emergências graves podem afectar a correlação entre os preços de mercado e os indicadores RSI, causando falhas na estratégia.
Falha do indicador técnico: Em algumas situações de mercado, indicadores técnicos como o RSI podem produzir sinais inválidos, levando a falhas no julgamento estratégico.
As soluções incluem: otimizar o processo de definição de parâmetros, ajustar o tempo estatístico e o tamanho da amostra, combinar mais informações auxiliares, intervenção manual em situações anormais, etc.
As principais direcções de otimização desta estratégia incluem:
Quadros de tempo múltiplos: Execução de estratégias em vários prazos (diários, semanais, etc.) para um julgamento integrado para melhorar a estabilidade.
Mais indicadores: Adicionar mais sinais de indicadores técnicos como padrões de candelabro, médias móveis, etc. para enriquecer a base para o julgamento.
Optimização do modelo: Usando aprendizado de máquina etc para otimizar o modelo bayesiano para cálculos mais precisos.
Parâmetros dinâmicos: Adição de módulos de otimização dinâmica para os parâmetros a ajustar em tempo real com as alterações do mercado.
Mecanismo de controlo dos riscos: Definir métricas de risco como a retirada máxima e as frequências de negociação para evitar grandes perdas em mercados extremos.
Reunir melhorias: Em conjunto com outros tipos ou modelos de estratégia, para formar mecanismos de votação e melhorar a estabilidade.
Esta estratégia primeiro calcula estatisticamente as distribuições de probabilidade do preço e do RSI, em seguida, usa regras bayesianas para calcular probabilidades combinadas, gerando sinais de negociação quando as probabilidades excedem os limiares definidos, ganhando assim. Esta estratégia combina informações de várias fontes, alavanca a previsão de probabilidade e a otimização bayesiana para um desempenho de julgamento decente. As principais direções de otimização incluem expansão de prazo, mais indicadores, parâmetros dinâmicos etc. Em conclusão, esta estratégia tem uma idéia única e um efeito notável que vale a pena explorar e aplicar.
/*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)