Strategi ini menggunakan pendekatan analisis kuantitatif hibrid, menggabungkan model pengedaran binomial dan analisis regresi, untuk mengenal pasti rejim pasaran yang berbeza. Strategi pertama mengira petunjuk Purata Bergerak Sederhana (SMA) dan Bollinger Bands (BB), kemudian mengira skor Z berdasarkan purata dan penyimpangan standard pulangan sejarah. Apabila skor Z di bawah ambang bawah dan harga di bawah jalur bawah, strategi memasuki kedudukan panjang; apabila skor Z di atas ambang atas dan harga di atas jalur atas, strategi menutup kedudukan.
Prinsip utama strategi ini adalah menggunakan Z-score untuk mengukur kedudukan pulangan semasa berbanding dengan pengedaran pulangan sejarah. Rumus untuk mengira Z-score adalah: (Pulangan semasa - Purata Pulangan Sejarah) / Penyimpangan Standard Pulangan Sejarah. Z-score yang lebih tinggi menunjukkan bahawa pulangan semasa lebih melampau dan kemungkinan overbought lebih tinggi; Z-score yang lebih rendah menunjukkan bahawa pulangan semasa lebih melampau dan kemungkinan oversold lebih tinggi. Pada masa yang sama, strategi ini juga menggabungkan penunjuk Bollinger Bands, menggunakan harga harga di atas atau di bawah kedua-dua band sebagai pengesahan sekunder. Strategi ini menghasilkan isyarat perdagangan hanya apabila Z-score dan Bollinger Bands secara serentak memenuhi keadaan palsu. Gabungan ini dapat mengurangkan kejadian isyarat secara berkesan.
Strategi Kuantitatif Z-Score Binomial Hibrid adalah strategi perdagangan kuantitatif berdasarkan prinsip statistik, mengenal pasti peluang overbought dan oversold yang berpotensi dengan membandingkan pulangan semasa dengan pengedaran pulangan sejarah. Di samping itu, strategi menggunakan penunjuk Bollinger Bands untuk pengesahan sekunder, meningkatkan kebolehpercayaan isyarat. Peraturan strategi jelas dan mudah dilaksanakan dan dioptimumkan, tetapi juga menghadapi cabaran seperti sensitiviti parameter, risiko trend, risiko overfit, dll. Pada masa akan datang, strategi boleh dioptimumkan dari segi parameter dinamik, penapisan trend, pengoptimuman portfolio, mekanisme stop-loss dan take-profit, dll., untuk meningkatkan daya adaptasinya dan ketahanan. Secara keseluruhan, strategi ini menyediakan pendekatan yang mudah namun berkesan untuk perdagangan kuantitatif yang lebih lanjut, layak untuk diteroka dan disempurnakan.
/*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)