Receber por email
← Voltar para o catálogo

longbridge-quant-stats

Quantitative statistics framework for time-series analysis using Longbridge price data — ADF unit root test (stationarity), cointegration (Engle-Granger / Johansen), GARCH volatility modelling (conditional heteroskedasticity), regression diagnostics (Durbin-Watson / Breusch-Pagan), bootstrap confidence intervals, hypothesis tests (t-test / F-test). Requires statsmodels and scipy. Triggers: "量化统计",

27estrelas
Atualizado há 4 meses

Ver no GitHub ↗ Licença: MIT

Como adicionar

/plugin marketplace add longbridge/skills

O comando exato pode variar conforme o repositório. Confira o README no GitHub.

Para o autor da skill

Cole no README do seu repo

Mostra que sua skill está catalogada na Skillteca, gera backlink e tráfego rastreável.

[![Skillteca](https://www.skillteca.com.br/api/badge/longbridge-quant-stats/svg)](https://www.skillteca.com.br/skills/longbridge-quant-stats)

Skills relacionadas

Ver todas de Dados e Análise →

Alerta por categoria

Receba novas skills de Dados e Análise toda segunda

1 email curto, só com as skills novas de Dados e Análise. 4 minutos de leitura, sem spam, cancela com 1 clique.

Você confirma o email no primeiro envio. Sem spam. Cancela com 1 clique.

Ler descrição completa

longbridge-quant-stats

Apply rigorous statistical methods to financial time-series data retrieved from Longbridge — test assumptions before modelling, diagnose residuals, and produce statistically sound inferences.

Response language: match the user's input language — Simplified Chinese / Traditional Chinese / English.

When to use

  • "帮我做 ADF 单位根检验", "run an ADF test on this price series", "幫我做 ADF 單位根檢驗"
  • "AAPL 和 MSFT 有没有协整关系", "are AAPL and MSFT cointegrated"
  • "用 GARCH 建模波动率", "model volatility with GARCH"
  • "回归残差有没有自相关", "check residual autocorrelation (Durbin-Watson)"
  • "用 Bootstrap 估计置信区间", "bootstrap confidence interval for Sharpe ratio"

For factor IC/IR testing, use longbridge-factor-research. For pairs-trading cointegration application, use longbridge-pairs-trading.

Prerequisites

pip install statsmodels scipy numpy pandas

Workflow and test catalogue

Step 1 — Fetch price data

longbridge kline --help
longbridge kline <SYMBOL> --period day --count 252 --format json

Extract the close price series. Compute log returns: r_t = ln(P_t / P_{t-1}).

Step 2 — Stationarity: ADF Unit Root Test

When to use: Before regression or time-series modelling — most models require stationary series.

Python (statsmodels):

from statsmodels.tsa.stattools import adfuller
result = adfuller(series, autolag='AIC')
# result: (adf_stat, p_value, lags, n_obs, critical_values, icbest)

Interpretation:

  • p < 0.05 → reject unit root → series is stationary.
  • p ≥ 0.05 → fail to reject → series has unit root → difference the series.
  • Log prices: usually non-stationary. Log returns: usually stationary.

Step 3 — Cointegration Test

When to use: Two non-stationary series may share a long-run equilibrium (pairs trading).

Engle-Granger (two-series):

from statsmodels.tsa.stattools import coint
t_stat, p_value, critical_values = coint(series_A, series_B)
# p < 0.05 → cointegrated

Johansen (multivariate):

from statsmodels.tsa.vector_ar.vecm import coint_johansen
result = coint_johansen(df, det_order=0, k_ar_diff=1)
# trace statistic vs critical values at 90%/95%/99%

Report: test statistic, p-value, critical values, and cointegrating vector.

Step 4 — GARCH Volatility Modelling

When to use: Financial returns show volatility clustering (ARCH effects).

from arch import arch_model
model = arch_model(returns * 100, vol='Garch', p=1, q=1)
res = model.fit(disp='off')
print(res.summary())

Note: pip install arch required in addition to statsmodels.

Output: omega, alpha (ARCH), beta (GARCH) coefficients. Persistence = alpha + beta. If > 0.95, volatility is highly persistent.

ARCH-LM test first (to verify ARCH effects exist):

from statsmodels.stats.diagnostic import het_arch
lm_stat, p_value, f_stat, f_p = het_arch(residuals)

Step 5 — Regression Diagnostics

After running OLS (statsmodels.api.OLS), check:

| Test | Purpose | Command | |---|---|---| | Durbin-Watson | Serial autocorrelation in residuals | statsmodels.stats.stattools.durbin_watson(resid) | | Breusch-Pagan | Heteroskedasticity | statsmodels.stats.diagnostic.het_breuschpagan(resid, exog) | | Jarque-Bera | Normality of residuals | statsmodels.stats.stattools.jarque_bera(resid) | | VIF | Multicollinearity | statsmodels.stats.outliers_influence.variance_inflation_factor |

Interpret Durbin-Watson: ~2.0 = no autocorrelation; < 1.5 = positive autocorrelation; > 2.5 = negative autocorrelation.

Step 6 — Bootstrap Confidence Intervals

When to use: Non-normal distributions; small samples; estimating CI for Sharpe ratio, IC, or any statistic.

import numpy as np

def bootstrap_ci(data, stat_fn, n_boot=10000, ci=0.95):
    boots = [stat_fn(np.random.choice(data, len(data), replace=True))
             for _ in range(n_boot)]
    lo = np.percentile(boots, (1 - ci) / 2 * 100)
    hi = np.percentile(boots, (1 + ci) / 2 * 100)
    return lo, hi

# Example: Sharpe ratio CI
sharpe_lo, sharpe_hi = bootstrap_ci(returns, lambda x: x.mean() / x.std() * np.sqrt(252))

Step 7 — Hypothesis Tests

| Test | Use case | Function | |---|---|---| | t-test (one sample) | Is mean IC > 0? | scipy.stats.ttest_1samp(ic_series, 0) | | t-test (two sample) | Is long portfolio return > short portfolio? | scipy.stats.ttest_ind(long_ret, short_ret) | | F-test / ANOVA | Are returns different across deciles? | scipy.stats.f_oneway(*decile_returns) | | Mann-Whitney U | Non-parametric alternative to t-test | scipy.stats.mannwhitneyu(a, b) |

Always report: test statistic, p-value, degrees of freedom, and conclusion at 5% significance level.

CLI

longbridge kline --help
longbridge kline <SYMBOL> --period day --count 252 --format json

Output

For each test present:

  1. Test name and null hypothesis.
  2. Test statistic and p-value.
  3. Critical values (where applicable).
  4. Conclusion at 5% significance.
  5. Practical implication for the user's use case.

Error handling

| Situation | 简体回复 | 繁體回覆 | English reply | |---|---|---|---| | command not found: longbridge | 请安装 longbridge-terminal 或检查 MCP 配置。 | 請安裝 longbridge-terminal 或檢查 MCP 配置。 | Install longbridge-terminal or check MCP config. | | ModuleNotFoundError: statsmodels | 请运行 pip install statsmodels scipy numpy pandas。 | 請執行 pip install statsmodels scipy numpy pandas。 | Run pip install statsmodels scipy numpy pandas. | | Insufficient data (< 30 observations) | 样本量过小,统计结论可靠性有限,建议延长数据期。 | 樣本量過小,建議延長數據期。 | Sample too small; extend the data period for reliable results. | | ARCH module missing for GARCH | 请运行 pip install arch 以使用 GARCH 模型。 | 請執行 pip install arch 以使用 GARCH 模型。 | Run pip install arch for GARCH modelling. |

Related skills

  • longbridge-factor-research — IC/IR factor testing
  • longbridge-pairs-trading — cointegration-based pairs trading
  • longbridge-correlation — cross-asset correlation analysis
  • longbridge-volatility-strategy — volatility modelling and trading

File layout

skills/longbridge-quant-stats/
└── SKILL.md
Compartilhar X LinkedIn