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

https://www.vnpy.com/forum/topic/1334-jiao-ben-ce-lue-engine-get-positionfan-hui-kong-zhi?page=1#pid14528

这个帖子里面 直接就是 self.pos=self.engine.get_all_positions()

但是 这个engine 在2.1.4里面好像没有import进来,还是我哪里没搞对。谢谢!

Member
avatar
加入于:
帖子: 3118
声望: 181

没有import就import试试看呗

Member
avatar
加入于:
帖子: 3
声望: 0

VNPY中持仓查询的方法,可以根据以下以下原理灵活变通:
1.在CTP_gateway中定义了计时器处理函数,def process_timer_event(self, event): 它的功能是每2秒查询一次账户持仓(CTP_gateway里也有个队列)。

  1. 在CTP_gateway中向CTP柜台请求查询账户持仓后,CTP柜台响应、用def onRspQryInvestorPosition()来处理响应,这函数调用on_position,把查询到的结果推入事件引擎队列中。
  2. main_engine从队列中读持仓数据,用def process_position_event()函数来处理查询到的持仓数据,在这个函数中,把查询的持仓数据缓存到了self.positions这个字典中
  3. 那么在CTA策略中如果想查看账户持仓数据,那就调用主引擎的get_position或者get_all_position(),就可看到持仓数据,也就实现了你想要的“调用”。
Member
avatar
加入于:
帖子: 8
声望: 0

cc5168 wrote:

VNPY中持仓查询的方法,可以根据以下以下原理灵活变通:
1.在CTP_gateway中定义了计时器处理函数,def process_timer_event(self, event): 它的功能是每2秒查询一次账户持仓(CTP_gateway里也有个队列)。

  1. 在CTP_gateway中向CTP柜台请求查询账户持仓后,CTP柜台响应、用def onRspQryInvestorPosition()来处理响应,这函数调用on_position,把查询到的结果推入事件引擎队列中。
  2. main_engine从队列中读持仓数据,用def process_position_event()函数来处理查询到的持仓数据,在这个函数中,把查询的持仓数据缓存到了self.positions这个字典中
  3. 那么在CTA策略中如果想查看账户持仓数据,那就调用主引擎的get_position或者get_all_position(),就可看到持仓数据,也就实现了你想要的“调用”。
    有范例没?在策略里得持仓查询。
© 2015-2019 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号-3

沪公网安备 31011502017034号