PTrade中的高频数据存储:使用SQLite记录Tick数据
发布时间:8小时前阅读:11

对于高频策略研究,需要存储tick数据以便离线分析。PTrade策略可以实时接收tick并写入本地数据库。本文介绍如何使用SQLite存储tick数据。
优点:SQLite轻量级,无需安装,支持SQL查询,适合个人使用。
步骤一:在init中创建数据库和表。
`python
import sqlite3
def initialize(context):
context.conn = sqlite3.connect('tick_data.db')
context.cursor = context.conn.cursor()
context.cursor.execute('''
CREATE TABLE IF NOT EXISTS ticks (
timestamp TEXT,
stock TEXT,
price REAL,
volume INTEGER,
bid1 REAL,
ask1 REAL
)
''')
context.conn.commit()
`
步骤二:订阅tick,并在回调中写入。
`python
def on_tick(context, tick):
ts = tick['time'] # 或 context.now
context.cursor.execute('''
INSERT INTO ticks (timestamp, stock, price, volume, bid1, ask1)
VALUES (?, ?, ?, ?, ?, ?)
''', (ts, tick['code'], tick['last'], tick['volume'], tick['bid1'], tick['ask1']))
if context.cursor.rowcount % 100 == 0:
context.conn.commit() # 每100条提交一次,提高性能
`
步骤三:收盘后关闭连接。
`python
def after_trading(context):
context.conn.commit()
context.conn.close()
`
注意事项:
- 写入数据库会消耗性能,如果订阅股票多,可能导致延迟。建议只存储少数关键股票。
- 数据量增长很快,1只股票一天约5000条tick,一个月约10万条,可接受。多只股票需定期清理。
- 使用PRAGMA synchronous=OFF可以提高写入速度,但断电可能丢失数据。
存储的tick数据可用于离线回测、分析滑点、构建微观结构因子。但注意,PTrade的回测不支持tick级别,只能用于实盘记录。
国金证券的PTrade支持本地文件操作,10万资金即可开通。量化社群中有完整的tick存储脚本。高频数据是量化研究的宝贵资产。
温馨提示:投资有风险,选择需谨慎。
-
国常会力挺“六张网”,利好哪些板块?普通人如何稳健布局?
2026-05-18 15:52
-
REITs打新: 风电项目 ⌈中核新能⌋ 今日发售!点击领取认购操作指南~
2026-05-18 15:52
-
华泰AI涨乐APP超实用提示词分享,直接复制使用~
2026-05-18 15:52


问一问

+微信
分享该文章
