交易引擎
字数
1085 字
阅读时间
5 分钟
交易引擎是 Homalos 量化交易系统的中央协调器,负责协调策略执行、风险管理、订单处理和账户管理。它采用事件驱动架构,能够实时处理市场数据和交易信号,同时保持严格的风险控制和订单生命周期管理。
底层事件系统详见事件驱动系统,策略开发详见策略开发,网页端交易引擎管理详见后端API。
核心架构
交易引擎由四个主要管理组件组成,它们协同处理交易操作的各个方面:
text
StrategyManager
RiskManager
OrderManager
AccountManager
策略管理
该类StrategyManager
处理交易策略的完整生命周期,从动态加载到执行监控和错误恢复。
关键组件
成分 | 目的 | 关键方法 |
---|---|---|
StrategyManager | 主要协调员 | load_strategy() ,start_strategy() ,stop_strategy() |
StrategyHealthMonitor | 健康监测 | check_strategy_health() ,attempt_recovery() |
StrategyEventHandler | 事件处理 | 事件路由和处理 |
策略加载流程
策略管理器使用动态模块加载在运行时实例化策略
该load_strategy()
方法执行自动策略类发现和 UUID 生成:
- 从文件路径动态导入策略模块
- 自动发现继承自
BaseStrategy
- 生成唯一的 UUID 用于策略识别
- 处理导入错误和验证失败
策略健康监测
该系统包括具有自动恢复功能的全面健康监测:
恢复配置通过以下方式管理:
auto_recovery_enabled
:切换自动恢复max_recovery_attempts
:最大重试次数recovery_attempts
:每个策略尝试的跟踪
风险管理器
该RiskManager
通过多个验证层实施全面的交易前风险控制:
风险控制配置
风险检查 | 配置键 | 目的 |
---|---|---|
头寸规模 | max_position_size | 最大位置值 |
每日损失 | max_daily_loss | 每日亏损限额 |
订单大小 | max_order_size | 最大订购数量 |
订单频率 | order_frequency_limit | 每分钟订单限制 |
价格验证 | price_deviation_threshold | 价格偏离市场 |
交易时间 | trading_hours_check | 基于时间的验证 |
增强价格验证
风险管理者实施双层价格验证:
- 绝对价格限制:按工具类型划分的硬性限制
- 相对价格偏差:与市场价格的百分比偏差
风险监控
该系统包括实时风险监控和定期检查:
- 错误率监控:跟踪策略错误频率
- 市场状况检查:验证交易时间和市场状况
- 持仓集中度:监控投资组合集中度风险
订单管理器
该类OrderManager
处理从下单到执行的完整订单生命周期、维护订单状态并与交易网关协调。
订单数据管理
订单管理器维护全面的订单跟踪:
数据结构 | 目的 | 关键字段 |
---|---|---|
OrderInfo | 订单元数据 | order_data ,strategy_id ,create_time |
orders | 活动订单缓存 | Dict[str, OrderInfo] |
strategy_orders | 策略顺序映射 | Dict[str, set] |
system_to_ctp_orderid | ID映射 | 系统 ID → CTP ID |
订单 ID 映射
系统维护内部订单ID和网关订单ID之间的双向映射:
system_to_ctp_orderid
:将内部 UUID 映射到 CTP 订单 IDctp_to_system_orderid
:将 CTP 订单 ID 映射回内部 UUID
这使得跨系统边界的正确订单跟踪成为可能。
账户管理
该AccountManager
类别通过交易网关定期同步来跟踪账户余额、头寸和策略级损益。
定期同步
账户管理器实现自动同步:
- 查询间隔:30秒定期更新
- 事件驱动更新:实时交易处理
- 网关集成:账户和头寸查询
集成架构
交易引擎通过事件驱动接口与更广泛的系统集成:
关键事件类型
事件类型 | 来源 | 目标 | 目的 |
---|---|---|---|
STRATEGY_SIGNAL | 战略 | 订单管理器 | 订单下达请求 |
RISK_APPROVED | 风险管理器 | 订单管理器 | 风险验证结果 |
GATEWAY_SEND_ORDER | 订单管理器 | 网关 | 订单执行 |
ORDER_FILLED | 网关 | 客户经理 | 贸易更新 |
ACCOUNT_UPDATED | 网关 | 客户经理 | 帐户同步 |