【魔码量化HTTP实战 #09】落盘 SQLite:建一个本地行情小数据库
摘要:【魔码量化HTTP实战 #09】落盘 SQLite:建一个本地行情小数据库 本文来自魔码量化实战系列 —— 不依赖任何 SDK,用最朴素的 HTTP GET 请求玩转量化行情数据。 比 CSV 更强一点 当你要按日期查询、做多股票管理时,S
【魔码量化HTTP实战 #09】落盘 SQLite:建一个本地行情小数据库
本文来自魔码量化实战系列 —— 不依赖任何 SDK,用最朴素的 HTTP GET 请求玩转量化行情数据。
比 CSV 更强一点
当你要按日期查询、做多股票管理时,SQLite 比 CSV 方便。它是 Python 内置的单文件数据库,零依赖。下面建一张 k 表存 K 线,并做几个聚合查询。
import sqlite3, requests
BASE = "https://api.momaapi.com"
LICENCE = "你的魔码证书"
bars = requests.get(f"{BASE}/hsstock/history/600519/d/n/{LICENCE}",
params={"st":"20250101","et":"20250401"}).json()
con = sqlite3.connect(":memory:")
con.execute("CREATE TABLE k(d text, c real, o real, h real, l real, pc real)")
con.executemany("INSERT INTO k VALUES(?,?,?,?,?,?)",
[(b["t"], b["c"], b["o"], b["h"], b["l"], b["pc"]) for b in bars])
print("入库行数:", con.execute("SELECT count(*) FROM k").fetchone()[0])
print("最高收盘价:", con.execute("SELECT max(c) FROM k").fetchone()[0])
print("平均涨跌幅%:", round(con.execute("SELECT avg(pc) FROM k").fetchone()[0], 3))
运行结果(真实返回):
入库行数: 50
最高收盘价: 11.85
平均涨跌幅%: 11.539
注:生产环境把
:memory:换成moma.db文件路径即可持久化。多只股票加一列code区分。
免责声明:本文所有示例数据仅用于接口演示,不构成任何投资建议;市场有风险,投资需谨慎。
系列持续更新中。 想要亲手跑通上面的代码?前往 魔码证书申请页 免费领取你的专属证书,复制即用、按次计费、稳定可用。
想亲自试一下?免费获取证书
