VeighNa量化社区
你的开源社区量化交易平台 | vn.py | vnpy
Member
avatar
加入于:
帖子: 41
声望: 0

请教一下各位大佬,昨天我的策略发出信号后 导致我的持仓为 一手买开 和 一手卖开,但是我今天重新启动之后,我的资金界面和持仓界面都没有显示,重新启动多次之后,我的资金界面有显示,但是昨持仓界面还是空的,这个是为什么呢?另外请问持仓数据是保存在那里的?

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

description

Member
avatar
加入于:
帖子: 5516
声望: 334

合约查询成功信息还没输出,再等等吧

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

这个持仓的查询信息是直接从交易所获取的吗? 不会保存在本地? 我看本地似乎只保存了 pos 这个信息? 换句话说 如果我是锁仓的话 pos=0 但是其实我是双边持仓这个信息并没有保存在本地?

Super Moderator
avatar
加入于:
帖子: 91
声望: 8

在VeighNa中,持仓信息的查询和存储方式如下:


1. 持仓信息的来源

  • 交易所获取:持仓信息通常是从交易所直接获取的,通过交易接口(如CTP)查询账户的实际持仓。
  • 本地存储:VeighNa本地只保存策略的逻辑持仓(pos变量),而不是账户的实际持仓。

2. 锁仓情况下的持仓信息

  • 如果你进行了锁仓操作(如同时持有多仓和空仓),pos变量会显示为0,因为pos是净持仓(多仓 - 空仓)。
  • 双边持仓信息:实际的多仓和空仓信息不会保存在本地,而是通过交易接口从交易所实时获取。

3. 如何查询双边持仓

你可以通过以下方法查询账户的实际持仓(包括多仓和空仓):

positions = self.cta_engine.main_engine.get_all_positions()
   for position in positions:
       print(f"合约: {position.vt_symbol}, 方向: {position.direction}, 数量: {position.volume}")

这段代码会返回账户的所有持仓信息,包括多仓和空仓。


4. 总结

  • pos变量只保存策略的逻辑净持仓,锁仓时pos=0
  • 双边持仓信息(多仓和空仓)不会保存在本地,而是从交易所实时获取。
  • 使用get_all_positions()方法可以查询账户的实际持仓。

希望这些信息能帮到你!如果还有其他疑问,欢迎继续提问。

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

沪公网安备 31011502017034号

【用户协议】
【隐私政策】
【免责条款】