from tqsdk import TqApi, TqBacktest, TargetPosTask from datetime import date # 在创建 api 实例时传入 TqBacktest 就会进入回测模式,设置web_gui=True开启图形化界面 api = TqApi(backtest=TqBacktest(start_dt=date(2018, 5, 2), end_dt=date(2018, 6, 2)),web_gui=True) # 获得 m1901 5分钟K线的引用 klines = api.get_kline_serial("KQ.m@CFFEX.IF", 5 * 60, data_length=15) # 创建 m1901 的目标持仓 task,该 task 负责调整 m1901 的仓位到指定的目标仓位 target_pos = TargetPosTask(api, "KQ.m@CFFEX.IF") while True: api.wait_update() if api.is_changing(klines): ma = sum(klines.close.iloc[-15:]) / 15 print("最新价", klines.close.iloc[-1], "MA", ma) if klines.close.iloc[-1] > ma: print("最新价大于MA: 目标多头5手") # 设置目标持仓为多头5手 target_pos.set_target_volume(5) elif klines.close.iloc[-1] < ma: print("最新价小于MA: 目标空仓") # 设置目标持仓为空仓 target_pos.set_target_volume(0)
当用指数进行回测交易时,回测的结果是不计算的,是因为合约代码必须是交易代码吗?如此的话回测的图像显示是不是只能一段合约上测试呀
WARNING – 日期:2018-05-25,账户权益:10000000.00,可用资金:10000000.00,浮动盈亏:0.00,持仓盈亏:0.00,平仓盈亏:0.00,市值:0.00,保证金:0.00,手续费:0.00,风险度:0.00%
WARNING – 日期:2018-05-28,账户权益:10000000.00,可用资金:10000000.00,浮动盈亏:0.00,持仓盈亏:0.00,平仓盈亏:0.00,市值:0.00,保证金:0.00,手续费:0.00,风险度:0.00%
WARNING – 日期:2018-05-29,账户权益:10000000.00,可用资金:10000000.00,浮动盈亏:0.00,持仓盈亏:0.00,平仓盈亏:0.00,市值:0.00,保证金:0.00,手续费:0.00,风险度:0.00%
WARNING – 日期:2018-05-30,账户权益:10000000.00,可用资金:10000000.00,浮动盈亏:0.00,持仓盈亏:0.00,平仓盈亏:0.00,市值:0.00,保证金:0.00,手续费:0.00,风险度:0.00%
WARNING – 日期:2018-05-31,账户权益:10000000.00,可用资金:10000000.00,浮动盈亏:0.00,持仓盈亏:0.00,平仓盈亏:0.00,市值:0.00,保证金:0.00,手续费:0.00,风险度:0.00%
WARNING – 日期:2018-06-01,账户权益:10000000.00,可用资金:10000000.00,浮动盈亏:0.00,持仓盈亏:0.00,平仓盈亏:0.00,市值:0.00,保证金:0.00,手续费:0.00,风险度:0.00%
WARNING – 胜率:0.00%,盈亏额比例:inf,收益率:0.00%,年化收益率:0.00%,最大回撤:0.00%,年化夏普率:inf
WARNING – ———– Backtest finished, press [Ctrl + C] to exit. ———–