当前位置: 首页 > news >正文

TqApi 初始化参数组合:回测、模拟与实盘怎么配

前言

天勤量化里,TqApi(...)一行参数往往决定策略跑在回测、本地模拟还是实盘柜台。我见过把TqAccountTqBacktest混用导致构造失败,也见过回测脚本忘了TqAuth在模拟环境无法取数。下面整理我常用的初始化矩阵和容易踩坑的组合。

一、三种运行形态各自传什么

形态典型构造说明
历史回测TqApi(backtest=TqBacktest(...), auth=TqAuth(...))时间由回测区间推进
本地模拟TqApi(TqSim(), auth=TqAuth(...))撮合规则贴近内置模拟
快期模拟盘TqApi(TqKq(), auth=TqAuth(...))与本地 TqSim 不同,按文档切换
实盘TqApi(TqAccount(...), auth=TqAuth(...))需期货公司、账号、密码

TqAuth在多数联网场景下需要,用于行情与账户权限校验;具体以当前账户套餐为准。

二、最小示例对照

回测

fromdatetimeimportdatefromtqsdkimportTqApi,TqAuth,TqBacktest api=TqApi(backtest=TqBacktest(start_dt=date(2024,1,1),end_dt=date(2024,6,30)),auth=TqAuth("快期账户","密码"),)

本地模拟

fromtqsdkimportTqApi,TqAuth,TqSim api=TqApi(TqSim(),auth=TqAuth("快期账户","密码"))

实盘(示例为 CTP 类账户,柜台名以开户为准)

fromtqsdkimportTqApi,TqAuth,TqAccount api=TqApi(TqAccount("H某期货","资金账号","交易密码"),auth=TqAuth("快期账户","密码"),)

三、错误组合与反例

  • 同时传入互斥的backtestTqAccount作为第一交易单元,通常不符合单一运行态设计,应按阶段拆分脚本。
  • 回测脚本中订阅了实盘才有的柜台能力,导致回测阶段报不支持。
  • 未传auth但能连上行情、无法交易或部分接口受限——先核对认证与套餐,再查网络。

四、从回测到模拟再到实盘的改动清单

建议主循环与信号函数保持不变,仅替换构造段:

  1. 交易单元:TqBacktestTqSim/TqKqTqAccount
  2. 合约代码:回测注意历史合约是否可交易,模拟/实盘用当前主力或指定月份
  3. 日志与风控:模拟起加入持仓校验;实盘前加只读监控运行数日
  4. 手续费:回测在TqBacktest或策略内显式设置,实盘以实际为准

五、多账户时的构造

多账户使用TqMultiAccount等能力时,构造方式与单账户不同,需按官方多账户示例传入账户列表,并在下单时指定account。单账户策略不要提前引入多账户复杂度。

总结

TqApi初始化本质是选定“时间如何走、单子如何成交”。回测、模拟、实盘分脚本或分配置管理,主循环统一用wait_update,能显著降低迁移成本。

FAQ

1)回测必须写 TqAuth 吗?

需要行情权限时一般要;以本地环境与账户状态为准,报错先查认证。

2)TqSim 和 TqKq 能混在一个 api 里吗?

按文档选择其一作为交易单元;二者业务含义不同,不宜随意混用。

3)模拟盘可以不下单只读行情吗?

可以,用只读逻辑跑通订阅与wait_update,再逐步放开下单接口。

4)实盘构造函数里的期货公司名写错会怎样?

常见为连接失败或认证错误,需与开户券商名称一致。

5)回测结束如何退出?

回测推进到结束日期后wait_update会结束循环或抛结束相关异常,外层应捕获并api.close()释放资源。

风险提示

本文用于期货量化技术实践讨论,不构成投资建议。

http://www.jsqmd.com/news/847598/

相关文章:

  • 加州大学圣地亚哥分校揭示大模型其实早就知道什么时候该用工具
  • Windows热键冲突终极解决方案:Hotkey Detective让你告别快捷键失灵
  • 新手入门如何在Taotoken模型广场选择适合自己任务的模型
  • MLX90640官方库在STM32上跑不起来?手把手教你搞定I2C通信那些坑
  • 别再只把JTAG当下载器了!聊聊它在ARM/DSP/FPGA调试中的那些‘隐藏’玩法
  • 缓存:Redis7.0+、多级缓存设计、缓存三大问题解决方案
  • ARM SMMUv3架构里的“快递员”:手把手拆解DTI-ATS与DTI-TBU协议(附官方文档下载)
  • ADI物联网平台实战:从传感器到云端的工业级开发指南
  • 5步掌握12306智能抢票助手:告别手动刷票的烦恼
  • 网盘直链下载助手:九大网盘免费获取真实下载链接的终极解决方案
  • 别再只盯着CS4344了!这5款低成本I2S DAC芯片实测对比(含ES7149/MAX98357A)
  • AI 系统中的过拟合:从直觉到原理
  • 树莓派Zero 2 W转4B扩展板:集成RS485与4G的物联网边缘节点方案
  • d2dx:3大技术突破让20年老游戏在Windows 10重获新生
  • 从SQL Server/MySQL转战GaussDB:一个DBA的gsql命令行实战避坑笔记
  • 避开这3个坑,你的运动想象分类准确率能翻倍:OpenBMI实战经验谈
  • 教程使用Node.js和Taotoken为网站构建一个AI客服接口
  • 从大彩换到迪文串口屏,DMG80480C070_03WTC上手体验与避坑全记录
  • OpenHarmony环境搭建实战:从小凌派开发板入门到系统编译烧录
  • 为团队内部工具配置 Taotoken CLI 实现一键环境统一
  • 德国人工智能研究中心造出了一双“透视眼“
  • MT6737 4G智能模块开发全解析:从硬件设计到量产落地
  • 二氧化碳培养箱百度百科介绍 - 实了个验
  • Python数据分析:用Pandas和Matplotlib实现数据可视化
  • 探索macOS系统优化:Pearcleaner开源清理工具实践指南
  • DataCleaner终极指南:开源数据质量解决方案的完整安装与配置教程
  • 测试工程师驾驭大语言模型的第一步
  • Trae 运行卡顿闪退?7 个高频适配异常的精准定位步骤
  • Python文本转语音完全指南:从入门到实战
  • 从Android Camera到FFmpeg滤镜:搞懂YUV420格式选型与性能避坑指南