3.96K 浏览
0

我看所有的范例中最后都没有写的,但是在视频中又要求写,不知道哪个是对的

NULL NULL 已回答的问题 2021年11月26日

我是文件A启动策略文件B,而且文件A和文件B中都写了api.close()

0

我用的是异步,也是摸索出一个方式,

比如 在 线程A中运行

while True:

   global close_all_signal

if close_all_signal==1:

api.close()

break

api.wait_update()

在线程B中的关闭函数中

def 关闭线程(api):

     global close_all_signal

     close_all_signal = 1  # 1 表示关闭 0表示运行
     api.set_wait_timeout()

我发现这个方式可以正常关闭,用的GUI 界面。

NULL NULL 已回答的问题 2021年11月26日
0

1.

while True是死循环,如果红色框条件成立,在执行完944行,又会跳到932行。

直到收盘,才阻塞在933行,等待api行情数据的更新。

api.close()在此例中将永远不会执行。

2.

要达到截图中描述的效果,需要使用 if 真:break 跳出while循环,此时close才会生效。这样策略就关闭了。比如在944后加一行break

3.

在实盘中,api.close()根据需要添加,比如当天开/平仓后不需要再进行任何止损止盈加减仓等操作和监控。

没写api.close()的范例,大致就是因为没有跳出while循环,显得这句多余了

Shoe X 已回答的问题 2020年8月12日