其他连接器

📎 引用文件

本文引用的文件 - alpaca/sdk.py - README.md - okx.py - india_broker_loader.py - test_etoro_connector.py - test_trading212_connector.py - test_dhan_period_reject.py - test_shoonya_interval_map.py - test_alpaca_tap_routing.py - test_okx_bar_map.py

目录

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

简介

本章节面向“其他内置连接器”,聚焦 Alpaca、老虎证券(Tiger)、OKX、eToro、Robinhood、Dhan、Shoonya、Trading212 等连接器的实现特点与使用方法。文档从市场定位、特色功能、配置差异入手,结合代码库中的实际测试与加载器实现,给出初始化配置要点、认证方式、API 限制与错误处理策略,并重点说明区域性市场的适配方案:印度市场(Dhan、Shoonya)、欧洲市场(Trading212)与美国市场(Alpaca、Robinhood)。

项目结构

围绕这些连接器的关键代码分布在以下位置: - 交易连接器与配置:Alpaca 的 SDK 封装位于 trading/connectors/alpaca/sdk.py,包含环境选择、数据源与只读模式等配置项。 - 回测数据加载器:OKX 的回测数据加载器位于 backtest/loaders/okx.py;印度券商数据加载器位于 backtest/loaders/india_broker_loader.py。 - 连接器行为验证:针对 eToro、Trading212、Dhan、Shoonya、Alpaca、OKX 的测试用例覆盖区间映射、周期拒绝、路由与行为约束等。

graph TB subgraph "交易连接器" A["Alpaca SDK<br/>配置与环境选择"] end subgraph "回测数据加载器" B["OKX 加载器<br/>K线/行情映射"] C["印度券商加载器<br/>本地/代理接入"] end subgraph "连接器测试" D["eToro 行为测试"] E["Trading212 行为测试"] F["Dhan 周期拒绝测试"] G["Shoonya 区间映射测试"] H["Alpaca TAP 路由测试"] I["OKX K线映射测试"] end A --> H B --> I C --> F C --> G D --> D E --> E

图表来源 - alpaca/sdk.py:65-83 - okx.py - india_broker_loader.py - test_etoro_connector.py - test_trading212_connector.py - test_dhan_period_reject.py - test_shoonya_interval_map.py - test_alpaca_tap_routing.py - test_okx_bar_map.py

章节来源 - alpaca/sdk.py:65-83 - okx.py - india_broker_loader.py - test_etoro_connector.py - test_trading212_connector.py - test_dhan_period_reject.py - test_shoonya_interval_map.py - test_alpaca_tap_routing.py - test_okx_bar_map.py

核心组件

章节来源 - alpaca/sdk.py:65-83 - okx.py - india_broker_loader.py - test_etoro_connector.py - test_trading212_connector.py - test_dhan_period_reject.py - test_shoonya_interval_map.py - test_alpaca_tap_routing.py - test_okx_bar_map.py

架构总览

下图展示了各连接器在系统中的角色与交互:Alpaca 通过 TAP 凭证进行鉴权与审批转发;OKX 作为回测数据源参与策略研究;印度券商加载器负责本地/代理接入;eToro、Trading212、Robinhood、老虎证券分别对接各自平台能力,并通过统一的工具与运行时进行编排。

graph TB Client["策略/工具调用"] --> Runtime["运行时/编排层"] Runtime --> Alpaca["Alpaca 连接器<br/>纸盘/实盘切换"] Runtime --> Tiger["老虎证券 连接器"] Runtime --> Robinhood["Robinhood 连接器"] Runtime --> EToro["eToro 连接器"] Runtime --> Trading212["Trading212 连接器"] Runtime --> IndiaBroker["印度券商加载器<br/>Dhan/Shoonya"] Runtime --> OKX["OKX 回测加载器"] Alpaca --> TAP["TAP 凭证与审批"] OKX --> Data["历史数据/K线"] IndiaBroker --> LocalProxy["本地/代理接入"]

图表来源 - alpaca/sdk.py:65-83 - okx.py - india_broker_loader.py - test_alpaca_tap_routing.py

详细组件分析

Alpaca 连接器

sequenceDiagram participant Tool as "工具/策略" participant Runtime as "运行时" participant TAP as "TAP 审批" participant Alpaca as "Alpaca 连接器" Tool->>Runtime : 发起写操作请求 Runtime->>TAP : 提交审批(含目标主机) TAP-->>Runtime : 批准/拒绝/超时 alt 批准 Runtime->>Alpaca : 转发订单/取消 Alpaca-->>Runtime : 执行结果 Runtime-->>Tool : 返回结果 else 拒绝/超时 Runtime-->>Tool : 返回错误(不发送) end

