当前位置: 首页 > news >正文

从 vn.py 迁到天勤:事件引擎与 wait_update 怎么转

前言vn.py 那套我熟EventEngine一转on_tick、on_bar、on_order各自注册CtaTemplate 里写逻辑挺有「正规军」的感觉。第一次用天勤时我下意识又建了一个EventEngine把天勤的 quote 往里面塞结果双引擎并行——tick 进 vn、也进天勤下单有时走 MainEngine、有时又在天勤 循环里insert_order模拟盘一天下了双倍单风控当场叫停。后来才明白天勤自己已经是引擎while True: api.wait_update()就是主事件泵你要做的是把原来的on_xxx改成「在这一帧里如果 is_changing 了就调用」。不是天勤缺功能是调度权只能有一个老大。下面是我带同事迁 vn 时的对照表和 class 模板算法均线、通道可以原样搬BarGenerator 的思想也能留但数据源和循环必须换天勤的。一、结构对照别找一一等价找职责等价vn.py 里你熟悉的天勤里建议EventEnginewhile True: api.wait_update()on_tickif api.is_changing(quote): ...on_barif api.is_changing(klines.iloc[-1], datetime): ...MainEngine.send_orderinsert_order/TargetPosTaskCtaTemplate自写classon_update()vn 的「事件类型字符串」在天勤里没有对应物——不必硬造用is_changing的字段参数就能达到「只在价格变时算」「只在新 K 线时算」的效果。二、把 CtaTemplate 收成 class我用的模板classMyStrategy:def__init__(self,api):self.apiapi self.quoteapi.get_quote(SHFE.rb2510)self.klinesapi.get_kline_serial(SHFE.rb2510,60)defon_update(self):apiself.apiifapi.is_changing(self.klines.iloc[-1],datetime):self.on_bar_close()ifapi.is_changing(self.quote,last_price):self.on_tick()defon_bar_close(self):passdefon_tick(self):passapiTqApi(TqSim(),authTqAuth(账户,密码))sMyStrategy(api)whileTrue:api.wait_update()s.on_update()多策略就多个 instance禁止多个策略共用一个全局target_pos。vn 里你可能习惯每个 Strategy 独立天勤也一样只是共用一个wait_update。三、数据容器BarGenerator 可以留引擎别留vn.py 的 BarGenerator、ArrayManager 继续服务你的指标计算没问题但 K 线来源改成get_kline_serial的 DataFrame。我踩过的坑是仍在 vn 里合成 bar天勤也订了 kline两套 bar 差一根信号差一分钟能纠结一整天。不要在 vn 的MainEngine里嵌TqApi选一条主循环。研究阶段可以在 Jupyter 里用 vn 算因子、天勤只负责执行但生产环境尽量一条线否则出问题不知道信谁。四、迁移顺序我要求新人按周走第一周只迁行情和指标模拟盘对价格、对 K 线收盘时间不下单。第二周迁TargetPosTask或insert_order1 手来回对持仓和 order 日志。第三周迁风控、多品种、夜盘时段过滤。跳步的人往往在第三周才暴露「bar 差一根」这种基础问题返工更痛。五、常见坑vn 线程 天勤 单线程二选一。全局变量在多个策略间共享状态进 class。回调里下单、主循环里也下单统一从一个on_bar_close出口下单。总结vn.py 迁天勤我花最多时间的不是学 API是克制再包一层 EventEngine 的冲动。天勤的wait_update已经帮你阻塞到「有更新」了is_changing帮你过滤「谁更新」这和 vn 的 emit 本质是同一件事。你把 CtaTemplate 改成 class on_update算法留、调度换通常两三周能平稳过渡。文档advanced/for_vnpy_user.rst建议团队一起读有争议时以文档为准别以「我以前 vn 是这么写的」为准——两个框架的脾气不一样。FAQ1能否长期两套并存不建议维护成本和幽灵 bug 都会上去。2回测怎么迁用TqBacktest替换 vn 回测模块策略类尽量复用。3多策略怎么写多 class一个wait_update各自is_changing早返回。4性能会变差吗看你是不是 tick 级全算vn 也一样怕这个。5官方迁移说明在哪advanced/for_vnpy_user.rst。风险提示本文用于期货量化技术实践讨论不构成投资建议。
http://www.gsyq.cn/news/1359549.html

相关文章:

  • 3步搞定跨平台资源下载:res-downloader实战指南
  • 论文写到一半卡壳了?师兄推荐这几个AI写作辅助软件
  • 暂时停止所有开发工作------全部转到销售+推广
  • CANN ATC模型编译器深度解析:ONNX到OM的编译全流程与黑盒参数详解
  • FastGithub:终极GitHub加速解决方案,让你的开发效率提升5倍
  • 金刚砂地坪技术选型指南及东北合规厂家实测解析 - 奔跑123
  • 智慧树刷课插件:5分钟告别手动刷课烦恼,让学习更高效
  • Windows安卓应用安装器:5分钟快速上手指南
  • 温州6月雨季来临,房屋漏水怎么办?卫生间免砸砖防水、外墙、屋面+地下室渗漏。权威防水公司靠谱TOP5推荐(2026年6月本地最新深度调研) - 企业资讯
  • MPC5604B/C 时钟系统全解
  • 鸣潮自动化革命:基于图像识别的智能游戏助手解决方案
  • 3分钟搞定Windows 11系统优化:Win11Debloat开源工具完整指南
  • 滁州6月雨季来临,房屋漏水怎么办?卫生间免砸砖防水、外墙、屋面+地下室渗漏。权威防水公司靠谱TOP5推荐(2026年6月本地最新深度调研) - 企业资讯
  • RK3588开发板Ubuntu系统部署终极指南:从零构建完整Linux环境
  • 华实展厅出圈!大自然标识匠心打造,目视化呈现基建巨头的实力底气
  • 一站式管理多个项目API Key与访问权限的最佳实践
  • 泰州6月雨季来临,房屋漏水怎么办?卫生间免砸砖防水、外墙、屋面+地下室渗漏。权威防水公司靠谱TOP5推荐(2026年6月本地最新深度调研) - 企业资讯
  • 绍兴6月雨季来临,房屋漏水怎么办?卫生间免砸砖防水、外墙、屋面+地下室渗漏。权威防水公司靠谱TOP5推荐(2026年6月本地最新深度调研) - 企业资讯
  • 抖音批量下载神器:5分钟搞定无水印视频与完整合集归档
  • 使用OpenClaw连接Taotoken配置Agent工作流的具体步骤
  • 通过Taotoken Token Plan套餐降低长期项目成本的观察
  • 【软件架构设计-综合题(8)】计算机系统基础知识点
  • 硬件加密为何成为工业级SSD的数据安全底座?天硕存储构建自主可控安全体系
  • MOS认证过来人坦白局,这些信息你必须知道
  • 青少年视力矫正:科学方法与专业建议
  • 【2026年】玩具电池突然没电怎么办?家长必学的应急处理与替代方案
  • 如何用F3工具快速检测U盘SD卡真实容量:5个步骤保护你的数据安全
  • SPR 实验设备挑选:T200 和 8K 该怎么选?兼顾灵敏度与实验通量
  • 在Taotoken平台试用不同模型后,关于输出质量与风格差异的初步印象
  • 如何在5个简单步骤内为RK3588开发板部署完整Ubuntu系统