2.11K 浏览
0

from tqsdk import TqApi, TqSim,TargetPosTask,TqAuth
from tqsdk.ta import MA
 def ma(SYMBOL, SHORT, LONG):
    api = TqApi(auth=TqAuth("19965208464", "********))
     klines = api.get_kline_serial(SYMBOL, duration_seconds=60, data_length=LONG +2)
    target_pos = TargetPosTask(api, SYMBOL)
     while True:
        api.wait_update()
        if api.is_changing(klines.iloc[-1], "datetime"):
            short_avg = MA(klines, SHORT)
            long_avg = MA(klines,LONG)
            # print("short_avg",short_avg)
            # print("long_avg",long_avg)
            if long_avg.iloc[-2] < short_avg.iloc[-2] and long_avg.iloc[-1] > short_avg.iloc[-1]:
                # target_pos.set_target_volume(-3)
                print("均线下穿,做空")
            if short_avg.iloc[-2] < long_avg.iloc[-2] and short_avg.iloc[-1] > long_avg.iloc[-1]:
                # target_pos.set_target_volume(3)
                print("均线上穿,做多")
  ma("SHFE.rb2110", 5, 10)

ringo 已回答的问题 2021年5月27日
0

MA()返回值是dataframe,你对两个dataframe求比较大小的值也是pangdas 的 series 而非bool类型

你可以先对 MA()的返回值取 MA().ma.iloc[-1] 再来比较

ringo 已回答的问题 2021年5月27日
您正在查看1个答案中的1个,单击此处查看所有答案。