用 Prophet 做比特币价格预测:零基础也能上手的加密量化实战

·

时间序列分析、Prophet 参数调优、加密货币量化、比特币波动率、加密资产预测

序章:一条没有统计背景的民间量化之路

没有任何高深数学功底,只凭兴趣与 Python,也能写出能把误差压到 15% 以内的比特币价格预测脚本。一段 3000 行代码的摸索之后,我总结出一套适合“路边社量化员”的方法论:

  1. 把对数价格喂进 时间序列建模神器 Prophet
  2. MAPE + Coverage 取代传统 RMSE;
  3. 把“最坏情况”挖出来,而不是赌下一次 ATH。

下文实录整个探索过程、踩坑记忆与未来展望,全部开源,放心食用。


预测:180 天后,最坏情况可能是 16518 美元

第一次测试结果

结论:模型不求精准命中,更关心 比特币价格区间覆盖真实价格 的可信度。

零到一百的代码片段

把日收盘价转对数,再喂进 Prophet;把区间宽度拉到 95%,让“车尾箱”足够大:

from prophet import Prophet, cross_validation, performance_metrics

# 数据准备:自然对数价格
df_p = df.reset_index()[["date", "lnprice"]].rename(
    columns={"date": "ds", "lnprice": "y"}
)

# 模型初始化:乘性季节性 + 95%置信带
model = Prophet(
    uncertainty_samples=1000,
    mcmc_samples=0,
    seasonality_mode="multiplicative",
    interval_width=0.95
)
model.fit(df_p)

# 出 180 天未来窗口
future_dates = model.make_future_dataframe(periods=180)
forecast = model.predict(future_dates)

交叉验证:MAPE 与 Coverage 并排

df_cv = cross_validation(
    model, initial='365.25 days', period='90 days', horizon='180 days')
metrics = performance_metrics(df_cv)

metrics.tail() 输出:当 horizon = 180 天,MAPE ≈ 14% ,Coverage ≈ 70%,足够保守。

👉 在这里查看教你把误差压到 15%的完整 notebook 与数据下载入口

所谓“大趋势”


模型取舍:为何是 Prophet,不是 ARIMA?

方法对趋势的捕捉对季节性的捕捉对异常值敏感度备注
Prophet线性/非线性均可乘性加法任选,自适应异常值归在“ Noise”区间
ARIMA线性(差分后)需手动 SARIMAACF 未迅速递减,BTC 异常值过多

一句话:比特币价格 周期性非线性 + 异常值敏感 + 对数振幅扩张,Prophet 完胜。


陷阱复盘:别被平稳性忽悠

  1. ADF Test 通过 ≠ 可以线性建模
    对数一阶差分后 p-value 很香,但 ACF 图告诉你残差仍在漂移。
  2. SARIMA 的高阶参数地狱
    需要你手动 p,d,q,P,D,Q,s,市面上 BTC 策略往往是“调死调哑”。
  3. 忽略乘性季节性
    非线性周期的一次差分会 低估波动率,错杀一次回测就亏掉共享单车押金。

👉 三套专题示例:如何识别并规避“伪平稳”陷阱


FAQ:读者六大高频提问一次性解答

1. 问:MAPE 为 14% 在实际交易中够用吗?
答:如果策略只需判定 是否需要减仓/对冲 ,区间覆盖即可,14% 已低于期权费,使得保险有意义。

2. 问:为什么不用 LSTM?
答:LSTM 对微调要求、算力、标签工程敏感;Prophet 开箱即用,先把“可行路径”跑通,再投 GPU。

3. 问:95% 不确定区间太宽,如何缩小?
答:拆变量:宏观因子(联邦利率)、链上因子(活跃地址)作为回归器加入 add_regressor,再做后验融合。

4. 问:如何评估短线 7 日窗口?
答:改用 ARIMA-GARCH 或 LightGBM 微观冲击模型,本文侧重 中长期加密资产时间序列预测

5. 问:ETH 等其他币种能用同样套路吗?
答:可以,但要验证 乘性季节 是否成立、MAPE 与 Coverage 是否匹配风险承受度。

6. 问:哪里下载清洗好的日级 BTC 价格数据?
答:文中源码已包含;另外主流交易所 API 均可免费获取“OHLCV”1D 粒度数据。


下一步:升到“2.0 版本”的三条路线图

  1. 引入外部回归器
    通胀预期、美债收益率、ETF 净流量共 7 个维度,重测 Coverage 能否拉上 80%+。
  2. 模型融合
    Prophet baseline 打底 + LightGBM 量价特征 + BVAR 宏观冲击,做 Stacking
  3. 注意力机制微调
    在残差上再跑一个 Temporal Fusion Transformer (TFT),用短期冲击补 intraday 颗粒。

加密市场像极了狂野西部:你不会永远赢,但可以用工具争取 少挨打多赚钱 的概率。愿下一封周报,我们能在误差 10% 以下再打一次好仗。