
Strategi ini menggunakan metode analisis kuantitatif campuran yang menggabungkan dua model distribusi dan analisis regresi untuk mengidentifikasi kondisi pasar yang berbeda. Strategi ini pertama-tama menghitung rata-rata bergerak sederhana (SMA) dan indikator Bollinger Bands (BB), lalu menghitung skor Z berdasarkan rata-rata dan standar deviasi dari laba historis. Strategi ini membuka posisi lebih banyak ketika skor Z lebih rendah dari harga terendah dan harga lebih rendah dari harga terendah.
Prinsip inti dari strategi ini adalah menggunakan skor Z untuk mengukur posisi return saat ini terhadap distribusi return historis. Rumus perhitungan skor Z adalah: ((Return saat ini - rata-rata return historis) / standar deviasi return historis. Nilai Z yang lebih tinggi menunjukkan bahwa return saat ini melampaui batas ekstrem, semakin besar kemungkinan overbought; Nilai Z yang lebih rendah menunjukkan bahwa return saat ini melampaui batas ekstrem, semakin besar kemungkinan oversold.
Strategi kuantifikasi skor Z biner hibrida adalah strategi perdagangan kuantitatif yang didasarkan pada prinsip statistik untuk mengidentifikasi peluang overbought dan oversold potensial dengan membandingkan distribusi pengembalian saat ini dengan distribusi pengembalian historis. Selain itu, strategi ini menggunakan indikator Bollinger Bands untuk konfirmasi ganda, meningkatkan keandalan sinyal. Aturan strategi jelas, mudah diimplementasikan dan dioptimalkan, tetapi juga menghadapi tantangan seperti sensitif parameter, risiko tren, risiko overfit.
/*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)