已解决2.09K 浏览
0

'''
交易策略的多实例运行----每个进程执行一个策略实例
https://doc.shinnytech.com/tqsdk/latest/advanced/multi_strategy.html#id2
'''
from tqsdk import TqApi, TqSim,TargetPosTask,TqAuth
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["close"], SHORT)
            long_avg = ma(klines["close"], LONG)
            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)

liudaliuda668 选择最佳答案 2021年5月25日
0

自己封装了函数ma,在传参数的时候少传入了

liudaliuda668 发表新评论 2021年5月26日

改了两句: short_avg = ma(klines[“close”], SHORT,LONG)
long_avg = ma(klines[“close”], SHORT,LONG)
等夜盘测试一下对错.
总感觉,改了以后 short_avg 和 long_avg表达式一样,不太妥当.

原来天勤有内部函数MA(),猜测,上边示例中两句,应该用MA,而不是ma,等待开盘后测试,,,,.

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