图表来源 - alpaca/sdk.py:65-83 - README.md:1430-1452 - test_alpaca_tap_routing.py

章节来源 - alpaca/sdk.py:65-83 - README.md:1430-1452 - test_alpaca_tap_routing.py

OKX 回测加载器

flowchart TD Start(["开始"]) --> Parse["解析请求参数<br/>周期/起止时间"] Parse --> Validate{"周期合法?"} Validate -- 否 --> Reject["拒绝请求/返回错误"] Validate -- 是 --> Fetch["拉取数据"] Fetch --> Map["映射为内部格式"] Map --> Return["返回数据集"] Reject --> End(["结束"]) Return --> End

图表来源 - okx.py - test_okx_bar_map.py

章节来源 - okx.py - test_okx_bar_map.py

印度市场连接器(Dhan、Shoonya)

flowchart TD S(["开始"]) --> CheckPeriod["检查周期是否支持"] CheckPeriod -- 不支持 --> Deny["拒绝请求"] CheckPeriod -- 支持 --> MapInterval["映射到有效区间"] MapInterval --> CallBroker["调用券商接口/代理"] CallBroker --> Result{"成功?"} Result -- 否 --> HandleErr["错误处理/重试"] Result -- 是 --> ReturnData["返回数据"] Deny --> E(["结束"]) HandleErr --> E ReturnData --> E

图表来源 - india_broker_loader.py - test_dhan_period_reject.py - test_shoonya_interval_map.py

章节来源 - india_broker_loader.py - test_dhan_period_reject.py - test_shoonya_interval_map.py

eToro 连接器

sequenceDiagram participant Tool as "工具/策略" participant EToro as "eToro 连接器" Tool->>EToro : 查询可用产品/下单 EToro-->>Tool : 返回结果/错误

图表来源 - test_etoro_connector.py

章节来源 - test_etoro_connector.py

Trading212 连接器

sequenceDiagram participant Tool as "工具/策略" participant T212 as "Trading212 连接器" Tool->>T212 : 查询/下单 T212-->>Tool : 返回结果/错误

图表来源 - test_trading212_connector.py

章节来源 - test_trading212_connector.py

Robinhood 连接器

sequenceDiagram participant Tool as "工具/策略" participant RH as "Robinhood 连接器" Tool->>RH : 查询/下单 RH-->>Tool : 返回结果/错误

图表来源 - test_default_deny_unknown_robinhood_tool.py

章节来源 - test_default_deny_unknown_robinhood_tool.py

老虎证券(Tiger)连接器

sequenceDiagram participant Tool as "工具/策略" participant Tiger as "老虎证券 连接器" Tool->>Tiger : 查询/下单 Tiger-->>Tool : 返回结果/错误

图表来源 - test_tiger_period_hour_case.py

章节来源 - test_tiger_period_hour_case.py

依赖关系分析

graph LR Alpaca["Alpaca"] --> TAP["TAP 凭证/审批"] OKX["OKX 加载器"] --> Map["周期映射/边界保护"] India["印度券商加载器"] --> Proxy["本地/代理接入"] EToro["eToro"] --> Runtime["运行时"] T212["Trading212"] --> Runtime RH["Robinhood"] --> Runtime Tiger["老虎证券"] --> Runtime

图表来源 - alpaca/sdk.py:65-83 - okx.py - india_broker_loader.py - test_etoro_connector.py - test_trading212_connector.py - test_tiger_period_hour_case.py

章节来源 - alpaca/sdk.py:65-83 - okx.py - india_broker_loader.py - test_etoro_connector.py - test_trading212_connector.py - test_tiger_period_hour_case.py

性能注意事项

故障排查指南

章节来源 - README.md:1430-1452 - alpaca/sdk.py:65-83 - test_okx_bar_map.py - test_dhan_period_reject.py - test_shoonya_interval_map.py - test_etoro_connector.py - test_trading212_connector.py - test_tiger_period_hour_case.py

结论

本仓库为多种内置连接器提供了统一的接入与编排能力。Alpaca 通过 TAP 凭证与审批通道实现安全的纸盘/实盘切换;OKX 作为回测数据源具备严格的周期映射与边界保护;印度市场连接器针对本地特性进行了周期拒绝与区间映射;eToro、Trading212、Robinhood、老虎证券则遵循各自平台的区域与产品限制。建议在研究与回测阶段优先使用只读模式,并在实盘中启用审批与限流策略,以确保系统的安全性与稳定性。

附录

章节来源 - README.md:1430-1452 - alpaca/sdk.py:65-83 - okx.py - india_broker_loader.py - test_etoro_connector.py - test_trading212_connector.py - test_dhan_period_reject.py - test_shoonya_interval_map.py - test_alpaca_tap_routing.py - test_okx_bar_map.py