免责声明:本文为个人学习笔记,仅供技术交流,不构成任何投资建议。


二十年的期货交易生涯,让我对市面上的量化工具了如指掌。今天分享一下我使用一款Python开源量化框架的体验。

一、选择这款工具的原因

在选择量化工具时,我有几个核心需求:

  1. Python语言:和数据科学生态兼容
  2. 数据内置:不想自己折腾数据库
  3. 期货专注:我只做国内期货
  4. 开源透明:代码可查,放心使用

基于这些需求,我选择了一款数据内置的Python量化工具。下面是详细的使用记录。

二、安装配置

安装非常简单,一行pip命令:

pip install tqsdk

不需要额外配置数据库、安装依赖软件,这点比很多开源框架省心多了。

三、数据获取体验

数据接口设计得比较简洁,和pandas配合很好:

from tqsdk import TqApi, TqAuth

api = TqApi(auth=TqAuth("账户", "密码"))

# 获取实时行情
quote = api.get_quote("SHFE.rb2401")

# 获取K线数据
klines = api.get_kline_serial("SHFE.rb2401", 60, 200)  # 1分钟K线,200根

# 获取Tick数据
ticks = api.get_tick_serial("SHFE.rb2401")

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

体验感受

  • 历史数据从合约上市至今都有
  • Tick和K线数据都支持
  • 返回的是pandas DataFrame,处理方便

四、回测功能

回测代码和实时代码结构一致,这点很实用:

from tqsdk import TqApi, TqAuth, TqBacktest
from datetime import date

# 只需添加backtest参数,其他代码不变
api = TqApi(
    backtest=TqBacktest(start_dt=date(2023, 1, 1), end_dt=date(2023, 6, 30)),
    auth=TqAuth("账户", "密码")
)

klines = api.get_kline_serial("SHFE.rb2309", 60)
position = api.get_position("SHFE.rb2309")

while True:
    api.wait_update()
    if api.is_changing(klines):
        ma5 = klines.close.iloc[-5:].mean()
        ma20 = klines.close.iloc[-20:].mean()
        
        if ma5 > ma20 and position.pos_long == 0:
            api.insert_order("SHFE.rb2309", "BUY", "OPEN", 1)
        elif ma5 < ma20 and position.pos_long > 0:
            api.insert_order("SHFE.rb2309", "SELL", "CLOSE", 1)

体验感受

  • 回测到实盘只需改一行代码
  • 支持Tick级和K线级回测
  • 减少了"回测实盘不一致"的问题

五、技术指标计算

内置了常用技术指标,也可以用pandas自己算:

from tqsdk.ta import MA, MACD, RSI, BOLL

klines = api.get_kline_serial("SHFE.rb2401", 60, 200)

# 使用内置指标
ma5 = MA(klines, 5)
macd = MACD(klines, 12, 26, 9)
rsi = RSI(klines, 14)

# 或者pandas自己算
klines['ma5'] = klines['close'].rolling(5).mean()
klines['ma20'] = klines['close'].rolling(20).mean()

六、实盘交易

支持130多家期货公司的实盘交易,对接比较简单:

from tqsdk import TqApi, TqAuth, TqAccount

# 连接实盘账户
api = TqApi(
    TqAccount("期货公司名称", "账号", "密码"),
    auth=TqAuth("快期账户", "密码")
)

# 获取账户信息
account = api.get_account()
print(f"可用资金: {account.available}")

# 下单
order = api.insert_order("SHFE.rb2401", "BUY", "OPEN", 1, limit_price=3800)

七、优点和不足

优点

方面 具体表现
数据服务 内置完整历史数据,不用自己折腾
API设计 简洁易用,和pandas兼容好
代码一致 回测和实盘代码结构相同
安装简单 pip一行命令,无需额外配置
期货公司 支持130多家,覆盖面广

不足

方面 具体表现
市场覆盖 只支持国内期货,不支持外盘
股票交易 股票只有数据和回测,无实盘
编程门槛 需要Python基础

八、和其他工具对比

维度 这款工具 开源框架类 传统软件类
数据服务 内置 需自建 部分内置
编程语言 Python Python 专用语言
安装难度 简单 复杂 一般
自由度 中等
费用 核心免费 免费 年费

九、使用建议

  1. 先用免费版体验:核心功能都开放,够用
  2. 跑通完整流程:数据获取→策略编写→回测→模拟交易
  3. 注意风险控制:工具只是工具,策略才是核心

结语

这款工具我用了几年,整体体验不错。数据内置省心,API设计简洁,适合专注期货量化的用户。如果你有Python基础,追求开箱即用的体验,可以试试。


声明:本文仅供技术学习参考,不构成任何投资建议。量化交易有风险,入市需谨慎。

Logo

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

更多推荐