3.91K 浏览
0

TqSdk2 内核基于C++全部重构,提供直连模式/接入资管平台(融航)/更快的回测速度

对外接口和 TqSdk 90%一致,欢迎大家体验模拟或回测

https://doc.shinnytech.com/tqsdk2/latest/quickstart.html#

需要开通tqsdk2 直连/接通融航试用,请联系 QQ 532428198

ringo 编辑问题 2021年5月24日
0

同样回测代码,回测最近两个月

只用把 from tqsdk import xxxx

改成 from tqsdk2 import xxxx

TqSdk 耗时: 53s

TqSdk2 同样代码耗时 5s

测试代码

from datetime import date
from tqsdk2 import TqApi, TqAuth, TqBacktest, TargetPosTask, BacktestFinished
from datetime import datetime
# 在创建 api 实例时传入 TqBacktest 就会进入回测模式,设置web_gui=True开启图形化界面
begin = datetime.now()
api = TqApi(backtest=TqBacktest(start_dt=date(2021, 3, 2), end_dt=date(2021, 5, 2)),web_gui=True, auth=TqAuth("信易账户", "账户密码"))
position = api.get_position("SHFE.rb2106")
# 获得 m1901 5分钟K线的引用
klines = api.get_kline_serial("SHFE.rb2106", 5 * 60, data_length=15)
# 创建 m1901 的目标持仓 task,该 task 负责调整 m1901 的仓位到指定的目标仓位
target_pos = TargetPosTask(api, "SHFE.rb2106")
 try:
    while True:
        api.wait_update()
        if api.is_changing(klines):
            ma = sum(klines.close.iloc[-15:]) / 15
            if klines.close.iloc[-1] > ma:
                # 设置目标持仓为多头5手
                target_pos.set_target_volume(5)
  except BacktestFinished:
    end = datetime.now()
    print(f"总耗时{(end-begin).total_seconds()}")
    api.close()
ringo 编辑答案 2021年5月21日
您正在查看2个答案中的1个,单击此处查看所有答案。