veighna-global / vnpy_binance

Binance trading gateway for VeighNa Evo
MIT License
236 stars 100 forks source link

最近on_trader方法概率不会被调用 #24

Closed xuxin3101 closed 1 year ago

xuxin3101 commented 2 years ago

最近发生的,ontrader方法在有实际成交的时候不被触发,而且pos也没有更新,你们有没有相同的情况

TrinityWater1991 commented 2 years ago

最近发生的,ontrader方法在有实际成交的时候不被触发,而且pos也没有更新,你们有没有相同的情况

有完整报错信息吗?订单已经 成交,本地显示被拒单,self.pos没更新?

xuxin3101 commented 2 years ago

没有报错信息,但是如果策略写了cancel_all的话会报撤单失败 INFO: 撤单失败,状态码:400,信息:{"code":-2011,"msg":"Unknown order sent."} 也就是说明on_trader方法实际没有被触发,这单实际已经成交了,vnpy这边还是不知道这个信息的

TrinityWater1991 commented 2 years ago

没有报错信息,但是如果策略写了cancel_all的话会报撤单失败 INFO: 撤单失败,状态码:400,信息:{"code":-2011,"msg":"Unknown order sent."} 也就是说明on_trader方法实际没有被触发,这单实际已经成交了,vnpy这边还是不知道这个信息的

2cb9598443516369b4356f3734c552f 是不是这里直接return了呢,我也遇到了相同的问题。

xuxin3101 commented 2 years ago

没有报错信息,但是如果策略写了cancel_all的话会报撤单失败 INFO: 撤单失败,状态码:400,信息:{"code":-2011,"msg":"Unknown order sent."} 也就是说明on_trader方法实际没有被触发,这单实际已经成交了,vnpy这边还是不知道这个信息的

2cb9598443516369b4356f3734c552f 是不是这里直接return了呢,我也遇到了相同的问题。

我看了下代码和币安的api

image image image

应该就是你说的这个问题

TrinityWater1991 commented 2 years ago

没有报错信息,但是如果策略写了cancel_all的话会报撤单失败 INFO: 撤单失败,状态码:400,信息:{"code":-2011,"msg":"Unknown order sent."} 也就是说明on_trader方法实际没有被触发,这单实际已经成交了,vnpy这边还是不知道这个信息的

2cb9598443516369b4356f3734c552f 是不是这里直接return了呢,我也遇到了相同的问题。

我看了下代码和币安的api image image image 应该就是你说的这个问题

我又检查测试了一下,应该是trade ws api断开连接了,最近网络不太好,我定时重连目前再没发生了 image

TrinityWater1991 commented 2 years ago

on_keep_user_stream 是定时被触发的被动函数,直接在下面增加连接trade ws函数

xuxin3101 commented 2 years ago

on_keep_user_stream 是定时被触发的被动函数,直接在下面增加连接trade ws函数

好的,我修改代码看下效果

TrinityWater1991 commented 2 years ago

方便加微信讨论吗?

xuxin3101 commented 2 years ago

on_keep_user_stream 是定时被触发的被动函数,直接在下面增加连接trade ws函数

好像还是不行,我又加了个crontab试试

linhertz commented 2 years ago

我也遇到同样问题,还不知道怎么解决,请问有最终的解决方案吗?

xuxin3101 commented 2 years ago

我也遇到同样问题,还不知道怎么解决,请问有最终的解决方案吗?

提了一个pr,这个原因是因为币安的那个延长接口有问题,即使正确调用了延长接口,对应的key也会变,我现在的处理方式是,用那个pr,再配合contab,一天两次重启就可以完全解决了

linhertz commented 2 years ago

我也遇到同样问题,还不知道怎么解决,请问有最终的解决方案吗?

提了一个pr,这个原因是因为币安的那个延长接口有问题,即使正确调用了延长接口,对应的key也会变,我现在的处理方式是,用那个pr,再配合contab,一天两次重启就可以完全解决了

谢谢,已经用了那个pr。但是Websocket 又出现了报错。请问crontab具体怎么用?直接写在API里面吗?

xuxin3101 commented 2 years ago

我也遇到同样问题,还不知道怎么解决,请问有最终的解决方案吗?

