Diese Strategie verwendet einen hybriden quantitativen Analyseansatz, der das binomische Verteilungsmodell und die Regressionsanalyse kombiniert, um verschiedene Marktregime zu identifizieren. Die Strategie berechnet zuerst die Indikatoren Simple Moving Average (SMA) und Bollinger Bands (BB), berechnet dann den Z-Score auf der Grundlage der mittleren und Standardabweichung historischer Renditen. Wenn der Z-Score unter der unteren Schwelle liegt und der Preis unter dem unteren Band liegt, tritt die Strategie in eine Long-Position ein; wenn der Z-Score über der oberen Schwelle liegt und der Preis über dem oberen Band liegt, schließt die Strategie die Position.
Der Kernprinzip dieser Strategie besteht darin, den Z-Score zu verwenden, um die Position der aktuellen Renditen in Bezug auf die Verteilung der historischen Renditen zu messen. Die Formel zur Berechnung des Z-Score ist: (Current Return - Historical Return Mean) / Historical Return Standard Deviation. Ein höherer Z-Score zeigt an, dass die aktuelle Rendite extremer ist und die Wahrscheinlichkeit eines Überkaufs höher ist; ein niedrigerer Z-Score zeigt an, dass die aktuelle Rendite extremer ist und die Wahrscheinlichkeit eines Überverkaufs höher ist. Gleichzeitig enthält die Strategie auch den Bollinger Bands-Indikator, der Preisbreaks über oder unter beiden Bands als sekundäre Bestätigung verwendet. Die Strategie generiert nur Handelssignale, wenn die Z-Score und die Bollinger Bands gleichzeitig falsche Bedingungen erfüllen. Diese Kombination kann das Auftreten von Signalen effektiv reduzieren.
Die Hybrid Binomial Z-Score Quantitative Strategy ist eine quantitative Handelsstrategie, die auf statistischen Prinzipien basiert und potenzielle Überkauf- und Überverkaufsmöglichkeiten identifiziert, indem aktuelle Renditen mit der Verteilung historischer Renditen verglichen werden. Darüber hinaus verwendet die Strategie den Bollinger Bands Indikator zur sekundären Bestätigung, um die Signalzuverlässigkeit zu verbessern. Die Strategieregeln sind klar und einfach zu implementieren und zu optimieren, aber sie steht auch vor Herausforderungen wie Parameterempfindlichkeit, Trendrisiko, Überpassungsrisiko usw. In Zukunft kann die Strategie in Bezug auf dynamische Parameter, Trendfilterung, Portfoliooptimierung, Stop-Loss- und Take-Profit-Mechanismen usw. optimiert werden, um ihre Anpassungsfähigkeit und Robustheit zu verbessern. Insgesamt bietet diese Strategie einen einfachen, aber effektiven Ansatz für weiteren quantitativen Handel, der der Erforschung und Verfeinerung würdig
/*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)