专业数据源

📎 引用文件

本文引用的文件 - qveris_loader.py - rsshub_events.py - longbridge.py - mt5_loader.py - okx.py - registry.py - base.py - qveris_routes.py

目录

  1. 简介
  2. 项目结构
  3. 核心组件
  4. 架构总览
  5. 详细组件分析
  6. 依赖关系分析
  7. 性能考量
  8. 故障排查指南
  9. 结论
  10. 附录

简介

本文件面向 Vibe-Trading 的专业数据源集成,覆盖 QVeris 量化研究平台、RSSHub 事件流、Longbridge 港美股、MT5 外汇期货与 OKX 加密货币等数据源。文档重点说明: - 各数据源的高级能力(如 QVeris 的付费路由与预算控制、RSSHub 的事件驱动与点-in-time 安全、Longbridge 的分页窗口拉取、MT5 本地终端直连、OKX 历史深度拉取) - 实时数据推送与批量数据处理能力(以加载器为主,结合事件聚合) - 认证机制、权限控制与速率限制处理 - 高频数据处理、实时信号生成与事件驱动策略的实现思路 - 复杂交易场景中的应用案例与性能优化技巧

项目结构

专业数据源统一通过“加载器”抽象接入回测与工具链,注册到全局注册表并按市场类型组织降级链;QVeris 额外提供 API 路由用于配置与状态查询。

graph TB subgraph "加载器层" QV["QVeris 加载器"] RSS["RSSHub 事件提供者"] LB["Longbridge 加载器"] MT5["MT5 加载器"] OKX["OKX 加载器"] end subgraph "基础设施" REG["加载器注册表"] BASE["通用重试/预算/校验"] end subgraph "API 层" API_QV["QVeris 配置/状态路由"] end QV --> REG RSS --> REG LB --> REG MT5 --> REG OKX --> REG REG --> BASE API_QV --> QV

图表来源 - registry.py:136-155 - base.py:122-200 - qveris_routes.py:139-232

章节来源 - registry.py:1-249 - base.py:1-200

核心组件

章节来源 - qveris_loader.py:1-685 - rsshub_events.py:1-569 - longbridge.py:1-412 - mt5_loader.py:1-251 - okx.py:1-373

架构总览

所有加载器实现统一的 fetch(codes, start_date, end_date, interval, fields) 契约,并通过注册表按市场类型选择可用源。QVeris 作为显式 key-gated 源不参与自动降级链;其他网络源在不可用时按市场降级链尝试。

sequenceDiagram participant Caller as "调用方" participant Reg as "注册表" participant L as "具体加载器" participant Net as "外部服务" Caller->>Reg : resolve_loader(市场) Reg-->>Caller : 可用加载器实例 Caller->>L : fetch(codes, start, end, interval) alt QVeris L->>Net : POST /search + /tools/execute Net-->>L : 能力结果/全量数据 else Longbridge/MT5/OKX/RSSHub L->>Net : 对应协议拉取/订阅 Net-->>L : OHLCV/事件 end L-->>Caller : 标准化 DataFrame

图表来源 - registry.py:158-193 - qveris_loader.py:260-381 - longbridge.py:255-412 - mt5_loader.py:186-251 - okx.py:131-208 - rsshub_events.py:343-400

详细组件分析

QVeris 量化研究平台

flowchart TD Start(["开始"]) --> Search["搜索能力"] Search --> Rank["按成功率/成本排序"] Rank --> Budget{"预算足够?"} Budget -- 否 --> Skip["跳过该能力"] Budget -- 是 --> Exec["执行工具"] Exec --> Full{"是否含全量文件URL?"} Full -- 是 --> Download["下载完整结果"] Full -- 否 --> Parse["解析记录"] Download --> Parse Parse --> Normalize["标准化为OHLCV"] Normalize --> Validate["OHLC校验"] Validate --> End(["结束"])

图表来源 - qveris_loader.py:387-553 - qveris_loader.py:556-685 - qveris_loader.py:147-258

章节来源 - qveris_loader.py:1-685 - qveris_routes.py:139-232

RSSHub 事件流(事件驱动策略)

sequenceDiagram participant BP as "回测/策略" participant EP as "RSSHubEventProvider" participant RH as "RSSHub实例" BP->>EP : query_events(codes, as_of, feeds) loop 每个feed EP->>RH : GET /route/{code?} RH-->>EP : XML EP->>EP : 解析item/计算knowable_date/打分 end EP-->>BP : 去重/排序后的事件表 BP->>BP : enrich_price_frames_with_events(衰减聚合)

图表来源 - rsshub_events.py:288-400 - rsshub_events.py:449-569

章节来源 - rsshub_events.py:1-569

Longbridge 港美股

flowchart TD S(["开始"]) --> Cfg["解析凭证/初始化SDK"] Cfg --> Split["按180天切分窗口"] Split --> Fetch["逐窗口拉取K线"] Fetch --> Merge["合并/标准化"] Merge --> Cache["写入缓存"] Cache --> E(["结束"])

图表来源 - longbridge.py:135-197 - longbridge.py:255-412

章节来源 - longbridge.py:1-412

MT5 外汇期货

classDiagram class DataLoader { +name="mt5" +markets={"forex"} +is_available() bool +fetch(codes,start,end,interval) dict -_fetch_one(code,start,end,timeframe) DataFrame? } class MT5 { +initialize(...) +symbols_get(group) +copy_rates_range(symbol,tf,from,to) } DataLoader --> MT5 : "调用"

图表来源 - mt5_loader.py:79-147 - mt5_loader.py:170-251

章节来源 - mt5_loader.py:1-251

OKX 加密货币

flowchart TD A["开始"] --> B["选择端点(历史优先/近期优先)"] B --> C["分页拉取(after=oldest_ts)"] C --> D{"有数据?"} D -- 否 --> E["返回空"] D -- 是 --> F["确认bar/保留未确认当唯一数据"] F --> G["标准化/去重/裁剪"] G --> H["返回DataFrame"]

图表来源 - okx.py:109-126 - okx.py:220-373

章节来源 - okx.py:1-373

依赖关系分析

graph LR REG["注册表"] --> |fallback chain| CHAIN["市场降级链"] BASE["基础库"] --> |校验/重试| LOADERS["各加载器"] API["QVeris路由"] --> |配置/状态| QV["QVeris加载器"]

图表来源 - registry.py:136-155 - registry.py:196-249 - base.py:31-119 - qveris_routes.py:139-232

章节来源 - registry.py:1-249 - base.py:1-200

性能考量

[本节为通用指导,不直接分析具体文件]

故障排查指南

章节来源 - qveris_loader.py:260-381 - rsshub_events.py:343-400 - longbridge.py:211-360 - mt5_loader.py:79-147 - okx.py:72-99 - okx.py:267-323

结论

Vibe-Trading 的专业数据源通过统一加载器接口与注册表机制,实现了跨市场、可降级、可观测的数据接入。QVeris 提供付费能力路由与预算控制;RSSHub 提供事件驱动的实时信号;Longbridge、MT5、OKX 分别覆盖港美股、外汇期货与加密货币的高频与历史数据。结合缓存、重试、预算与 OHLC 校验,可在复杂交易场景中稳定运行并持续优化性能。

[本节为总结性内容,不直接分析具体文件]

附录

[本节为通用指导,不直接分析具体文件]