3.29K 浏览
0

1,说明文档的介绍中多次提到一句话,”其内容将在 <span class="pre">wait_update()</span> 时更新”。我的理解是,用所有函数之后,比如get_order、insert_order、cancel_order等,必须要加一个wait_update才能够操作成功么?具体地,

order=api.insert_order(……)
api.wait_update()
print(order.status)

如果我不想必须获得成交完成的消息,而是仅希望它把单子发出去的话,是否这样写就可以实现?

又比如在while循环中,

while ……:

positions=api.get_position(……).pos或klines=api.get_kline_serial(……)

api.wait_update()

是否这样在每次循环中后续操作所需的positions或klines能够保持最新?

2,另外,关于k线,比如我想获得1min的k线,那么这个k线数据是在每秒更新呢,还是每分钟的第0或1秒更新,如果是每秒更新的话,这个k线数据很不稳定,会不利于交易策略的延续性。

west 已回答的问题 2020年6月4日

还有,如下:
positions=api.get_position(code).pos
while not api.wait_update():
______api.wait_update()
(1)这样能够得到positions的更新吗,它怎么判断是positions导致了api.wait_update的更新,而不是因为其他行情数据更新也达到了wait_update为True的效果?
(2)如果我只是想获得最新的positions的数据,它可能一直以来没有变化,那这个程序会一直卡在这里循环么?

0

1.是的,用所有函数之后,比如get_order、insert_order、cancel_order等,必须要加一个wait_update才能够发出指令

position、K线等数据get后只需要调用wait_update()即可更新,无需多次get

2. 1minK线在每分钟起始的时候生成,具体的你可以直接用示例代码t30试试就明白了

wait_update()检测到任何数据更新后都会返回,如果你要判断这次wait_update()中更新了是否是你关注的数据字段,就用is_changing()函数

建议多看文档,大部分都在文档里写了https://doc.shinnytech.com/tqsdk/latest/usage/framework.html

west 已回答的问题 2020年6月4日
您正在查看1个答案中的1个,单击此处查看所有答案。