模拟账号。一直到满仓,程序退出。
问题有两个:
1、get_position没有更新,所以仓位判断一直为0,所以执行 TargetPosTask
2、TargetPosTask ,也没有更新,要不然连续开仓。
要是实盘吓死人啊。
pos = api.get_position(X)
while True:
api.wait_update()
if XXX:
# 持仓
chicang_long = pos.pos_long_his + pos.pos_long_today # 多头仓
chicang_short = pos.pos_short_his + pos.pos_short_today # 空头仓
# 已有,跳过
if chicang_long > 0: # 这句判断没错吧,估计是循环中 chicang一直为0,所以一直开仓。
continue
# 平空
if chicang_short > 0:
target_pos.set_target_volume(0)
# 开多
if YYY:
target_pos.set_target_volume(11)
2020-12-02 20:07:15 – INFO – 通知: 登录成功
2020-12-02 20:15:01 – WARNING – 通知: 与 wss://otg-sim.shinnytech.com/trade
网络连接断开,请检查客户端及网络是否正常
2020-12-02 20:15:11 – WARNING – 通知: 与 wss://otg-sim.shinnytech.com/trade
网络连接已恢复
2020-12-02 20:15:11 – INFO – 通知: 登录成功
2020-12-02 21:00:00 – INFO – 通知: 下单成功
2020-12-02 21:00:00 – INFO – 通知: 成交通知,合约:SHFE.fu2101,手数:11
2020-12-02 21:00:56 – INFO – 通知: 下单成功
2020-12-02 21:00:56 – INFO – 通知: 成交通知,合约:SHFE.ag2102,手数:2
2020-12-02 21:02:14 – INFO – 通知: 下单成功
2020-12-02 21:02:14 – INFO – 通知: 成交通知,合约:SHFE.fu2101,手数:11
2020-12-02 21:02:14 – INFO – 通知: 下单成功
2020-12-02 21:02:14 – INFO – 通知: 成交通知,合约:SHFE.fu2101,手数:11
2020-12-02 21:02:14 – INFO – 通知: 下单成功
2020-12-02 21:02:14 – INFO – 通知: 成交通知,合约:SHFE.fu2101,手数:11
2020-12-02 21:02:14 – INFO – 通知: 下单成功
2020-12-02 21:02:14 – INFO – 通知: 成交通知,合约:SHFE.fu2101,手数:11
2020-12-02 21:02:14 – INFO – 通知: 下单成功
2020-12-02 21:02:14 – INFO – 通知: 成交通知,合约:SHFE.fu2101,手数:11
2020-12-02 21:02:14 – INFO – 通知: 下单成功
2020-12-02 21:02:14 – INFO – 通知: 成交通知,合约:SHFE.fu2101,手数:11
2020-12-02 21:02:14 – INFO – 通知: 下单成功
2020-12-02 21:02:14 – INFO – 通知: 成交通知,合约:SHFE.fu2101,手数:11
2020-12-02 21:02:14 – INFO – 通知: 下单成功
2020-12-02 21:02:14 – INFO – 通知: 成交通知,合约:SHFE.fu2101,手数:11
2020-12-02 21:02:15 – INFO – 通知: 下单成功
2020-12-02 21:02:15 – INFO – 通知: 成交通知,合约:SHFE.fu2101,手数:11
2020-12-02 21:02:15 – INFO – 通知: 下单成功
2020-12-02 21:02:15 – INFO – 通知: 成交通知,合约:SHFE.fu2101,手数:11
2020-12-02 21:02:15 – INFO – 通知: 下单成功
2020-12-02 21:02:15 – INFO – 通知: 成交通知,合约:SHFE.fu2101,手数:11
2020-12-02 21:02:15 – INFO – 通知: 下单成功
2020-12-02 21:02:15 – INFO – 通知: 成交通知,合约:SHFE.fu2101,手数:11
2020-12-02 21:02:15 – INFO – 通知: 下单成功
2020-12-02 21:02:15 – INFO – 通知: 成交通知,合约:SHFE.fu2101,手数:11
2020-12-02 21:02:15 – INFO – 通知: 下单成功
2020-12-02 21:02:15 – INFO – 通知: 成交通知,合约:SHFE.fu2101,手数:11
2020-12-02 21:02:15 – INFO – 通知: 下单成功
2020-12-02 21:02:15 – INFO – 通知: 成交通知,合约:SHFE.fu2101,手数:11
2020-12-02 21:02:15 – INFO – 通知: 下单成功
2020-12-02 21:02:15 – INFO – 通知: 成交通知,合约:SHFE.fu2101,手数:11
2020-12-02 21:02:15 – INFO – 通知: 下单成功
2020-12-02 21:02:15 – INFO – 通知: 成交通知,合约:SHFE.fu2101,手数:11
2020-12-02 21:02:15 – INFO – 通知: 下单成功
2020-12-02 21:02:15 – INFO – 通知: 成交通知,合约:SHFE.fu2101,手数:11
2020-12-02 21:02:15 – INFO – 通知: 下单成功
2020-12-02 21:02:15 – INFO – 通知: 成交通知,合约:SHFE.fu2101,手数:11
2020-12-02 21:02:15 – INFO – 通知: 下单成功
2020-12-02 21:02:15 – INFO – 通知: 成交通知,合约:SHFE.fu2101,手数:11
2020-12-02 21:02:15 – INFO – 通知: 下单成功
2020-12-02 21:02:15 – INFO – 通知: 成交通知,合约:SHFE.fu2101,手数:11
2020-12-02 21:02:15 – INFO – 通知: 下单成功
2020-12-02 21:02:15 – INFO – 通知: 成交通知,合约:SHFE.fu2101,手数:11
2020-12-02 21:02:15 – INFO – 通知: 下单成功
2020-12-02 21:02:15 – INFO – 通知: 成交通知,合约:SHFE.fu2101,手数:11
2020-12-02 21:02:15 – INFO – 通知: 下单成功
2020-12-02 21:02:15 – INFO – 通知: 成交通知,合约:SHFE.fu2101,手数:11
2020-12-02 21:02:15 – INFO – 通知: 下单成功
2020-12-02 21:02:15 – INFO – 通知: 成交通知,合约:SHFE.fu2101,手数:11
2020-12-02 21:02:15 – INFO – 通知: 下单成功
2020-12-02 21:02:15 – INFO – 通知: 成交通知,合约:SHFE.fu2101,手数:11
2020-12-02 21:02:16 – INFO – 通知: 下单成功
2020-12-02 21:02:16 – INFO – 通知: 成交通知,合约:SHFE.fu2101,手数:11
2020-12-02 21:02:16 – INFO – 通知: 下单成功
2020-12-02 21:02:16 – INFO – 通知: 成交通知,合约:SHFE.fu2101,手数:11
2020-12-02 21:02:16 – INFO – 通知: 下单成功
2020-12-02 21:02:16 – INFO – 通知: 成交通知,合约:SHFE.fu2101,手数:11
2020-12-02 21:02:16 – INFO – 通知: 下单成功
2020-12-02 21:02:16 – INFO – 通知: 成交通知,合约:SHFE.fu2101,手数:11
2020-12-02 21:02:16 – INFO – 通知: 下单成功
2020-12-02 21:02:16 – INFO – 通知: 成交通知,合约:SHFE.fu2101,手数:11
2020-12-02 21:02:16 – INFO – 通知: 下单成功
2020-12-02 21:02:16 – INFO – 通知: 成交通知,合约:SHFE.fu2101,手数:11
2020-12-02 21:02:16 – INFO – 通知: 下单成功
2020-12-02 21:02:16 – INFO – 通知: 成交通知,合约:SHFE.fu2101,手数:11
2020-12-02 21:02:16 – INFO – 通知: 下单成功
2020-12-02 21:02:16 – INFO – 通知: 成交通知,合约:SHFE.fu2101,手数:11
2020-12-02 21:02:17 – INFO – 通知: 下单成功
2020-12-02 21:02:17 – INFO – 通知: 成交通知,合约:SHFE.fu2101,手数:11
2020-12-02 21:02:17 – INFO – 通知: 下单成功
2020-12-02 21:02:17 – INFO – 通知: 成交通知,合约:SHFE.fu2101,手数:11
2020-12-02 21:02:17 – INFO – 通知: 下单成功
2020-12-02 21:02:17 – INFO – 通知: 成交通知,合约:SHFE.fu2101,手数:11
2020-12-02 21:02:17 – INFO – 通知: 下单成功
2020-12-02 21:02:17 – INFO – 通知: 成交通知,合约:SHFE.fu2101,手数:11
2020-12-02 21:02:17 – INFO – 通知: 下单成功
2020-12-02 21:02:17 – INFO – 通知: 成交通知,合约:SHFE.fu2101,手数:11
2020-12-02 21:02:17 – WARNING – 通知: 下单,已被服务器拒绝,原因:开仓保证金不足
Traceback (most recent call last):
File “C:\jzt_data\tq\jzd100.py”, line 194, in <module>
api.wait_update()
pos = TargetposTask()初始化放在了循环内还是循环外?
然后同时有多个py进程对同一个账户进行操作么?
放在外边。多品种操作,使用字典存储了target_pos实例。
代码没改,重启后,直到现在没有再出问题。
有可能你们的模拟服务器出问题,没有返回成交回报。
应该是你策略程序没有跨交易重启的原因,策略跨交易日需要处理,不然会导致模拟交易服务器pos字段计算错误,跨交易日委托单无法正确清零等一系列问题
好的,谢谢,可能是这个原因。有点记不清了。
我现在加了开平仓标志,未成交前只set_target_volume()一次。
不敢用,不敢用