Agent Skills
返回列表
天勤量化交易与数据技能

天勤量化交易与数据技能

行业专业 更新于 2026.08.30

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_bc4afc83/tqsdk-python。

技能介绍

解决什么具体问题

TqSdk 的 API 表面看着简洁,真正写策略时却处处是坑:wait_update() 的行为说不清,get_quote() 拿到的对象是快照还是实时引用分不清,期货和股票账号的对象名混用,合约代码写到过期交割月,TargetPosTask 配置不当导致订单不发,TqScenario 的保证金试算来源不明。这些不是文档没有写,而是散落在多个页面里,开发者需要反复翻 FAQ 和示例才能拼出正确写法。

技能如何工作

这个技能把 TqSdk 的常见问题拆成 10 个 reference 文件,按需求路由而非一次性全部加载:

  • 更新循环与实时性:references/wait-update-and-update-loop.md 覆盖 wait_update()、is_changing()、deadline、Jupyter 注意事项和回测进度问题,明确 get_* 返回的是实时引用而非快照。
  • 行情与合约发现:references/market-data.md 处理 get_quote、K 线、Tick、合约查询和 DataDownloader,优先推荐主力合约符号如 KQ.m@SHFE.rb。
  • 账户类型矩阵:references/account-type-matrix.md 区分 TqAccount、TqKq、TqSim 等类,期货用 Account/Position/Order/Trade,股票用 SecurityAccount/SecurityPosition/SecurityOrder/SecurityTrade。
  • 交易执行与高级工具:references/order-functions-and-position-tools.md 讲 TargetPosTask、TargetPosScheduler、Twap 和交易所最小开仓量的处理。
  • 保证金与风控:references/scenario-and-margin.md 指导用 TqScenario 做同步试算,说明 account=None 用 Quote 保证金率,TqAccount 查询账户专属费率。
  • 字段含义速查:references/object-fields.md 覆盖 Quote、K 线、Account 等对象字段。
  • 错误与 FAQ:references/error-faq.md 解释常见异常和迷惑行为。
  • 示例映射:references/example-map.md 指向仓库内可模仿的官方示例。

写作代码前,技能强制先识别任务模式(纯行情、本地模拟、快模拟、实盘、股票交易、期货交易、回测、保证金试算),再选对账号类型和合约代码。所有示例代码要求先做最小验证(import 检查、语法检查、短行情订阅或窄幅回测),避免直接丢一段未验证的伪代码给用户。

适用边界与注意点

TqScenario 仅支持期货、单账户、同步调用,调用后立即更新试算快照,不能用于下单,也不能用于股票或多账户场景。它不保证模拟券商的专属优惠规则,仅支持 TqSdk 内置的有限保证金折扣模型。对上期所、能源中心合约,CLOSE 与 CLOSETODAY 必须与导入的持仓快照保持一致,不能混用。

高级执行工具有明确的适用层级:TargetPosTask 是默认目标净持仓方案;support_open_min_volume=True 仅在交易所有最小开仓量规则且可接受近似完成时使用;TargetPosScheduler 适合定时拆单;Twap 是较老的直接 TWAP 助手且不支持回测;InsertOrderTask 和 InsertOrderUntilAllTradedTask 属于内部或高级助手,不是默认答案。

期货和股票的 workflow 是割裂的:股票交易没有 offset 概念,TargetPosTask 不支持股票交易。多账户模式下必须显式传 account= 参数或使用账号对象自身的 getter,否则会拿到错误账户的数据。

涉及历史数据下载时,长区间必须用 DataDownloader,不要假装 get_kline_serial 是无限历史 API。合约代码方面,行情和历史下载优先主力合约,下单和保证金试算必须用具体未过期交割月合约,用 query_quotes(..., expired=False) 或 query_options(..., expired=False) 验证。

所有回答要求:先讲最小相关字段集,再说清对象是期货还是股票;如果实盘、快模拟、本地模拟、股票模拟、回测行为不同,必须明说;如果答案依赖常见陷阱,直接点出陷阱而不是埋在示例里;绝不暴露真实账户名、密码、token 或客户凭据,用占位符或环境变量。

使用场景

  • 初次用TqSdk写策略,搞不清wait_update()和get_quote()的实时更新机制,需要可运行的最小示例
  • 策略涉及多账户或期货股票混合,需要查清account-type-matrix中各账号类的适用边界
  • 对某个合约用TargetPosTask调仓,但交易所设了最小开仓量,需要确认support_open_min_volume怎么配
  • 在做回测时遇到NaN或数据断流,需要对照error-faq和example-map快速定位问题

适合人员

  • 量化策略开发者,需要确认TqSdk各API在期货和股票场景下的正确用法
  • 金融数据工程师,要把TqSdk行情接口集成进内部数据管道或回测框架
  • 量化研究员,想用TqScenario做保证金和风险what-if分析,不确定账号和合约该怎么传
  • 刚从文档转来的技术博主,需要一份基于真实API的写作和排错参考