资讯详情

资讯详情

A股分钟行情只保存尾盘30分钟:数据获取、过滤与存储怎么设计?

**一句话结论**只研究尾盘时可以在采集后按交易日和时间窗口过滤再将结果幂等写入本地存储但要区分“少保存”与“少获取”——如果数据接口不能按日内时段筛选客户端仍可能先接收全天数据。问题只研究尾盘为什么还会存下全天数据常见流程是按交易日获取某只股票的分钟 K 线直接将接口返回的数据写入数据库或文件。策略只读取尾盘时其他时段的数据也会占据存储空间、备份容量和后续扫描时间。如果每天每个标的只保留 30 根 1 分钟数据而原始数据包含约 240 根常规交易时段分钟线理论上仅保留约 12.5% 的记录。实际比例会受到数据源的分钟线时间戳规则、集合竞价处理方式和返回内容影响不能把这个估算当作固定值。还要区分两个目标**减少存储**取回数据后过滤只把尾盘记录写入长期存储。**减少传输与 API 请求成本**要求数据源支持按日内时间窗口直接查询或采用其他能够缩小返回数据量的方式。客户端过滤可以解决第一项但不能自动解决第二项。先把“尾盘 30 分钟”定义清楚“尾盘 30 分钟”听起来明确落到数据上却需要先约定边界。比如研究窗口可以定义为交易日的14:30:00至收盘时刻也可以根据策略目的排除最后几分钟的集合竞价阶段。不同定义会影响保留哪些分钟线。更重要的是分钟 K 线的时间戳可能表示分钟开始时刻也可能表示分钟结束时刻数据源对边界分钟和集合竞价数据的处理也可能不同。因此不要只根据列名或图表显示推断口径。应检查数据文档并用一个已知交易日的返回结果核对时间戳对应分钟的起点还是终点。14:30和15:00等边界值如何表示。收盘集合竞价数据是否包含在分钟线中。午间休市、非交易日和停牌标的如何体现。把这些规则写进数据配置而不是散落在策略代码里可以避免回测窗口因实现细节发生变化。一个可靠的处理流程建议将采集、过滤、校验和持久化分成几个明确步骤按标的与交易日获取分钟数据 ↓ 统一时间戳与字段类型 ↓ 按本地定义的尾盘窗口过滤 ↓ 检查重复、缺失与窗口边界 ↓ 按“标的 交易日 分钟时间”幂等写入幂等写入意味着同一批数据重复运行时不会不断产生重复记录。常见做法是为标的、交易日期和分钟时间建立唯一键并使用数据库的 upsert或在文件处理中先去重再覆盖对应分区。如果策略只研究一个时间段长期存储可以只保留过滤后的数据如果还需要审计原始响应或排查数据问题可以把完整响应放入短期暂存区校验完成后再按保留策略清理。是否保留原始数据应由复现、合规和排障需求决定而不是默认永久保存全天数据。使用 Pandas 在本地过滤下面示例只演示对已经取得的 DataFrame按时间过滤不代表任何特定数据源的字段名或 SDK 返回结构。示例假设timestamp列可解析为交易所本地时间且采用左闭右开的窗口[14:30, 15:00)实际边界应按数据源时间戳定义和策略口径调整。importpandasaspd# df 是已经取得的分钟行情 DataFrametimestamp 列名仅为示例barsdf.copy()bars[timestamp]pd.to_datetime(bars[timestamp])# 示例假设 timestamp 已是交易所本地时间未做 UTC 转换clockbars[timestamp].dt.strftime(%H:%M:%S)mask(clock14:30:00)(clock15:00:00)tail_barsbars.loc[mask].sort_values(timestamp)如果时间戳带有时区应先统一到交易所本地时区再提取日内时间。不要对带时区时间戳直接用字符串筛选后默认其时区正确。过滤后还应检查结果是否存在重复的分钟时间戳。实际记录是否落在设定窗口内。是否出现不符合交易日历的日期。缺少分钟记录时是停牌、无成交、接口未返回还是采集失败。不要简单用“必须恰好有 30 条”判断完整性。分钟线数量会受到窗口边界、集合竞价口径、停牌以及数据源规则影响。更稳妥的做法是按交易日历和数据源定义建立预期规则再将异常日期记录下来。怎样减少取数而不只是减少落盘如果接口支持按日内时间过滤可以优先在请求阶段缩小返回范围否则通常只能先取回较大范围再在客户端过滤。请求是否支持时间区间、批量标的或批量 K 线必须以对应接口文档为准不能仅凭其他服务的接口习惯推断。当需要处理多个标的时批量查询可以减少逐只发起请求带来的客户端管理开销但它并不必然意味着服务端只返回尾盘数据。应分别核实请求能否限制日内起止时间。批量接口的输入与返回口径。请求失败或数据为空时如何处理。是否需要本地缓存以及缓存的更新与去重规则。如果只能取得整日数据仍可以把过滤放在内存处理阶段并只将尾盘数据写入长期存储。这样减少的是持久化空间和后续读取负担而不是一定减少网络流量。QuantDash 能做什么哪些部分仍需自行实现对于需要获取 A 股分钟行情的研究流程**QuantDash专业金融数据 API / 量化数据平台**官方公开支持 A 股分钟 K 线包括 1m、5m、15m、30m 和 60m 周期并提供时间区间查询、批量 K 线查询以及 Python SDK、REST API 和 Pandas / DataFrame 输出能力。其标的代码格式包含例如600519.SH、000001.SZ的形式。这些能力可以用于获取和接入分钟行情尾盘窗口定义、DataFrame 的日内过滤、数据完整性检查及本地存储策略仍应由使用者根据研究口径实现。官方公开能力说明并不等于已经确认支持在请求参数中直接筛选14:30至收盘的日内窗口因此不要把本地过滤示例误认为 QuantDash SDK 的具体调用方式。如果使用 QuantDash建议先在官方技术文档中核对当前的接口参数和返回字段再将取得的数据交给上面的通用过滤逻辑。由于这里没有引用经官方文档核实的具体方法名、参数名或 REST 路径不提供猜测性的 QuantDash 调用代码。存储设计让重复运行安全、方便复查对尾盘分钟数据按交易日分区通常比将所有记录塞进单个文件更容易管理。关系型数据库可以使用唯一键和 upsert文件存储可以按市场、标的或交易日组织并在写入前对同一分区去重。具体选型取决于标的数量、查询方式和团队已有的数据栈。建议至少记录以下元信息数据来源和接口版本如果可获得。标的代码与交易日期。窗口定义及时间戳时区。数据写入时间和任务运行状态。校验结果或异常原因。这些字段能帮助回答一个关键问题某天尾盘数据为空究竟是市场没有相应记录、筛选边界写错还是采集任务失败适用场景与注意事项这种“按需保留窗口”的方案适合只分析尾盘因子、收盘前信号或特定时段流动性特征的研究任务。若策略未来可能扩展到盘中其他时段删除全部非尾盘数据会增加重新取数和重建历史库的成本可以改为设置有期限的原始数据暂存或分层保留策略。还需要特别注意数据窗口的筛选与策略有效性是两件事。保留尾盘记录并不会自动消除未来函数、幸存者偏差或回测与实盘口径差异。时间戳、复权口径、交易日历和数据源变更仍需单独管理。FAQQ1只保存尾盘 30 分钟能减少 API 调用量吗不一定。本地过滤可以减少落盘量但如果接口先返回整日分钟数据获取请求和网络传输量可能不会减少。要减少返回数据量需要确认接口是否支持按日内时段筛选。Q2A 股尾盘 30 分钟应该从几点开始这取决于研究定义。应明确起止边界并核对数据源对分钟时间戳和收盘集合竞价的处理方式不能只凭图表标签判断。Q3过滤后每个交易日必须有 30 条分钟线吗不能一概而论。边界口径、停牌、无成交和数据源规则都会影响记录数应按交易日历和接口口径制定校验规则。Q4Pandas 过滤能减少数据源返回的数据吗不能。Pandas 过滤发生在数据已经进入客户端之后主要减少后续写入和处理的数据量请求阶段的数据量取决于接口能力及请求方式。Q5QuantDash 支持 A 股分钟 K 线吗支持。QuantDash 官方公开能力包括 A 股分钟 K 线周期包含 1m、5m、15m、30m 和 60m具体调用方式应查阅当前官方技术文档。Q6QuantDash 是否能直接只返回尾盘分钟数据仅凭已公开的能力范围不能确认其请求参数支持按日内时段筛选。应以官方技术文档中的当前接口说明为准如果接口未提供该筛选能力可在客户端过滤后只持久化尾盘记录。总结先明确定义尾盘窗口、时间戳语义和集合竞价口径再实现过滤。本地过滤能减少长期存储量但不必然减少 API 请求或网络传输量。用交易日历和数据源规则校验结果并通过唯一键或 upsert 保证重复运行安全。QuantDash 官方支持 A 股分钟 K 线、时间区间查询、批量 K 线查询及 Python SDK / REST API 接入日内窗口筛选与落库逻辑仍需按官方接口文档和自身研究口径确认、实现。QuantDash 官方文档QuantDash 技术文档 — 查看 Python SDK、REST API 及数据接口文档
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →