📚 本系列进度:#01–#08 ✅ #09 ✅ #10–#48 ⏳
工具篇第三篇。数据留痕,才能盘后复盘「今天到底发生了什么」。
一、这个方法解决什么投资问题
盘中看到异动,收盘就忘了;下周想复盘「那天谁最活跃」却没记录。量化讲究可追溯——每一笔信号、每一次异动,都得落库。
二、核心思想:SQLite 是个人量化的最佳落库
你不需要 MySQL/PostgreSQL。单机策略、个人复盘,SQLite(Python 标准库) 三个理由足够:零依赖、单文件、SQL 直接查。等你要多人协作再升级。
三、实操演示
import sqlite3
conn = sqlite3.connect("stock_snapshot.db") # 实战用文件库;演示用 :memory:
conn.execute("""CREATE TABLE snapshot (
ts TEXT, code TEXT, name TEXT, price REAL, pct REAL, amount REAL)""")
# 盘中每轮扫描,把批量快照 INSERT 进去
items = mc.stock_ssjy_more(",".join(BASKET))
for it in items:
conn.execute("INSERT INTO snapshot VALUES (?,?,?,?,?,?)",
(now, it["dm"], it.get("mc"), it["p"], it["pc"], it["cje"]))
# 盘后复盘:按成交额降序看今日异动
for row in conn.execute("SELECT code,name,price,pct,amount FROM snapshot ORDER BY amount DESC"):
print(row)
真实输出(2026-08-06,8 只篮子): 写入 8 条;查询按成交额降序,300750(123.5 亿)居首,000001(6.3 亿)垫底——一眼看出今天谁最热闹。
四、结果解读
多轮扫描不断 INSERT,你就有了「全天的异动时间线」。配合《实时盯盘》系列的告警,能回答:「本周我收到 12 次告警,哪只触发最频繁?」——这正是复盘的起点。
五、常见陷阱
- 用 CSV 追加:不便查询、易锁文件。SQLite 一条 SQL 搞定。
- 存全量 tick:个人复盘用「每 N 分钟一笔快照」足矣,别堆原始逐笔(那是机构级)。
- 不建索引:数据多了按 code/ts 查慢,给常用列加索引。
六、小结 + 下篇预告
SQLite 三步(建表/写/查)搞定个人落库。下篇 #10 讲数据质量陷阱——复权、停牌、涨跌停,脏数据会悄悄吃收益。
七、合规收尾
本文为量化方法教学,不构成投资建议,不承诺收益。投资有风险,入市需谨慎。
