以下是平仓代码:
while True: position_dict = api.get_position() api.wait_update() pos_len = len(position_dict) if pos_len == 0: break for key, value in position_dict.items(): # 根据技术指标平仓
但即使在期货APP中看见没有持仓,程序还是在运行不会停止。
Shoe X 已回答的问题 2020年10月15日
文档说:
注意: 为保留一些可供用户查询的历史信息, 如 volume_long_yd(本交易日开盘前的多头持仓手数) 等字段, 因此服务器会返回当天已平仓合约( pos_long 和 pos_short 等字段为0)的持仓信息
于是,遇到当天有平仓时,pos_len == 0 为False,则不会退出循环。
试试这样写:
position_dict = api.get_position() for SYMBOL, position in position_dict.items(): if 平仓条件成立: # 下单指令 while True: api.wait_update() if position.pos_long==0 and position.pos_short==0: break
Shoe X 编辑答案 2020年10月16日
谢谢老师提醒,已经做了修改
这种情况如果有锁仓的话也会不准的可以再加个判断pos_long 是否为0