开源量化框架使用记录:一款Python期货量化工具的体验
这款工具我用了几年,整体体验不错。数据内置省心,API设计简洁,适合专注期货量化的用户。如果你有Python基础,追求开箱即用的体验,可以试试。二十年的期货交易生涯,让我对市面上的量化工具了如指掌。今天分享一下我使用一款Python开源量化框架的体验。基于这些需求,我选择了一款数据内置的Python量化工具。:本文仅供技术学习参考,不构成任何投资建议。量化交易有风险,入市需谨慎。不需要额外配置数据
免责声明:本文为个人学习笔记,仅供技术交流,不构成任何投资建议。
二十年的期货交易生涯,让我对市面上的量化工具了如指掌。今天分享一下我使用一款Python开源量化框架的体验。
一、选择这款工具的原因
在选择量化工具时,我有几个核心需求:
- Python语言:和数据科学生态兼容
- 数据内置:不想自己折腾数据库
- 期货专注:我只做国内期货
- 开源透明:代码可查,放心使用
基于这些需求,我选择了一款数据内置的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 | 专用语言 |
| 安装难度 | 简单 | 复杂 | 一般 |
| 自由度 | 中等 | 高 | 低 |
| 费用 | 核心免费 | 免费 | 年费 |
九、使用建议
- 先用免费版体验:核心功能都开放,够用
- 跑通完整流程:数据获取→策略编写→回测→模拟交易
- 注意风险控制:工具只是工具,策略才是核心
结语
这款工具我用了几年,整体体验不错。数据内置省心,API设计简洁,适合专注期货量化的用户。如果你有Python基础,追求开箱即用的体验,可以试试。
声明:本文仅供技术学习参考,不构成任何投资建议。量化交易有风险,入市需谨慎。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)