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


二十年的期货交易生涯,让我对市面上的量化工具了如指掌。今天分享一下我使用一款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基础

八、和其他工具对比

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

九、使用建议

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

结语

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


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

Logo

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

更多推荐