提了一个pr,这个原因是因为币安的那个延长接口有问题,即使正确调用了延长接口,对应的key也会变,我现在的处理方式是,用那个pr,再配合contab,一天两次重启就可以完全解决了

谢谢,已经用了那个pr。但是Websocket 又出现了报错。请问crontab具体怎么用?直接写在API里面吗?

不是,因为我是linux,所以直接用crontab定时重启

linhertz commented 2 years ago

我也遇到同样问题,还不知道怎么解决,请问有最终的解决方案吗?

提了一个pr,这个原因是因为币安的那个延长接口有问题,即使正确调用了延长接口,对应的key也会变,我现在的处理方式是,用那个pr,再配合contab,一天两次重启就可以完全解决了

谢谢,已经用了那个pr。但是Websocket 又出现了报错。请问crontab具体怎么用?直接写在API里面吗?

不是,因为我是linux,所以直接用crontab定时重启

好的,我修改试试

AITrading2020 commented 2 years ago

这个问题的根源应该就是trade ws api断开了吧? 大家有什么好的办法避免这个情况吗? 不然很容易出现策略pos与账户仓位对不上的情况。

AITrading2020 commented 2 years ago

@xuxin3101 @TrinityWater1991 @linhertz 我们一起建立个关于币安接口的微信群如何? CoolQuant, 这个是我的微信号,大家有兴趣的话加我一下,平时遇到的币安接口问题我们可以及时在群里沟通。

AITrading2020 commented 2 years ago

没有报错信息,但是如果策略写了cancel_all的话会报撤单失败 INFO: 撤单失败,状态码:400,信息:{"code":-2011,"msg":"Unknown order sent."} 也就是说明on_trader方法实际没有被触发,这单实际已经成交了,vnpy这边还是不知道这个信息的

这个撤单失败的情况经常出现在要进行撤单的瞬间挂单被成交了,而成交回报还没来得及推送到on_trade。 这种情况发生的时候,可能行情和交易的ws都是正常连接的。这个报错我觉得并不是ws有问题,而是挂撤单机制还需要优化。

AITrading2020 commented 2 years ago

我也遇到同样问题,还不知道怎么解决,请问有最终的解决方案吗?

提了一个pr,这个原因是因为币安的那个延长接口有问题,即使正确调用了延长接口,对应的key也会变,我现在的处理方式是,用那个pr,再配合contab,一天两次重启就可以完全解决了

@xuxin3101 现在用你提的那个pr,每10分钟重新start_user_stream的方式,有遇到过什么问题吗? 这种方式会不会导致生成的listenKey太多了呢? 另外请问一下为什么还要每天重启两次呢?

AITrading2020 commented 2 years ago

我也遇到同样问题,还不知道怎么解决,请问有最终的解决方案吗?

提了一个pr,这个原因是因为币安的那个延长接口有问题,即使正确调用了延长接口,对应的key也会变,我现在的处理方式是,用那个pr,再配合contab,一天两次重启就可以完全解决了

谢谢,已经用了那个pr。但是Websocket 又出现了报错。请问crontab具体怎么用?直接写在API里面吗?

@linhertz 请问又遇到过Websocket 报的什么错误呢?

linhertz commented 2 years ago

@xuxin3101 @TrinityWater1991 @linhertz 我们一起建立个关于币安接口的微信群如何? CoolQuant, 这个是我的微信号,大家有兴趣的话加我一下,平时遇到的币安接口问题我们可以及时在群里沟通。

好,我加你微信。

xuxin3101 commented 2 years ago

我也遇到同样问题,还不知道怎么解决,请问有最终的解决方案吗?

提了一个pr,这个原因是因为币安的那个延长接口有问题,即使正确调用了延长接口,对应的key也会变,我现在的处理方式是,用那个pr,再配合contab,一天两次重启就可以完全解决了

@xuxin3101 现在用你提的那个pr,每10分钟重新start_user_stream的方式,有遇到过什么问题吗? 这种方式会不会导致生成的listenKey太多了呢? 另外请问一下为什么还要每天重启两次呢?

目前没遇到问题,因为发现一天不重启两次还是会出问题,所以选择这样做