
A estratégia usa um método de análise quantitativa mista, combinando dois modelos de distribuição e análise de regressão, para identificar diferentes estados de mercado. A estratégia primeiro calcula os indicadores de média móvel simples (SMA) e faixa de Bryn (BB) e, em seguida, calcula um Z-score com base na média e diferença padrão de retornos históricos. A estratégia abre uma posição quando a Z-score é inferior ao valor de queda inferior e o preço é inferior ao trajeto de queda. A estratégia abre uma posição mais alta quando a Z-score é superior ao valor de queda superior e o preço é superior ao trajeto de queda.
O principal princípio da estratégia é usar a pontuação Z para medir a posição do retorno atual em relação à distribuição de retorno histórico. A fórmula de cálculo da pontuação Z é: ((retorno atual - média de retorno histórico) / diferença de padrão de retorno histórico. Quanto maior a pontuação Z, maior a probabilidade de superação do retorno atual; quanto menor a pontuação Z, maior a probabilidade de superação do retorno atual.
A estratégia de quantificação de pontuação Z de binário híbrido é uma estratégia de negociação quantitativa baseada em princípios estatísticos para identificar potenciais oportunidades de sobrevenda e sobrevenda por meio da comparação do retorno atual com a distribuição de retorno histórico. Ao mesmo tempo, a estratégia usa o índice de correlação de Binary para a dupla confirmação, aumentando a confiabilidade do sinal. As regras da estratégia são claras, fáceis de implementar e otimizar, mas também enfrentam desafios como sensibilidade a parâmetros, risco de tendência, risco de sobreajuste.
/*backtest
start: 2023-05-22 00:00:00
end: 2024-05-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Estratégia Híbrida Quantitativa", overlay=true)
// Definição de parâmetros
sma_length = input.int(20, title="Período da SMA")
threshold_high = input.float(1.5, title="Threshold Alto")
threshold_low = input.float(-1.5, title="Threshold Baixo")
lookback_period = input.int(252, title="Período de Retorno Histórico (dias)")
// Funções auxiliares
f_sma(source, length) =>
ta.sma(source, length)
f_bollinger_band(source, length, mult) =>
basis = ta.sma(source, length)
dev = mult * ta.stdev(source, length)
[basis + dev, basis - dev]
// Cálculo dos indicadores
sma = f_sma(close, sma_length)
[upper_band, lower_band] = f_bollinger_band(close, sma_length, 2)
// Regime de Mercado: Binomial
retornos = ta.change(close, 1)
media_retornos = ta.sma(retornos, lookback_period)
desvio_padrao_retornos = ta.stdev(retornos, lookback_period)
// Indicador de Regime: Z-Score
z_score = (retornos - media_retornos) / desvio_padrao_retornos
// Sinal de Compra e Venda
sinal_compra = z_score < threshold_low and close < lower_band
sinal_venda = z_score > threshold_high and close > upper_band
// Execução de Ordem
if (sinal_compra)
strategy.entry("Long", strategy.long)
if (sinal_venda)
strategy.close("Long")
// Plotagem dos Indicadores
plot(sma, title="SMA", color=color.blue)
plot(upper_band, title="Upper Bollinger Band", color=color.red)
plot(lower_band, title="Lower Bollinger Band", color=color.green)
hline(threshold_high, "Threshold Alto", color=color.red, linestyle=hline.style_dashed)
hline(threshold_low, "Threshold Baixo", color=color.green, linestyle=hline.style_dashed)
plot(z_score, title="Z-Score", color=color.purple)