3.47K 浏览
0

from tqsdk import TqApi, TqSim, tafunc

api = TqApi(TqSim())

klines = api.get_kline_serial(“DCE.i2009”,900)

m10=tafunc.ma(klines.close,10)

m30=tafunc.ma(klines.close,30)

m50=tafunc.ma(klines.close,50)

tj=m10>m30 and m30>m50

api.close()

运行后总是出现错误提示:

RuntimeError: Event loop is closed

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

判断语句那里错了,报错信息应该是

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

原 荒 发表新评论 2020年6月9日

tj=m10>m30 and m30>m50 本身并没有错误,在其它软件里都可以正常通过。

如果把条件赋值语句改为:
tj1=m10>m30 就可以通过

tj2=m30>m50 也可以通过

tj=m10>m30 and m30>m50 却不能通过,说明tqsdk可能存在问题。

如果把程序改为:
from tqsdk import TqApi, TqSim, tafunc

api = TqApi(TqSim())

klines = api.get_kline_serial(“DCE.i2009”,900)

m10=1

m30=2

m50=3

tj1=m10>m30

tj2=m30>m50

tj3=m10>m30 and m30>m50

api.close()

运行时仍然会出现错误提示。

如果再把涉及天勤tqsdk的部分全部屏蔽:
#from tqsdk import TqApi, TqSim, tafunc

#api = TqApi(TqSim())

#klines = api.get_kline_serial(“DCE.i2009”,900)

m10=1

m30=2

m50=3

tj1=m10>m30

tj2=m30>m50

tj3=m10>m30 and m30>m50

#api.close()

则程序可以正确运行。说明tqsdk确实存在某种问题!

您正在查看1个答案中的1个,单击此处查看所有答案。