一篇文章说清楚如何搞定量化交易的数据(附免费订阅L2数据源代码)
发布时间:7小时前阅读:10
量化交易模型的搭建离不开各类数据支撑,行情数据、财务数据是量化交易的两类核心基础数据源,也是开发交易策略的基础。
这篇文章我们将介绍上面两类数据的获取途径、清洗加工方式、适配的策略类型,搭配实战案例解析数据在策略中的实际应用。
一、数据分类
1、行情数据
行情数据是量化研究最基础、使用频次最高的核心数据源,股票、可转债、期货等各类标准化交易品种,日常持续生成开盘价、最高价、最低价、收盘价、成交量,行业统一简称为 OHLCV 数据。现在对于行情数据获取、处理和传输已经变得高度智能化与实时化,全市场数据规范逐步统一,便于实现我们在不同市场间对比价格和移植策略。
对于刚接触量化交易的新手来说,获取行情数据的渠道已经十分便捷。目前主流渠道之一是券商开放的免费 API 接口,大部分券商都可以提供包含五档盘口在内的基础行情数据, 券商一般都支持免费获取。
第二种是 AKShare、Tushare 等开源 Python 数据接口,这些平台在后端完成数据抓取、清洗整理并封装打包好,用户只需输入标的代码和所需的时间周期等参数就可以调用标准化行情数据,这些平台数据获取上手门槛低,且收费也优惠,比较适合初学练习。
除此之外,目前主流量化平台QMT、ptrade等也免费支持接入行情数据,能够提供毫秒级低时延的精细化行情数据源,并且全品种覆盖服务。另外,ptrade免费支持Lv2逐笔委托和逐笔成交数据。
PTrade level—2数据获取示例:
# 导入核心库
import pandas as pd
import time
import datetime
# 初始化函数
def initialize(context):
g.security = "******.SZ"
g.data=pd.DataFrame() # 初始化一个空的 DataFrame,用于存储逐笔委托数据
set_universe(g.security)
def tick_data(context,data):
# 创建无限循环,用于毫秒级数据处理
while True:
nowtime = datetime.datetime.now().strftime('%H%M%S') # 获取当前系统时间,格式为:时分秒
# 获取lv2逐笔委托数据
entrust = get_individual_entrust(
stocks=['******.SZ'], # 指定股票代码
data_count=200, # 每次获取200条数据。
start_pos=0, # 从0开始排序
search_direction=1, # 搜索方向(1向前,2向后)
is_dict=False, # 返回类型:False对应Panel类型
)
# 为了美观,只展示四列数据
entrust=entrust[['business_time','hq_px','business_amount','business_direction']]
# 数据拼接与去重
g.data=pd.concat([g.data,entrust],ignore_index=True) # 将新数据追加到 g.data 中,ignore_index=True 重置行索引
g.data=g.data.drop_duplicates(keep='last') # 删除重复行,保留最后一条记录(避免重复数据堆积)
print(g.data.tail(10)) # 只显示最后10条数据,监控数据流是否正常更新
# print(g.data) # 显示全部数据
# 每秒获取一次
time.sleep(1)
#退出循环并停止获取数据
if nowtime >= '150001' or '113001'<= nowtime <= '125959' :
print(f"停止获取lv2数据,当前系统时间: {nowtime}")
break
2、财务数据
财务数据是量化策略中基本面分析的核心数据源,财务数据主要来源于上市公司披露的三大财务报表及衍生指标,包括资产负债表、利润表、现金流量表、主要财务指标、股本与股东数据等。机构筛选标的通常从五大维度综合研判:
(1)盈利能力:净利润、营业收入、每股收益等指标,评估公司持续盈利的水平。比如通过利润表(Income)中的净利润、营业收入来判断公司经营质量。
(2)成长能力:核查营业收入、净利润增速的延续性,甄别业绩增长依托主营业务扩容还是一次性偶发收益。
(3)运营效率:依托存货周转率、应收账款周转率开展分析。周转指标偏低,代表企业库存积压、回款缓慢,持续占用营运资金。
(4)财务安全性:以资产负债率、利息保障倍数为核心指标,判断企业负债规模与付息能力,防范债务承压风险。
(5)现金流水平:对比经营活动现金流与账面净利润是否匹配。部分企业账面实现盈利,但经营现金流持续偏弱,账面利润缺少实际现金支撑。
二、数据清洗
1、数据质量诊断
我们在进行量化模型搭建之前,必须要先进行数据清洗,数据失真会导致回测失效、实盘失真,严重则亏损,所以数据清洗是一个非常重要的环节。
直接使用未清洗的粗糙数据会造成以下影响:
(1)异常数据:如果某只股票突然出现价格为0.1元或10000元的 异常成交记录,如果不剔除会造成量化模型错判行情、生成错误交易信号。
(2)数据缺失:如果某个交易日因个股停牌出现当日没有交易数据,并且策略依赖连续序列计算,那量化指标会受数据缺失干扰。
(3)噪声数据:市场中的微小、偶然交易带来的价格波动不代表真实趋势。过度响应这类噪声会导致策略频繁交易、付出高额手续费却难以盈利。
(4)格式不统一:原始数据中日期、数值等格式不一,会导致系统无法识别,所以需要统一数据标准化格式。
数据清洗正是这样一个需要耐心和细致的过程,关键步骤包括:
● 识别并剔除异常值
● 合理填补缺失值
● 平滑噪声、降低干扰
● 统一格式、规范表达
完成清洗后,我们才能获得干净、可靠的数据,进而放心地投入策略研发与回测。
2、数据清洗实战
(1)剔除异常数据
数据清洗的第一步,是先找出并剔除不合理的错误数据。比如,某只股票价格突然飙高又瞬间回落(可能是系统报错),或某公司利润率高得离谱(可能是录入错误)。现在很多工具(QMT量化平台)能自动识别常见的数据问题,它还会比对不同数据源(如Wind、同花顺)。
(2) 补齐缺失数据
数据缺失、行情中断,这可能是因为交易所故障,或公司财报延迟发布。现在很多智能工具能自动补数据:如果是股价这种连续变动的,系统会参考前一天的数值,再结合当天市场波动适当调整。新手最简单的方式就是用前一日数据顺延填充,够用、稳定、不容易出错。
(3) 统一数据标准
不同数据的数值大小差距很大,比如股价只有几十元,成交量却动辄几百万,如果不做统一处理,数值大的指标会完全主导模型计算,导致结果失真。
最常用的两种处理方法:第一种是Z-score标准化,把所有数据统一换算成相对平均值的波动幅度;
第二种是行业排名法,对比个股在行业内的位次。AIW3等量化平台会定期更新对标基准,全程自动完成标准化计算,不需要手动操作。
(4)数据质检
数据清洗完成后,必须做一遍全面检查,确认数据质量达标后,才能用来做策略回测和实盘交易。主流量化平台可以自动生成数据质检报告,检查是否还有缺失数据、数值是否合理、多源数据是否统一。
核心检查重点只有三项:缺失数据是否全部补全、极端数值是否合理、不同数据源的数据是否一致。只有通过质检的干净数据,才能支撑稳定、有效的量化策略。
三、优质量化平台推荐
以上就是今天分享的全部内容。最后经常会有不少朋友问我哪些量化平台数据质量稳定且优质,这里比较推荐量化软件QMT和ptrade,两款软件的数据都来自券商官方数据源,合规免费接入交易所数据,各自在数据层面有鲜明优势,适配不同学习与交易需求:
1、PTrade 数据优势
数据开箱即用:平台自带数据接口并完成行情、财报等数据全部清晰和封装,不用自己对接第三方接口、处理数据错乱问题,用户直接调用所需数据即可;
免费 Level-2 行情:开通权限就可以免费使用逐笔委托、逐笔成交数据等精细数据,完全可以满足有数据高需求的用户;
云端数据:数据统一存放在券商云端服务器,行情数据持续稳定推送,不受个人电脑开关机影响,使用时直接调用即可,不用提前下载到本地占用电脑内存;
2、QMT 数据优势
全品类数据全覆盖:除 A 股相关数据外,支持基金、可转债、期货、期权等全市场数据,可以满足跨品种、跨市场量化研究的数据需求。
数据自由度高:所有历史行情、财报数据均可批量下载保存到本地,既能自建专属数据库,还可以自由接入 Akshare、Tushare、Wind 等第三方数据源,方便灵活搭建个性化数据集。
简单总结:零基础初学、侧重中低频交易选 PTrade;想要深入量化研究、做高频或多因子策略,优先选用 QMT。
关注"叩富问财"服务号/公众号,回复“量化软件”,联系经理开通量化权限与优惠费率证券账户!
打开微信,搜索"叩富问财",在对话框中输入"量化软件",开启你的量化交易之旅!
温馨提示:投资有风险,选择需谨慎。
下一篇资讯:
暂无下一篇
-
本周打新日历:一只新股+两只可转债即将发行!点击查看可转债权限开通+申购指南
2026-06-01 14:07
-
华泰证券银证转账是什么时候?支持哪些银行?怎么操作?
2026-06-01 14:07
-
国泰海通证券新人开户有哪些超值福利?怎么高效领取?(含新客理财券)
2026-06-01 14:07


问一问

+微信
分享该文章
