이 전략은 다른 시장 체제를 식별하기 위해 이분법 분포 모델과 회귀 분석을 결합한 하이브리드 정량 분석 접근 방식을 사용합니다. 전략은 먼저 단순 이동 평균 (SMA) 및 볼링거 밴드 (BB) 지표를 계산하고, 이후 역사적 수익의 평균과 표준편차에 따라 Z 점수를 계산합니다. Z 점수가 하위 문턱 이하이고 가격이 하위 대역 이하일 때 전략은 긴 포지션에 진입합니다. Z 점수가 상위 문턱 이상이고 가격이 상위 대역 이상일 때 전략은 포지션을 닫습니다.
이 전략의 핵심 원칙은 역사적 수익률의 분포에 대한 현재 수익률의 위치를 측정하기 위해 Z 점수를 사용하는 것입니다. Z 점수를 계산하는 공식은: (현재 수익률 - 역사적 수익률 평균) / 역사적인 수익률 표준 편차. 높은 Z 점수는 현재 수익률이 더 극단적이고 과잉 매출의 확률이 더 높다는 것을 나타냅니다. 낮은 Z 점수는 현재 수익률이 더 극단적이며 과잉 매출의 확률이 더 높다는 것을 나타냅니다. 동시에 전략은 볼링거 밴드 지표도 통합하여 두 밴드 이상 또는 아래의 가격 브레이크를 2차 확인으로 사용합니다. 이 전략은 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)