社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

QF-Lib:用一个库搞定Python量化回测和策略开发

AI思想会 • 2 天前 • 13 次点击  
【前言】AI 正以前所未有的速度发展,新的机遇不断涌现,如果你希望:与技术专家、产品经理和创业者深度交流,一起探索 AI如何改变各行各业。欢迎在文末扫二维码,加入「AI思想会」交流群,和一群志同道合的伙伴共同学习、思考、创造!

搞过量化交易的人都清楚,测试策略的时候流程能有多乱:Pandas 管数据、Matplotlib 画图、Backtrader 跑回测,最后还要再用 Excel 做汇总。本来想简单验证个想法,结果工具链越搞越复杂,最后自己都不知道在干什么了。

QF-Lib(Quantitative Finance Library)是个金融研究和回测工具包。从数据获取到策略模拟、风险评估,再到最后的报告生成,基本能在这一个工具里搞定。

而且它还包含了的事件驱动机制,不是简单粗暴地循环价格数据,而是模拟市场开盘、交易执行、日终清算这些真实流程,基本上达到了专业回测系统的最低要求。

主要特性

数据源接入灵活

Bloomberg、Quandl、Haver 都能接,本地 Excel 文件也行。

连接方式非常简单:

from qf_lib.data_providers.quandl.quandl_data_provider import QuandlDataProvider  
data_provider = QuandlDataProvider(api_key="YOUR_API_KEY")

配置完就能用了。

内置前瞻偏差检测

写交易模型时最容易犯的错误就是前瞻偏差——代码里不小心用了未来数据。QF-Lib 在设计上就考虑了这个问题,能保证回测的时间逻辑不出错。

基于 Pandas 但功能更专业

底层用的是 Pandas,所以学习成本不高。但针对金融数据做了很多扩展,收益率计算、最大回撤、累计表现这些都是现成的。

from qf_lib.common.utils.returns import calculate_cumulative_returns  
  
daily_returns = [0.01, -0.005, 0.002, 0.004]  
cumulative = calculate_cumulative_returns(daily_returns)  
print(cumulative)

输出:

[1.011.004951.007941.01196]

这就是策略的累计净值曲线,代码很简洁。

回测模块设计合理

很多回测框架配置起来特别麻烦光搭环境就要半天,而QF-Lib 的回测器是模块化的,接口设计得比较直观,几分钟就能跑起来一个原型。

from qf_lib.backtesting import Backtester  
from qf_lib.strategy.simple_moving_average import SimpleMovingAverageStrategy  
  
backtester = Backtester(initial_cash=100000)  
strategy = SimpleMovingAverageStrategy(short_window=20, long_window=50)  
results = backtester.run(strategy)  
results.create_report("sma_backtest.pdf")

交易管理、日志记录都可以自动处理,最后还能生成 PDF 报告。

报告生成

QF-Lib 集成了 WeasyPrint,可以自动输出 PDF 或 Excel 格式的分析报告。图表、统计指标、绩效分解都整理得很清楚。

如果要给客户看结果,或者自己做策略记录,这个功能可以节省大量时间

图片
图片
图片

安装

PyPI 直接装:

pip install qf-lib

或者从源码编译:

git clone https://github.com/quarkfin/qf-lib.git  
cd qf-lib  
python setup.py install

支持 Python 3.8 到 3.11,Windows、macOS、Ubuntu 都能跑。

总结

QF-Lib 除了策略回测,还能用在:

时间序列分析、组合管理、衍生品定价、风险度量、学术研究等场景。基本上涉及金融数据处理的工作都能覆盖。

Backtrader、Zipline 这些库用过一圈下来,各有各的优势,但也各有各的问题。有些功能强但太复杂,有些简单但扩展性差。

QF-Lib 在这方面平衡得比较好。模块化设计保证了灵活性,同时支持主流数据源,代码风格也比较 Pythonic。特别是自动报告这个功能,实际工作中确实省了不少事。

如果正在做量化研究或者策略开发,可以考虑用用看。

图片
图片

文档:https://qf-lib.readthedocs.io

GitHub:https://github.com/quarkfin/qf-lib

作者:Civil Learning

(👇 长按识别二维码)
图片
转自:Deephub Imba

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/189117