from datetime import date import pandas as pd from tqsdk import TqApi, TqAuth, TqBacktest, TargetPosTask, TqKq, TqSim ''' 如果当前价格大于5分钟K线的MA15则开多仓 如果小于则平仓 回测从 2018-05-01 到 2018-10-01 ''' # 在创建 api 实例时传入 TqBacktest 就会进入回测模式 api = TqApi(auth=TqAuth("emanresu", "dfgvfgdfgg")) # 获得 m1901 5分钟K线的引用 klines = api.get_kline_serial("KQ.m@CZCE.MA", 60 * 60) # 创建 m1901 的目标持仓 task,该 task 负责调整 m1901 的仓位到指定的目标仓位 target_pos = TargetPosTask(api, "KQ.m@CZCE.MA") BEIJING_TZ = "Asia/Shanghai" print('-----------------') print(pd.to_datetime(klines.iloc[-1].datetime, unit="ns", utc=True).tz_convert(BEIJING_TZ)) print(pd.to_datetime(klines.iloc[-2].datetime, unit="ns", utc=True).tz_convert(BEIJING_TZ)) print(klines.iloc[-1]) print(klines.iloc[-2]) while True: api.wait_update() if api.is_changing(klines.iloc[-1], 'datetime'): print(f'---------{pd.to_datetime(klines.iloc[-1].datetime, unit="ns", utc=True).tz_convert(BEIJING_TZ)}--------') print(klines.iloc[-1]) print(klines.iloc[-2]) # target_pos.set_target_volume(5)