4.41K 浏览
0

while True:
api.wait_update()
if api.is_changing(quote, “last_price”):
kdj = KDJ(klines, 9, 3, 3)      # 获取KDJ  klines是15分钟均线
k = list(kdj[“k”])
k1 = int(k[-1]*10)/10
k2 = int(k[-2]*10)/10
print(datetime.now(), ‘当前价:’+str(quote.last_price), ‘k1=’+str(k1), ‘k2=’+str(k2))

以上代码输出结果是:
2020-04-17 11:29:14.327548 当前价:16065.0 k1=47.5 k2=59.5
2020-04-17 11:29:18.333792 当前价:16070.0 k1=47.5 k2=59.5
2020-04-17 11:29:30.374437 当前价:16065.0 k1=47.5 k2=59.5
2020-04-17 11:29:31.340563 当前价:16060.0 k1=46.5 k2=59.5
2020-04-17 11:29:32.415674 当前价:16065.0 k1=46.5 k2=59.5
2020-04-17 11:29:36.823657 当前价:16070.0 k1=47.5 k2=59.5
2020-04-17 11:29:37.832679 当前价:16065.0 k1=48.5 k2=59.5
2020-04-17 11:29:44.818700 当前价:16070.0 k1=48.5 k2=59.5

以上是模拟真实交易的写法,但是在回测的时候,该如何使用KDJ指标呢?之前我试过,输出的KDJ值在K线更新以后都是统一的值,好像无法实时回测当时的KDJ值,不知道是不是写法错了

另外,如果说把K线时间改为1分钟,那么上面代码中 k2的值是不是表示上一分钟K线生成时的K值?

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

对于“如果说把K线时间改为1分钟,那么上面代码中 k2的值是不是表示上一分钟K线生成时的K值?”这个问题,不是上一分钟K线生成的,KDJ它有计算周期,是你填的参数,你可以看看KDJ的定义和代码实现

west 编辑答案 2020年4月20日

详细的你可以去看看KDJ的代码实现,代码是开源的,github上或者你下载的tqsdk包里有的

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