MS Qlib:开源量化交易AI

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

MS Qlib:开源量化交易AI

我正坐在办公桌前。咖啡已经凉了。我盯着股票价格电子表格,试图用我笨重的 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

汇智网翻译整理,转载请标明出处