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

简介: QF-Lib 是一个一体化的量化金融研究工具库,涵盖数据获取、策略回测、风险分析到报告生成全流程。支持多数据源接入与前瞻偏差防护,基于事件驱动架构,内置专业金融函数,模块化设计便于扩展,可快速搭建策略原型并自动生成PDF/Excel报告,提升量化研究效率。

搞过量化交易的人都清楚,测试策略的时候流程能有多乱: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.01, 1.00495, 1.00794, 1.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://avoid.overfit.cn/post/b0196ea42b9847e8ae670d905526214f

作者:Civil Learning

目录
相关文章
|
22天前
|
人工智能 自然语言处理 监控
构建AI智能体:二十七、大模型如何“考出好成绩”:详解内在评测与外在评测方法
本文系统介绍了语言模型评测的两种主要方法:内在评测和外在评测。内在评测聚焦模型基础语言能力,核心指标困惑度(PPL)反映模型预测准确性,计算过程包括条件概率、对数概率和及指数转换。外在评测通过具体任务表现评估模型实用性,采用多层级评估策略(精确匹配、变体匹配、关键词分析和语义评估)。文章详细阐述了评测流程、指标计算方法和代码实现,强调两者结合使用的重要性:内在评测看基本功,外在评测检验实战能力。评测应持续进行,为模型选型、优化部署提供客观依据,同时关注公平性和领域适应性。
211 10
|
20天前
|
人工智能 JSON 缓存
CrewAI 上手攻略:多 Agent 自动化处理复杂任务,让 AI 像员工一样分工协作
CrewAI 是一个基于 Python 的自主 AI 智能体编排框架,可构建“虚拟团队”协同完成复杂任务。通过定义角色明确的 Agents、任务流 Tasks、协作流程 Processes 及可用工具 Tools,实现研究、写作、开发等多环节自动化。适用于长链条工作流,如研报生成、竞品分析、软件开发等,支持异步执行、人工介入与结构化输出,集成主流大模型与工具生态,是处理复杂知识型任务的高效选择。(238 字)
157 0
CrewAI 上手攻略:多 Agent 自动化处理复杂任务,让 AI 像员工一样分工协作
|
28天前
|
开发框架 Java 测试技术
领域驱动设计(DDD)在中小型项目中的落地实践
本文探讨领域驱动设计(DDD)在中小型项目中的落地实践,涵盖核心概念如领域模型、聚合、限界上下文与事件驱动架构,并结合电商订单系统案例,展示分层架构、仓储模式与领域服务的实际应用,助力团队构建高内聚、易维护的业务系统。
360 10
|
14天前
|
人工智能 JSON 机器人
从零开始:用Python和Gemini 3四步搭建你自己的AI Agent
AI Agent并非玄学,核心仅为“循环 + 大模型 + 工具函数”。本文教你用Gemini 3从零搭建能读写文件、执行指令的命令行助手,拆解其“观察-思考-行动”循环机制,揭示智能体背后的简洁本质。
241 17
从零开始:用Python和Gemini 3四步搭建你自己的AI Agent
|
22天前
|
存储 人工智能 搜索推荐
LEANN:一个极简的本地向量数据库
LEANN是面向RAG的轻量级嵌入式向量数据库,如SQLite般无需服务依赖,可在本地运行。它通过图结构与选择性重计算,节省97%存储且不损精度,让笔记本也能高效检索百万文档,兼顾隐私与性能,堪称个人AI搜索引擎。
103 4
LEANN:一个极简的本地向量数据库
|
1月前
|
人工智能 监控 安全
AI智能体落地:Agent-Assist vs 全自动化完整决策指南
2025年Agentic AI迅猛发展,但全自主智能体风险难控。Agent-Assist(人机协同)模式兼顾效率与安全,通过人类反馈持续学习,结合RAG构建组织知识库,实现AI越用越聪明。适合高风险、强依赖上下文的场景,是企业智能化升级的更优路径。
163 4
AI智能体落地:Agent-Assist vs 全自动化完整决策指南
|
25天前
|
人工智能 机器人 API
🤖 AstrBot 安卓 App:让每一个普通人都能拥有自己的 AI 聊天机器人
🤖 AstrBot 安卓 App:让每一个普通人都能拥有自己的 AI 聊天机器人
517 5
🤖 AstrBot 安卓 App:让每一个普通人都能拥有自己的 AI 聊天机器人
|
25天前
|
机器学习/深度学习 人工智能 API
构建AI智能体:二十四、RAG的高效召回方法论:提升RAG系统召回率的三大策略实践
本文探讨了检索增强生成(RAG)系统中的高效召回技术。RAG系统通过检索相关文档增强大语言模型的回答质量,但性能受制于垃圾进,垃圾出原则。为提高召回效果,文章重点分析了三种方法:Small-to-Big通过大小文本块映射兼顾检索精度与上下文丰富度;索引扩展(如HyDE)利用大模型生成假设文档来优化检索;双向改写弥合用户查询与文档表述的差异。这些方法从不同角度解决了RAG系统中的语义鸿沟、词汇不匹配等核心问题,可单独或组合使用。高效召回技术能显著提升RAG系统的回答质量和效率。
248 5
|
25天前
|
XML JSON 数据格式
Python 3.14 实用技巧:10个让代码更清晰的小改进
Python 3.14 带来10项实用改进:类型系统增强、错误提示更清晰、导入优化、异步任务取消更稳定,并新增 `chdir()` 上下文管理器等。虽改动细微,却显著提升代码可读性、调试效率与运行稳定性,适合自动化脚本与日常开发。升级即享,无需额外成本。
187 10
Python 3.14 实用技巧:10个让代码更清晰的小改进
|
3天前
|
弹性计算 运维 应用服务中间件
阿里云轻量应用服务器 vs 云服务器 ECS:全方位深度对比与选购指南
在阿里云的服务器产品体系中,轻量应用服务器与云服务器 ECS 是面向不同需求的核心产品。前者以 “简单易用、高性价比” 为核心,后者以 “功能全面、弹性灵活” 为优势。本文从适用人群、业务场景、功能配置、计费价格等 8 大维度展开深度对比,结合阿里云最新优惠政策,帮你精准匹配最适合的服务器方案。
98 12