股票数据从哪里来
普通散户能看到的最直接渠道,就是自己开户的券商软件。打开软件,F10里有公司基本面,K线图上有历史价格,分时图能看到当天每一笔成交。这些数据来自交易所,券商只是做了转发和加工。
券商软件的数据足够做日常决策。看财报、看估值、看资金流向,不用再装别的工具。问题是这些数据大多在手机或电脑客户端里,没有办法直接导出做批量计算。如果你写Python脚本想拉取全市场历史行情,券商软件帮不上忙。
交易所官网是更原始的源头。上海证券交易所、深圳证券交易所、中国金融期货交易所、上海期货交易所、大连商品交易所、郑州商品交易所、广州期货交易所,每家都有数据服务栏目。官网提供每日行情、成交持仓排名、仓单日报、交割统计。这些数据权威、免费,更新也及时。缺点是需要自己手动下载,格式不统一,做量化回测非常费劲。

期货数据有什么不一样
股票数据相对简单,一只股票就是一个代码,上市之后代码基本不变。期货每个品种有多个合约,主力合约会换月。螺纹钢今天的主力是rb2410,下个月可能变成rb2501。你拿连续合约的价格做回测,得到的收益曲线和真实交易差别很大。
期货数据必须处理三件事。第一是换月规则,用价格拼接还是持仓量拼接,结果不一样。第二是保证金和杠杆,同样的价格波动,期货的盈亏放大倍数不同。第三是夜盘数据,很多品种有夜盘,收盘价算哪一段要提前定好。
交易所官网每天公布会员持仓排名,这个数据对判断多空力量有用。还有仓单日报,反映现货交割的意愿。股票没有这些,期货独有。
免费数据接口和平台
写代码的人常用几个免费来源。Tushare提供股票、期货、基金、宏观经济数据,积分制,基础数据免费。AkShare完全开源,爬取各大财经网站和交易所公开数据,品种覆盖广,更新频率高。Baostock偏股票,历史行情稳定,适合初学者。
这些接口有一个共同问题,数据质量参差不齐。股票的前复权价格和交易所原始价格有偏差,期货的连续合约拼接方式各家不同。你用之前要拿几个已知数据对一下。
财经网站像东方财富、同花顺、新浪财经,都有数据中心页面。资金流向、龙虎榜、大宗交易、融资融券、期货持仓,这些网站上能直接看。想下载历史数据,部分网站提供Excel导出,但字段和频率有限。
量化交易需要什么数据
量化回测对数据的要求比手动交易高得多。你需要分钟级或Tick级行情,需要完整的财务数据,需要分红送配记录,需要期货的换月规则和保证金比例。这些数据如果全部从免费接口拼凑,维护成本很高。
一个可行的做法是自己搭数据库。用Python写脚本,每天收盘后从AkShare或Tushare拉取当天数据,存到MySQL或PostgreSQL。历史数据一次性补全,之后每天增量更新。这样做的好处是数据在自己手里,可以按自己的规则复权、拼接、清洗。
import akshare as ak
import pandas as pd
# 拉取股票历史行情
stock_data = ak.stock_zh_a_hist(symbol="600519", period="daily", start_date="20200101", end_date="20241231", adjust="qfq")
print(stock_data.head())
# 拉取期货主力连续合约
futures_data = ak.futures_main_sina(symbol="RB0")
print(futures_data.tail())
代码跑通只是第一步。数据存下来之后要处理缺失值、异常值、停牌日、涨跌停无法成交的情况。这些细节决定了回测结果可不可信。
付费数据值不值得买
免费数据能满足大部分散户需求。如果你做日内高频、多品种套利、期权定价,免费数据不够用。付费数据商像Wind、Choice、聚宽、米筐,提供清洗好的数据、统一的API、技术支持。年费从几千到几万不等。
买之前想清楚三件事。你的策略频率多高,需不需要Tick数据。你的品种覆盖多广,需不需要全市场。你的资金规模多大,数据成本占比多少。资金不到百万,用免费数据加自己清洗,完全够用。
数据查询的常见坑
股票复权方式不统一。前复权、后复权、不复权,价格不一样,收益率也不一样。做回测要用后复权,保证历史价格不因分红送配而断层。
期货主力合约拼接没有标准答案。用价格差拼接,遇到极端行情会失真。用持仓量拼接,换月当天可能没有成交。最稳妥的办法是直接交易具体合约,回测也用具体合约,不用连续合约。
数据延迟经常被忽略。免费接口的日线数据一般收盘后一两个小时更新,分钟数据延迟更大。做日内策略,延迟几分钟就是天壤之别。
幸存者偏差在股票数据里很常见。退市的股票很多免费接口不提供,你回测出来的收益会比真实情况好。期货品种上市晚,早年数据缺失,回测起始时间要往前多拉几年看有没有断档。
数据是交易的原材料。原材料不干净,后面策略再漂亮也是空中楼阁。花时间搞清楚数据来源、频率、复权方式、换月规则,比急着写策略更重要。