3.89K 浏览
0

api = TqApi(TqAccount(\”H海通期货\”, \”320102\”, \”123456\”), auth=\”信易账户,账户密码\”)
acc = api.get_account()
pos = api.get_position()
print(\’可用资金:%s 多头持仓:%d 空头持仓:%d\’ % (acc.available, pos.pos_long, pos.pos_short))

报错:

AttributeError: \’Entity\’ object has no attribute \’pos_long\’

持仓只能按合约查询吗?没有账户总持仓吗?

Shoe X 已回答的问题 2020年9月11日
0

from tqsdk import TqApi
api = TqApi()
pos = api.get_position()
#pos是字典,要获得其中一个持仓的某个字段value,可以这样:
#pos[key][key]或pos[key].key
#其中pos_long只能用后者获得
list_SYMBOL = list(pos)
print("当前持仓:", list_SYMBOL)
pos_long = sum(pos[x].pos_long for x in list_SYMBOL)
pos_short = sum(pos[x].pos_short for x in list_SYMBOL)
print(f"多头持仓:{pos_long} 空头持仓:{pos_short}")
api.close()

Shoe X 已回答的问题 2020年9月11日
0

你这样查的就是总持仓,查回来的数据结构是一个 dict, key 是合约symbol,value 才是 position
https://doc.shinnytech.com/tqsdk/latest/reference/tqsdk.api.html#tqsdk.api.TqApi.get_position

lookis 已回答的问题 2020年9月10日