免责声明:本文基于个人使用体验,与厂商无利益关联,仅供技术交流参考。


从事期货量化交易二十年,我对市面上的量化工具了如指掌。今天来聊聊两个比较有代表性的开源量化框架——TqSdk和VnPy。这两个都是国内Python量化领域的热门选择,但定位和特点有明显差异。

一、基本情况对比

项目 TqSdk VnPy
开源协议 Apache 2.0 MIT
首次发布 - 2015年
主要市场 国内期货 多市场
GitHub星数 较多 很多
核心特点 开箱即用 功能全面

两者都是开源免费的,这对于学习和研究来说是很大的优势。

二、设计理念的差异

TqSdk:专注与简洁

TqSdk的设计理念是"开箱即用",专注于国内期货市场:

  • 内置完整数据服务,不用自己折腾
  • API设计简洁,代码量少
  • 回测和实盘代码结构一致
  • 安装一行命令搞定
pip install tqsdk

VnPy:全面与灵活

VnPy(现名VeighNa)的设计理念是"功能全面":

  • 支持期货、期权、股票、外汇等多市场
  • 对接CTP、飞创、恒生等多种柜台
  • 提供CTA、价差、算法交易等多种策略模板
  • 高度可定制,源码完全开放

两种理念各有优势,取决于你的实际需求。

三、上手体验对比

TqSdk上手

从安装到跑起来第一个策略,基本十分钟能搞定:

from tqsdk import TqApi, TqAuth

api = TqApi(auth=TqAuth("账户", "密码"))
quote = api.get_quote("SHFE.rb2401")
klines = api.get_kline_serial("SHFE.rb2401", 60, 100)

while True:
    api.wait_update()
    print(f"最新价: {quote.last_price}")

数据直接就有,不用额外配置。

VnPy上手

VnPy的上手相对复杂一些:

  1. 从GitHub拉取代码或用VeighNa Studio
  2. 配置环境依赖
  3. 对接数据源或搭建本地数据库
  4. 学习框架结构和策略模板

完成以上步骤才能开始写策略,对新手来说门槛不低。

我的感受:如果你是量化新手,TqSdk上手更快。如果你技术功底强,喜欢折腾和深度定制,VnPy给的自由度更高。

四、数据服务对比

这是两者差异最大的地方。

TqSdk

  • 内置完整的Tick和K线历史数据
  • 数据从合约上市至今
  • 不需要自建数据库
  • 数据获取代码简单
# 直接获取数据,无需额外配置
klines = api.get_kline_serial("SHFE.rb2401", 300, 200)
ticks = api.get_tick_serial("SHFE.rb2401")

VnPy

  • 框架本身不提供数据
  • 需要对接第三方数据源
  • 或者自己搭建数据库收录数据
  • 灵活但工作量大

我的感受:数据是量化的基础,自己搭建数据系统虽然灵活,但确实费时费力。TqSdk在这方面省心很多,尤其对于只做国内期货的用户。

五、回测功能对比

TqSdk

  • 回测代码和实盘代码完全一致
  • 切换只需加一个backtest参数
  • 支持Tick级和K线级回测
from tqsdk import TqApi, TqBacktest
from datetime import date

# 只需添加backtest参数
api = TqApi(
    backtest=TqBacktest(start_dt=date(2023, 1, 1), end_dt=date(2023, 12, 31)),
    auth=TqAuth("账户", "密码")
)
# 后面代码和实盘一模一样

VnPy

  • BacktestingEngine功能丰富
  • 回测报告详细,图表多
  • 支持参数优化
  • 回测代码和实盘代码有差异

我的感受:TqSdk的"一套代码走到底"设计确实方便,减少了从回测到实盘的转换成本。VnPy的回测引擎更专业,但学习曲线也更陡。

六、功能覆盖对比

TqSdk

  • 专注国内期货市场
  • 支持130多家期货公司
  • 不支持外盘
  • 股票只有数据,无实盘

VnPy

  • 支持期货、期权、股票、外汇
  • 对接多种交易柜台
  • 提供多种策略模板
  • 功能非常全面

我的感受:如果你只做国内期货,TqSdk完全够用,而且更专业。如果你需要跨市场或者有更复杂的需求,VnPy覆盖更广。

七、社区和生态

TqSdk

  • 官方文档完整
  • 有入门教程和示例
  • 社区规模相对较小

VnPy

  • 国内最大的开源量化社区
  • 社区非常活跃
  • 资料丰富,问题容易找到解答

八、选择建议

如果你是… 建议选择
量化新手,想快速入门 TqSdk
只做国内期货 TqSdk
技术高手,喜欢折腾 VnPy
需要多市场支持 VnPy
数据问题不想操心 TqSdk
需要丰富的策略模板 VnPy

九、我的使用方式

实际上,这两个框架不是非此即彼的关系。我平时主要用TqSdk做日常策略研究和期货实盘,因为数据省心、API简洁。同时也会参考VnPy社区的一些策略思路和技术讨论。

选择开源量化框架,关键是搞清楚自己的需求。专注期货、追求效率就选TqSdk;需要全面功能、愿意折腾就选VnPy。

结语

以上是我对两款开源量化框架的对比分析。两者都有免费版本,建议都体验一下再做决定。

如有不同看法,欢迎评论区讨论。


声明:本文仅供技术交流,不构成任何投资建议。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