
Стратегия использует смешанный метод количественного анализа, сочетающий в себе две модели распределения и регрессионный анализ, чтобы идентифицировать различные состояния рынка. Сначала стратегия рассчитывает показатели простого движущегося среднего значения (SMA) и Брин-бенда (BB), а затем рассчитывает Z-оценку на основе среднего и стандартного разрыва исторических доходов.
Основным принципом этой стратегии является использование Z-оценки для измерения текущей отдачи относительно распределения исторической отдачи. Формула Z-оценки состоит из следующих вычислений: “Стоимость текущей отдачи - средняя величина исторической отдачи) / стандартная разница в исторической отдаче. Чем выше Z-оценка, тем выше вероятность того, что текущая отдача превышает пределы, тем выше вероятность перекупа.
Стратегия количественного оценки с гибридным биполитом Z - это стратегия количественного трейдинга, основанная на статистических принципах, которая идентифицирует потенциальные возможности перекупа и перепродажи, сравнивая текущий доход с историческим распределением доходов. В то же время, стратегия использует индикатор Бринга для двойного подтверждения, повышая надежность сигнала. Правила стратегии ясны, легко реализовываются и оптимизируются, но в то же время сталкиваются с такими проблемами, как чувствительность к параметрам, риск тренда, риск перенастройки. В будущем стратегия может быть оптимизирована с помощью динамических параметров, фильтрации тренда, оптимизации комбинации, стоп-лосса и стоп-стоп, чтобы повысить ее адаптацию и устойчивость.
/*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)