vn.py官网
开源量化社区
Member
加入于:
帖子: 30
声望: 0

策略在运行当中,考虑追单,平仓等原因,需要获取当日的历史成交信息,当前的持仓信息(甚至包括昨仓和今仓)以及当日的委托信息等。。

1)看了论坛的一些提问和说法:在策略里,是没有接口获取吗?如果有,请问要怎么获取。main_engine.get_all_trades这种是可以直接用吗?
2)如果不能在策略获取,那是不是说要在策略的onTrade/onOrder里边,这些信息全部由策略代码来自己维护这些信息?
3)假设自己维护这些信息,那么怎么确保和ctp柜台端保持一致。可能有各种原因导致自己保存的和柜台的不一致的情况。可以定期从CTP同步还是建议策略怎么做?有具体同步函数接口吗
3)如果在策略运行的过程中,使用vnpy界面进行了开平仓处理,会触发策略的onTrade/onOrder吗(如果有单过来,还可以自己维护起来)? 再者,如果未经过vnpy,而是通过类似快期这种ctp客户端操作,vnpy底层会忽略还是说会触发到策略层,由策略层来自己决定如何处理?
谢谢。

Member
avatar
加入于:
帖子: 3033
声望: 174

可参考https://www.vnpy.com/forum/topic/3819-ctpgatewayque-shao-li-shi-wen-ti-he-li-shi-cheng-jiao-cha-xun

Member
加入于:
帖子: 30
声望: 0

谢谢回答。

看了你给的帖子里最后的回答,好像也是自己去记录保存所有下单信息及回报信息,然后自己计算。

可以在策略层直接调用engineer的对应接口吗?get_all_postions之类的。。新手技能有限,不知道有没有列子可以参考。

感谢!

Member
avatar
加入于:
帖子: 3033
声望: 174

那就试试调用主引擎的get_position或者get_all_position吧
get_position函数使用可参考https://www.vnpy.com/docs/cn/script_trader.html#id7

© 2015-2019 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号-3

沪公网安备 31011502017034号