千家信息网

VNPY重新启动后没有停止挂单原因和解决方法是什么

发表于:2024-09-25 作者:千家信息网编辑
千家信息网最后更新 2024年09月25日,本篇文章为大家展示了VNPY重新启动后没有停止挂单原因和解决方法是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。之前在这个链接里面,提了vnpy重启后,比
千家信息网最后更新 2024年09月25日VNPY重新启动后没有停止挂单原因和解决方法是什么

本篇文章为大家展示了VNPY重新启动后没有停止挂单原因和解决方法是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

之前在这个链接里面,提了vnpy重启后,比如开盘前开始,即使符合挂单条件,也没有挂单出现的问题,给了一个比较麻烦的方法。
后来研究代码,发现原因应该是:
程序用onInit(self) 初始化回放数据,但是此时self.trading 为false,不会发出停止单;而启动onStart时候,不会重新回放启动,也就不会有挂单,这样重启第一个时间K线是没有停止单在的。
由于历史回测是连续的K线,这样也就是造成回测和实盘差异较大。

之前链接解决方法比较复杂,简单解决方法就是把回放最后一个bar放在onStart里面跑,这时候self.trading 为True,允许挂单。
1. 修改策略的onInit(self) ,回放不包括最后一个bar

def onInit(self):    """初始化策略(必须由用户继承实现)"""    self.writeCtaLog(u'%s策略初始化' % self.name)    # 载入历史数据,并采用回放计算的方式初始化策略数值    initData = self.loadBar(self.initDays)    for bar in initData[:-1]:        self.onBar(bar)    self.putEvent()

2.给onStart加入最后一个bar回放,

def onStart(self):    """启动策略(必须由用户继承实现)"""    initData = self.loadBar(1)    bar = initData[-1]    self.onBar(bar)    self.writeCtaLog(u'%s策略启动' % self.name)        self.putEvent()

上述内容就是VNPY重新启动后没有停止挂单原因和解决方法是什么,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

策略 方法 原因 内容 历史 就是 技能 数据 用户 知识 链接 复杂 简明 较大 简明扼要 也就是 代码 历史数据 差异 数值 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 为什么贪婪洞窟2只开一个服务器 影速科技的云服务器下载 网络安全管理局和工信局 如何把网络安全隐患彻底消除 方城系统软件开发公司 现代网络技术导论网课答案 武汉市规划的网络安全中心 c和数据库哪个更难学 网络安全技术专题论文 介绍网络安全活动英语 网络安全预防与应对措施 饥荒服务器搭建证书不存在 江苏八月网络技术有限公司 国家网络安全宣传周实施方案 c 重复计算多条数据库 网络安全事件告知内容包括 网络安全法如何实施 网络安全调研报告 统计人为因素 阿里云服务器是什么牌子的 敏捷软件开发的kpi 千方百计连接服务器失败 网站数据库设计视频 附加数据库 错误5159 网络安全会议嘉宾致辞 附加数据库 sql ups和服务器放到一起安全吗 网警检查高速公路网络安全 杭州市网络安全 存储服务器和磁盘柜 网络安全手册报图片
0