← 文档库
📄 文档learn/选股策略/03-选股-数据拉取实验记录.md
🌱 创建于2026-07-03 00:39
✏️ 修改于2026-07-03 00:39
👁️ 浏览量—
🔗 短链接/~learn/s/ac302dee
🔐 可见性

选股数据拉取实验记录

> 最后更新:2026-07-02 > > 记录历次全量拉取实验的参数、限流表现、稳定性和后续运维建议。

---

一、实验汇总

# 时间 数据源 延迟 股票池 新获取 缓存命中 失败 耗时 最终缓存 触发限流
---------------------------------------------------------------------------------
1 07-02 凌晨 东方财富(east) 1.0s 5610 3242 19 2349 95min 3266 ✅ 任务完成后 IP 被封锁
2 07-02 晚间 百度(baidu) 0.5s 5613 2147 3258 208 21min 5405 ❌ 无封禁

---

二、实验 #1 详细 — 东方财富 by adata.stock.market

参数

表现

阶段 进度 成功率 观察
--------------------------
前 250 只 ~50% 大量 FAIL,因为之前 10 并发轰炸后 IP 被临时封
250-750 ~62% 逐渐恢复
750-1750 ~60% 稳定
1750-3250 ~63% 新股少,缓存命中高
3250-5600 ~55% 尾端退市股/小币种 ETF 失败

失败原因分析

触发限流

实验 #1 跑完后,东方财富对我们 IP 实现了临时封禁:

封禁特征:直接 curl HTTPS 连接成功、TLS 握手成功,但 HTTP 返回空 body,无 status code。这说明是应用层(不是网络层/FW)的 IP 黑名单,东方财富服务端检测到单 IP 在短时间内发出了 ~5600 次 K 线请求后手动/自动封禁。

教训

---

三、实验 #2 详细 — 百度行情源

参数

表现

指标 值
-----------
新获取 2147 只(之前没有的)
缓存命中 3258 只(之前已有)
失败 208 只(3.7%)
总耗时 21 分钟
拉取速率 4.4 只/s
最终缓存 5405 只 / 262MB
触发封禁 ❌ 无

百度源 vs 东方财富源对比

维度 东方财富(east) 百度(baidu)
------:--::--:
历史数据完整性 ✅ 全(1990 年起) ✅ 全(1990 年起)
列结构 close/open/high/low/volume/amount + trade_date 同左 + change/change_pct/turnover_ratio
创业板/科创板 ✅ ✅
北交所 ✅ ⚠️ 部分缺失
封禁风险 ⚠️ 高(5000 次请求后大概率被封) ✅ 低(21 分钟未激活封禁)
速度 正常(取决于延迟) 正常
稳定性 ⚠️ 跑完后 IP 被封数小时 ✅ 全程稳定

---

四、生产环境建议

数据源策略

# StockDataFetcher 已实现 source='auto' 模式:
# 优先用 east,失败后自动 fallback 到 baidu
fetcher = StockDataFetcher(source='auto', request_delay=0.5)

运维频率

场景 频率 数据源 预计耗时
------------------------------
首次初始化 一次性 baidu 优先 21 min
每日增量更新 每日 18:00 auto (east → baidu fallback) <5 min(只拉 1-2 天)
大盘暴跌后补拉 手动 baidu 优先 21 min

代码级保护

当前 StockDataFetcher 已内置的保护:

监控建议

---

五、TODO

▶ 📜 变更历史(1 次提交)

f3d54702026-07-03 00:39feat: StockDataFetcher 双源fallback + 数据拉取实验记录
🍃quant 知识库
by 伊甸园和枫

🔊 播放设置

勾选音源后调节配比,总和自动归一化
已选 0 个 · 合计:0%
合成中...
00:00/00:00
1.0x

分享图片

生成中...