MS Qlib:开源量化交易AI
如果您是一位对算法交易感兴趣的程序员,那么我有个好消息要告诉您——微软发布了 Qlib,这是一个完全免费的开源人工智能平台,它就像量化交易的强大副驾驶。

我正坐在办公桌前。咖啡已经凉了。我盯着股票价格电子表格,试图用我笨重的 Python 脚本智胜市场。
听起来很熟悉吧?
如果您是一位对算法交易感兴趣的程序员,那么我有个好消息要告诉您——微软发布了 Qlib,这是一个完全免费的开源人工智能平台,它就像量化交易的强大副驾驶。
无需昂贵的订阅,没有孤立的工具。只需一台笔记本电脑和一些驱动力,即可轻松进行AI驱动的投资。

1、什么是 Qlib?
Qlib 是微软写给量化交易员的一封情书。
它是一个利用人工智能通过处理数据和生成交易策略来帮助您赚钱(或至少减少亏损)的平台。
量化投资就是利用数据和数学来挑选股市中的赢家,而 Qlib 将人工智能融入其中,使这些决策更加明智。
把它想象成你那位痴迷于神经网络、并且精通K线图的宅男朋友。
我刚开始涉足交易时,只能拼凑脚本,从雅虎财经提取数据,训练模型,并回测我的想法。结果一团糟——我花了好几个小时调试,才意识到我忘了调整股息。Qlib 通过提供简洁的一体化设置解决了这个问题。它有三大优势:
- AI 智能:它专为现代机器学习而打造,因此您可以使用各种模型来预测价格走势。
- 速度:它可以轻松处理海量数据集。
- 灵活性:您可以调整每个环节,从数据到模型再到交易规则。
此外,它是开源的。这意味着你、我,甚至在妈妈地下室进行日内交易的那个人都可以免费使用它——无需对冲基金。
2、Qlib 为何能改变游戏规则
算法交易就像与计算机下棋——你需要速度快、精准,还要有点通灵能力。Qlib 将你所需的一切都打包成一个包,为你提供了速查表。以下是它如此强大的原因:
- 混合搭配:Qlib 的组件(数据、模型、回测)就像乐高积木一样。你可以构建任何你想要的工作流程。
- 一键魔法:使用名为 qrun 的命令,你可以从头到尾运行整个交易策略。无需博士学位。
- 追踪一切:它会保存每个实验,让你能够找出你绝妙想法失败的原因。
- 人工智能力量:它已准备好支持重型人工智能模型,让你能够超越基本的移动平均线。
3、Qlib 的工作原理
Qlib 的工作流程非常简单。使用 qrun 运行策略,它会处理所有事情:加载数据、训练模型、测试交易,并告诉你交易表现好坏。让我们用一些 Python 代码来演示每个步骤,看看它是如何工作的。我会尽量轻松易懂,就像边喝啤酒边解释一样。
3.1 数据抓取和准备
交易始于数据——股票价格、交易量,有时还有不寻常的经济统计数据。Qlib 让加载和分析财务数据变得非常容易,让你不再被 CSV 文件淹没。
import qlib
from qlib.data import D
# Set up Qlib (using Chinese market data for kicks)
qlib.init(provider_uri="~/.qlib/qlib_data/cn_data", region="cn")
# Pull data for a stock, like Alibaba
stock = ['SH600519'] # Kweichow Moutai, fancy liquor stock
data = D.features(
stock,
fields=['$close', '$volume'], # Just the basics
start_time='2020-01-01',
end_time='2023-12-31'
)
print(data.head()) # Sneak peek at the numbers
这将检索中国股票的收盘价和成交量。Qlib 会处理格式化和清理等繁琐的任务,让您专注于有趣的部分。
3.2 构建和运行模型
现在你需要一个大脑来预测接下来会发生什么。Qlib 允许你插入人工智能模型——无论是简单的回归分析还是强大的神经网络。训练、预测,搞定!
from qlib.models import LGBModel
from qlib.workflow import R
# Pick a model (LightGBM is fast and furious)
model = LGBModel()
# Train it and make predictions
with R.start(experiment_name="my_alibaba_bet"):
model.fit(data) # Crunch the numbers
preds = model.predict(data) # Guess the future
R.save_objects(predictions=preds) # Stash the results
这使用了 LightGBM,一种对交易特别有用的机器学习模型。Qlib 的 R 记录器会保存所有数据,以便你查看哪些地方出错了(或正确了)。
3.3 像老板一样进行回测
回测就像你假装自己是一位时间旅行者,用历史数据测试你的策略,看看它是否能让你致富。Qlib 的回测工具可以模拟交易并生成收益和风险等统计数据。
from qlib.backtest import backtest, executor
# Set up a strategy and trading rules
strategy_config = {
"class": "Alpha158",
"module_path": "qlib.contrib.strategy",
}
executor_config = {
"class": "SimulatorExecutor",
"time_per_step": "1day",
"generate_portfolio_metrics": True,
}
# Run the backtest
metrics, trades = backtest(
strategy=strategy_config,
executor=executor_config,
start_time='2023-01-01',
end_time='2023-12-31'
)
print(metrics) # Show me the money
这将测试一个名为 Alpha158 的策略(一个经典的量化技巧),并报告其表现。指标包括总利润和您承担的全部损失风险等。
3.4 检查分数
最后,Qlib 会评估您的策略。它会检查您的预测和回测结果,以确定您是天才还是仅仅是运气好。
from qlib.contrib.evaluate import risk_analysis
# Break down the performance
risk_stats = risk_analysis(metrics)
print(risk_stats) # The cold, hard truth
这会提供一份成绩单——收益、波动率以及所有重要细节。没有废话,只有事实。
4、为什么 Python 爱好者如此痴迷
如果您热爱 Python,那么 Qlib 是您的首选。它与 Pandas、NumPy 和其他熟悉的库完美集成。代码简洁,文档详实,您可以根据自己的需求进行自定义。我曾经花了一周时间尝试从头开始构建一个自定义回测程序,结果发现 Qlib 一个下午就能搞定。吸取教训吧。
想看看整个设置的实际效果吗?只需编写一个包含您的数据、模型和交易规则的 config.yaml 文件,然后点击:
qrun config.yaml
轰!Qlib 轻松搞定一切。
5、如何开始
准备好使用 Qlib 了吗?以下是快速入门指南:
安装:
pip install pyqlib
获取数据:Qlib 提供示例数据集,您也可以从 Alpha Vantage 等来源获取自己的数据集。
试用演示版:Qlib GitHub 代码库包含可供探索的配置和教程。
尝试各种模型和策略。打破常规。学习新知识。
原文链接:Microsoft Qlib: The Free AI-Powered Platform Turning Coders into Quant Traders
汇智网翻译整理,转载请标明出处
