模拟交易默认支持几个同时运行?
/
问题描述
解决方案
根据 ptrade API 文档,官方并未在文档中明确规定“模拟交易默认支持的具体策略数量上限”。实际上,模拟交易或实盘交易能够同时运行的策略数量,通常取决于券商的实际系统配置以及运行环境的硬件资源。
虽然没有明确的数量限制,但在 ptrade 中进行多任务或多策略并发运行时,有以下几点关键信息需要注意:
1. 单策略内的多任务并行
在同一个策略内部,ptrade 支持通过定时函数实现多个任务的并发执行:
run_daily:可以多次设定,以实现多个按日周期的定时任务。run_interval:可以多次设定,引擎会以多个线程并行运行这些任务。但官方特别提醒:要小心不同线程之间的逻辑关联处理,避免数据竞争或逻辑冲突。
2. 多策略同时运行的注意事项
如果您的账户同时运行了多个交易策略,在调用某些全局性 API 时需要格外谨慎。例如:
cancel_order_ex(order_param):该函数用于撤销get_all_orders返回的订单。文档明确指出:“账户多个交易运行时调用该函数会撤销其他交易产生的订单,可能对其他正在运行的交易策略产生影响”。
3. 建议与最佳实践
- 咨询券商:如果您需要运行大量策略,建议直接咨询您开户的券商,了解其服务器对单个账户并发策略数量的具体限制。
- 订单隔离:在多策略环境下,尽量通过策略内部记录的
order_id来管理和撤销订单(使用cancel_order(order_id)),避免使用全局撤单接口误伤其他策略的委托。 - 资源管理:多线程(如多个
run_interval)和多策略会消耗更多的系统资源,请确保代码逻辑高效,避免在盘中高频调用耗时的同步接口。