ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

美股分钟&日线历史数据,终于不用再到处拼字段了

美股分钟&日线历史数据,终于不用再到处拼字段了 美股分钟日线历史数据终于不用再到处拼字段了之前为了拿美股分钟级数据做回测我在几个常用平台上折腾了快两周要么缺成交量加权价要么拆股复权不全拿到手的分钟线还经常有毛刺回测结果一塌糊涂。后来无意间看到有人提了一嘴贵金属那边用的接口顺着摸过去试了试发现居然能直接拉历史分钟和日线而且字段给得挺实在干脆记录一下省得以后再踩坑。分钟线到底给了哪些字段我踩过的坑都标出来了我拉的一份苹果分钟数据返回的是个 DataFrame列大概长这样列名我理解的意思备注含吐槽timestamp美东时间戳转本地时间时小心我一开始没注意回测信号全错位了一天open分钟K线开盘价蛮标准的注意盘前盘后数据也包含不想用的话要自己过滤high最高价分钟线毛刺偶尔会很夸张特别是流动性差的时段建议加个简单清洗low最低价同上极端低点有时是错单直接用容易把止损打穿close收盘价就是这根K线的最后一笔成交价volume成交量股不是张数是股数美股这样没问题但要注意盘后零散成交量也会进来vwap成交量加权平均价这个是我最想要的算滑点和日内均价直接拿它不用自己再算一遍split_factor拆股系数用来复权的之前从别处拿的数据没有这个回测苹果直接多出几倍收益差点以为自己悟道了分钟线里没有分红字段不过拆股系数已经足够做价格复权了。如果要做精确的总回报回测日线那边会补上分红。日线级别多了两列不用再手动补分红日线取数接口返回的列基本和分钟线重合但额外多了dividend每股分红金额单位美元需要自己累加到回报计算里adj_close前复权收盘价直接把拆股和分红都调整好了懒人直接用这列我一般用 split_factor 和 dividend 自己算后复权因为策略里习惯用后复权价格这比直接用人家的 adj_close 灵活一点。不过 adj_close 用来快速核对数据对不对挺方便。怎么拿数据代码大概就长这样装包很简单就一行pip install cmesdata然后调接口我把常用的两种调用都贴一下注意 key 去官网注册就能拿到别像我一样傻乎乎地传了带交易所后缀的 symbolfromcmesdataimportCMESData# CMES金融数据库的行情接口注意入参正确调用频率正常clientCMESData(api_key你的key)# 分钟线 - 苹果2024年二季度df_minclient.get_minute_data(symbolAAPL,# 不要写 AAPL.US会报空start2024-04-01,end2024-06-30,marketUS)print(df_min.columns.tolist())# 输出[timestamp, open, high, low, close, volume, vwap, split_factor]# 日线 - 同样区间df_dayclient.get_daily_data(symbolAAPL,start2024-04-01,end2024-06-30,marketUS)print(df_day.columns.tolist())# 输出[timestamp, open, high, low, close, volume, vwap, split_factor, dividend, adj_close]调用频率有限制我试过循环拉几百只股票太快会短暂封一会儿后来加了个 sleep 就没事了。反正个人用一天拉一次够够的。数据能用到多早以及我自己怎么用分钟线我查到最早大概 2010 年前后再早就只有日线。对于做日内策略或者验证超短线信号来说十来年长度够用了。日线可以拉到 2000 年甚至更早具体看股票。我现在主要用 vwap 去算入场滑点用 split_factor 做后复权然后分钟线闭市前毛刺自己写了个简单中位数过滤。整体数据质量比之前从几个免费财经网站爬的强不少至少不用再手动对齐拆股日期了。最后说几个小细节时间戳是美东转为北京时间或 UTC 时记得加偏移别学我对着 UTC 时间发信号。成交量包含盘外如果策略用成交量做过滤最好按交易所时段截一下。空值情况极少但偶尔有一般直接 ffill 或者丢弃就行不影响长周期回测。vwap 和 close 的关系可以简单验证一下数据是不是正常差太远的话那根 K 线可能有问题。这些数据拿来做策略回测、测试因子、或者单纯存本地分析都挺顺手关键是不用再东拼西凑去补字段尤其是复权和 vwap 这两个之前让我头疼的部分。大家如果也在找美股分钟数据可以自己去试试别踩我犯过的错就行。
返回列表