[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-microsoft--qlib":3,"tool-microsoft--qlib":64},[4,17,27,35,43,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",138956,2,"2026-04-05T11:33:21",[13,15,26],"语言模型",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":23,"last_commit_at":33,"category_tags":34,"status":16},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[13,14,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":23,"last_commit_at":41,"category_tags":42,"status":16},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[13,26],{"id":44,"name":45,"github_repo":46,"description_zh":47,"stars":48,"difficulty_score":23,"last_commit_at":49,"category_tags":50,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,51,52,53,15,54,26,13,55],"数据工具","视频","插件","其他","音频",{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":10,"last_commit_at":62,"category_tags":63,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,26,54],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":69,"readme_en":70,"readme_zh":71,"quickstart_zh":72,"use_case_zh":73,"hero_image_url":74,"owner_login":75,"owner_name":76,"owner_avatar_url":77,"owner_bio":78,"owner_company":79,"owner_location":79,"owner_email":80,"owner_twitter":81,"owner_website":82,"owner_url":83,"languages":84,"stars":106,"forks":107,"last_commit_at":108,"license":109,"difficulty_score":10,"env_os":110,"env_gpu":111,"env_ram":111,"env_deps":112,"category_tags":124,"github_topics":125,"view_count":144,"oss_zip_url":79,"oss_zip_packed_at":79,"status":16,"created_at":145,"updated_at":146,"faqs":147,"releases":178},2192,"microsoft\u002Fqlib","qlib","Qlib is an AI-oriented Quant investment platform that aims to use AI tech to empower Quant Research, from exploring ideas to implementing productions. Qlib supports diverse ML modeling paradigms, including supervised learning, market dynamics modeling, and RL, and is now equipped with https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FRD-Agent to automate R&D process.","Qlib 是由微软推出的开源 AI 量化投资平台，旨在利用人工智能技术全面赋能量化研究，帮助用户从策略构思顺畅过渡到生产落地。它主要解决了传统量化开发中流程割裂、模型复现难以及自动化程度低的痛点，提供了一套涵盖数据处理、模型训练、回测分析及实盘部署的一站式解决方案。\n\nQlib 非常适合量化研究员、数据科学家以及金融领域的开发者使用。无论是希望探索前沿算法的学术研究者，还是致力于构建稳健交易系统的从业者，都能从中获益。其核心亮点在于支持多样化的机器学习建模范式，包括监督学习、市场动态建模及强化学习（RL）。尤为值得一提的是，Qlib 近期集成了基于大语言模型的 RD-Agent 组件，能够自动执行因子挖掘与模型优化任务，实现了研发流程的智能化演进。这种“数据驱动 +AI 自动化”的组合，显著降低了量化策略的研发门槛，让使用者能更专注于核心逻辑的创新，而非繁琐的工程实现。","[![Python Versions](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fpyversions\u002Fpyqlib.svg?logo=python&logoColor=white)](https:\u002F\u002Fpypi.org\u002Fproject\u002Fpyqlib\u002F#files)\n[![Platform](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fplatform-linux%20%7C%20windows%20%7C%20macos-lightgrey)](https:\u002F\u002Fpypi.org\u002Fproject\u002Fpyqlib\u002F#files)\n[![PypI Versions](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Fpyqlib)](https:\u002F\u002Fpypi.org\u002Fproject\u002Fpyqlib\u002F#history)\n[![Upload Python Package](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fworkflows\u002FUpload%20Python%20Package\u002Fbadge.svg)](https:\u002F\u002Fpypi.org\u002Fproject\u002Fpyqlib\u002F)\n[![Github Actions Test Status](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fworkflows\u002FTest\u002Fbadge.svg?branch=main)](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Factions)\n[![Documentation Status](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmicrosoft_qlib_readme_13d664e1afd7.png)](https:\u002F\u002Fqlib.readthedocs.io\u002Fen\u002Flatest\u002F?badge=latest)\n[![License](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fl\u002Fpyqlib)](LICENSE)\n[![Join the chat at https:\u002F\u002Fgitter.im\u002FMicrosoft\u002Fqlib](https:\u002F\u002Fbadges.gitter.im\u002FMicrosoft\u002Fqlib.svg)](https:\u002F\u002Fgitter.im\u002FMicrosoft\u002Fqlib?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n## :newspaper: **What's NEW!** &nbsp;   :sparkling_heart: \n\nRecent released features\n\n### Introducing \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FRD-Agent\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmicrosoft_qlib_readme_8ab4a5c98ae1.png\" alt=\"RD_Agent\" style=\"height: 2em\">\u003C\u002Fa>: LLM-Based Autonomous Evolving Agents for Industrial Data-Driven R&D\n\nWe are excited to announce the release of **RD-Agent**📢, a powerful tool that supports automated factor mining and model optimization in quant investment R&D.\n\nRD-Agent is now available on [GitHub](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FRD-Agent), and we welcome your star🌟!\n\nTo learn more, please visit our [♾️Demo page](https:\u002F\u002Frdagent.azurewebsites.net\u002F). Here, you will find demo videos in both English and Chinese to help you better understand the scenario and usage of RD-Agent.\n\nWe have prepared several demo videos for you:\n| Scenario | Demo video (English) | Demo video (中文) |\n| --                      | ------    | ------    |\n| Quant Factor Mining | [Link](https:\u002F\u002Frdagent.azurewebsites.net\u002Ffactor_loop?lang=en) | [Link](https:\u002F\u002Frdagent.azurewebsites.net\u002Ffactor_loop?lang=zh) |\n| Quant Factor Mining from reports | [Link](https:\u002F\u002Frdagent.azurewebsites.net\u002Freport_factor?lang=en) | [Link](https:\u002F\u002Frdagent.azurewebsites.net\u002Freport_factor?lang=zh) |\n| Quant Model Optimization | [Link](https:\u002F\u002Frdagent.azurewebsites.net\u002Fmodel_loop?lang=en) | [Link](https:\u002F\u002Frdagent.azurewebsites.net\u002Fmodel_loop?lang=zh) |\n\n- 📃**Paper**: [R&D-Agent-Quant: A Multi-Agent Framework for Data-Centric Factors and Model Joint Optimization](https:\u002F\u002Farxiv.org\u002Fabs\u002F2505.15155)\n- 👾**Code**: https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FRD-Agent\u002F\n```BibTeX\n@misc{li2025rdagentquant,\n    title={R\\&D-Agent-Quant: A Multi-Agent Framework for Data-Centric Factors and Model Joint Optimization},\n    author={Yuante Li and Xu Yang and Xiao Yang and Minrui Xu and Xisen Wang and Weiqing Liu and Jiang Bian},\n    year={2025},\n    eprint={2505.15155},\n    archivePrefix={arXiv},\n    primaryClass={cs.AI}\n}\n```\n![image](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmicrosoft_qlib_readme_7f402d19303b.png)\n\n***\n\n| Feature | Status |\n| --                      | ------    |\n| [R&D-Agent-Quant](https:\u002F\u002Farxiv.org\u002Fabs\u002F2505.15155) Published | Apply R&D-Agent to Qlib for quant trading | \n| BPQP for End-to-end learning | 📈Coming soon!([Under review](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F1863)) |\n| 🔥LLM-driven Auto Quant Factory🔥 | 🚀 Released in [♾️RD-Agent](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FRD-Agent) on Aug 8, 2024 |\n| KRNN and Sandwich models | :chart_with_upwards_trend: [Released](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F1414\u002F) on May 26, 2023 |\n| Release Qlib v0.9.0 | :octocat: [Released](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Freleases\u002Ftag\u002Fv0.9.0) on Dec 9, 2022 |\n| RL Learning Framework | :hammer: :chart_with_upwards_trend: Released on Nov 10, 2022. [#1332](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F1332), [#1322](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F1322), [#1316](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F1316),[#1299](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F1299),[#1263](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F1263), [#1244](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F1244), [#1169](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F1169), [#1125](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F1125), [#1076](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F1076)|\n| HIST and IGMTF models | :chart_with_upwards_trend: [Released](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F1040) on Apr 10, 2022 |\n| Qlib [notebook tutorial](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Ftree\u002Fmain\u002Fexamples\u002Ftutorial) | 📖 [Released](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F1037) on Apr 7, 2022 | \n| Ibovespa index data | :rice: [Released](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F990) on Apr 6, 2022 |\n| Point-in-Time database | :hammer: [Released](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F343) on Mar 10, 2022 |\n| Arctic Provider Backend & Orderbook data example | :hammer: [Released](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F744) on Jan 17, 2022 |\n| Meta-Learning-based framework & DDG-DA  | :chart_with_upwards_trend:  :hammer: [Released](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F743) on Jan 10, 2022 | \n| Planning-based portfolio optimization | :hammer: [Released](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F754) on Dec 28, 2021 | \n| Release Qlib v0.8.0 | :octocat: [Released](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Freleases\u002Ftag\u002Fv0.8.0) on Dec 8, 2021 |\n| ADD model | :chart_with_upwards_trend: [Released](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F704) on Nov 22, 2021 |\n| ADARNN  model | :chart_with_upwards_trend: [Released](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F689) on Nov 14, 2021 |\n| TCN  model | :chart_with_upwards_trend: [Released](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F668) on Nov 4, 2021 |\n| Nested Decision Framework | :hammer: [Released](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F438) on Oct 1, 2021. [Example](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fblob\u002Fmain\u002Fexamples\u002Fnested_decision_execution\u002Fworkflow.py) and [Doc](https:\u002F\u002Fqlib.readthedocs.io\u002Fen\u002Flatest\u002Fcomponent\u002Fhighfreq.html) |\n| Temporal Routing Adaptor (TRA) | :chart_with_upwards_trend: [Released](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F531) on July 30, 2021 |\n| Transformer & Localformer | :chart_with_upwards_trend: [Released](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F508) on July 22, 2021 |\n| Release Qlib v0.7.0 | :octocat: [Released](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Freleases\u002Ftag\u002Fv0.7.0) on July 12, 2021 |\n| TCTS Model | :chart_with_upwards_trend: [Released](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F491) on July 1, 2021 |\n| Online serving and automatic model rolling | :hammer:  [Released](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F290) on May 17, 2021 | \n| DoubleEnsemble Model | :chart_with_upwards_trend: [Released](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F286) on Mar 2, 2021 | \n| High-frequency data processing example | :hammer: [Released](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F257) on Feb 5, 2021  |\n| High-frequency trading example | :chart_with_upwards_trend: [Part of code released](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F227) on Jan 28, 2021  | \n| High-frequency data(1min) | :rice: [Released](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F221) on Jan 27, 2021 |\n| Tabnet Model | :chart_with_upwards_trend: [Released](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F205) on Jan 22, 2021 |\n\nFeatures released before 2021 are not listed here.\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmicrosoft_qlib_readme_4b9c8b383419.png\" \u002F>\n\u003C\u002Fp>\n\nQlib is an open-source, AI-oriented quantitative investment platform that aims to realize the potential, empower research, and create value using AI technologies in quantitative investment, from exploring ideas to implementing productions. Qlib supports diverse machine learning modeling paradigms, including supervised learning, market dynamics modeling, and reinforcement learning.\n\nAn increasing number of SOTA Quant research works\u002Fpapers in diverse paradigms are being released in Qlib to collaboratively solve key challenges in quantitative investment. For example, 1) using supervised learning to mine the market's complex non-linear patterns from rich and heterogeneous financial data, 2) modeling the dynamic nature of the financial market using adaptive concept drift technology, and 3) using reinforcement learning to model continuous investment decisions and assist investors in optimizing their trading strategies.\n\nIt contains the full ML pipeline of data processing, model training, back-testing; and covers the entire chain of quantitative investment: alpha seeking, risk modeling, portfolio optimization, and order execution. \nFor more details, please refer to our paper [\"Qlib: An AI-oriented Quantitative Investment Platform\"](https:\u002F\u002Farxiv.org\u002Fabs\u002F2009.11189).\n\n\n\u003Ctable>\n  \u003Ctbody>\n    \u003Ctr>\n      \u003Cth>Frameworks, Tutorial, Data & DevOps\u003C\u002Fth>\n      \u003Cth>Main Challenges & Solutions in Quant Research\u003C\u002Fth>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>\n        \u003Cli>\u003Ca href=\"#plans\">\u003Cstrong>Plans\u003C\u002Fstrong>\u003C\u002Fa>\u003C\u002Fli>\n        \u003Cli>\u003Ca href=\"#framework-of-qlib\">Framework of Qlib\u003C\u002Fa>\u003C\u002Fli>\n        \u003Cli>\u003Ca href=\"#quick-start\">Quick Start\u003C\u002Fa>\u003C\u002Fli>\n          \u003Cul dir=\"auto\">\n            \u003Cli type=\"circle\">\u003Ca href=\"#installation\">Installation\u003C\u002Fa> \u003C\u002Fli>\n            \u003Cli type=\"circle\">\u003Ca href=\"#data-preparation\">Data Preparation\u003C\u002Fa>\u003C\u002Fli>\n            \u003Cli type=\"circle\">\u003Ca href=\"#auto-quant-research-workflow\">Auto Quant Research Workflow\u003C\u002Fa>\u003C\u002Fli>\n            \u003Cli type=\"circle\">\u003Ca href=\"#building-customized-quant-research-workflow-by-code\">Building Customized Quant Research Workflow by Code\u003C\u002Fa>\u003C\u002Fli>\u003C\u002Ful>\n        \u003Cli>\u003Ca href=\"#quant-dataset-zoo\">\u003Cstrong>Quant Dataset Zoo\u003C\u002Fstrong>\u003C\u002Fa>\u003C\u002Fli>\n        \u003Cli>\u003Ca href=\"#learning-framework\">Learning Framework\u003C\u002Fa>\u003C\u002Fli>\n        \u003Cli>\u003Ca href=\"#more-about-qlib\">More About Qlib\u003C\u002Fa>\u003C\u002Fli>\n        \u003Cli>\u003Ca href=\"#offline-mode-and-online-mode\">Offline Mode and Online Mode\u003C\u002Fa>\n        \u003Cul>\n          \u003Cli type=\"circle\">\u003Ca href=\"#performance-of-qlib-data-server\">Performance of Qlib Data Server\u003C\u002Fa>\u003C\u002Fli>\u003C\u002Ful>\n        \u003Cli>\u003Ca href=\"#related-reports\">Related Reports\u003C\u002Fa>\u003C\u002Fli>\n        \u003Cli>\u003Ca href=\"#contact-us\">Contact Us\u003C\u002Fa>\u003C\u002Fli>\n        \u003Cli>\u003Ca href=\"#contributing\">Contributing\u003C\u002Fa>\u003C\u002Fli>\n      \u003C\u002Ftd>\n      \u003Ctd valign=\"baseline\">\n        \u003Cli>\u003Ca href=\"#main-challenges--solutions-in-quant-research\">Main Challenges &amp; Solutions in Quant Research\u003C\u002Fa>\n          \u003Cul>\n            \u003Cli type=\"circle\">\u003Ca href=\"#forecasting-finding-valuable-signalspatterns\">Forecasting: Finding Valuable Signals\u002FPatterns\u003C\u002Fa>\n              \u003Cul>\n                \u003Cli type=\"disc\">\u003Ca href=\"#quant-model-paper-zoo\">\u003Cstrong>Quant Model (Paper) Zoo\u003C\u002Fstrong>\u003C\u002Fa>\n                  \u003Cul>\n                    \u003Cli type=\"circle\">\u003Ca href=\"#run-a-single-model\">Run a Single Model\u003C\u002Fa>\u003C\u002Fli>\n                    \u003Cli type=\"circle\">\u003Ca href=\"#run-multiple-models\">Run Multiple Models\u003C\u002Fa>\u003C\u002Fli>\n                  \u003C\u002Ful>\n                \u003C\u002Fli>\n              \u003C\u002Ful>\n            \u003C\u002Fli>\n          \u003Cli type=\"circle\">\u003Ca href=\"#adapting-to-market-dynamics\">Adapting to Market Dynamics\u003C\u002Fa>\u003C\u002Fli>\n          \u003Cli type=\"circle\">\u003Ca href=\"#reinforcement-learning-modeling-continuous-decisions\">Reinforcement Learning: modeling continuous decisions\u003C\u002Fa>\u003C\u002Fli>\n          \u003C\u002Ful>\n        \u003C\u002Fli>\n      \u003C\u002Ftd>\n    \u003C\u002Ftr>\n  \u003C\u002Ftbody>\n\u003C\u002Ftable>\n\n# Plans\nNew features under development(order by estimated release time).\nYour feedbacks about the features are very important.\n\u003C!-- | Feature                        | Status      | -->\n\u003C!-- | --                      | ------    | -->\n\n# Framework of Qlib\n\n\u003Cdiv style=\"align: center\">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmicrosoft_qlib_readme_7d68450ec834.jpg\" \u002F>\n\u003C\u002Fdiv>\n\nThe high-level framework of Qlib can be found above(users can find the [detailed framework](https:\u002F\u002Fqlib.readthedocs.io\u002Fen\u002Flatest\u002Fintroduction\u002Fintroduction.html#framework) of Qlib's design when getting into nitty gritty).\nThe components are designed as loose-coupled modules, and each component could be used stand-alone.\n\nQlib provides a strong infrastructure to support Quant research. [Data](https:\u002F\u002Fqlib.readthedocs.io\u002Fen\u002Flatest\u002Fcomponent\u002Fdata.html) is always an important part.\nA strong learning framework is designed to support diverse learning paradigms (e.g. [reinforcement learning](https:\u002F\u002Fqlib.readthedocs.io\u002Fen\u002Flatest\u002Fcomponent\u002Frl.html), [supervised learning](https:\u002F\u002Fqlib.readthedocs.io\u002Fen\u002Flatest\u002Fcomponent\u002Fworkflow.html#model-section)) and patterns at different levels(e.g. [market dynamic modeling](https:\u002F\u002Fqlib.readthedocs.io\u002Fen\u002Flatest\u002Fcomponent\u002Fmeta.html)).\nBy modeling the market, [trading strategies](https:\u002F\u002Fqlib.readthedocs.io\u002Fen\u002Flatest\u002Fcomponent\u002Fstrategy.html) will generate trade decisions that will be executed. Multiple trading strategies and executors in different levels or granularities can be [nested to be optimized and run together](https:\u002F\u002Fqlib.readthedocs.io\u002Fen\u002Flatest\u002Fcomponent\u002Fhighfreq.html).\nAt last, a comprehensive [analysis](https:\u002F\u002Fqlib.readthedocs.io\u002Fen\u002Flatest\u002Fcomponent\u002Freport.html) will be provided and the model can be [served online](https:\u002F\u002Fqlib.readthedocs.io\u002Fen\u002Flatest\u002Fcomponent\u002Fonline.html) in a low cost.\n\n\n# Quick Start\n\nThis quick start guide tries to demonstrate\n1. It's very easy to build a complete Quant research workflow and try your ideas with _Qlib_.\n2. Though with *public data* and *simple models*, machine learning technologies **work very well** in practical Quant investment.\n\nHere is a quick **[demo](https:\u002F\u002Fterminalizer.com\u002Fview\u002F3f24561a4470)** shows how to install ``Qlib``, and run LightGBM with ``qrun``. **But**, please make sure you have already prepared the data following the [instruction](#data-preparation).\n\n\n## Installation\n\nThis table demonstrates the supported Python version of `Qlib`:\n|               | install with pip      | install from source  |        plot        |\n| ------------- |:---------------------:|:--------------------:|:------------------:|\n| Python 3.8    | :heavy_check_mark:    | :heavy_check_mark:   | :heavy_check_mark: |\n| Python 3.9    | :heavy_check_mark:    | :heavy_check_mark:   | :heavy_check_mark: |\n| Python 3.10   | :heavy_check_mark:    | :heavy_check_mark:   | :heavy_check_mark: |\n| Python 3.11   | :heavy_check_mark:    | :heavy_check_mark:   | :heavy_check_mark: |\n| Python 3.12   | :heavy_check_mark:    | :heavy_check_mark:   | :heavy_check_mark: |\n\n**Note**: \n1. **Conda** is suggested for managing your Python environment. In some cases, using Python outside of a `conda` environment may result in missing header files, causing the installation failure of certain packages.\n2. Please pay attention that installing cython in Python 3.6 will raise some error when installing ``Qlib`` from source. If users use Python 3.6 on their machines, it is recommended to *upgrade* Python to version 3.8 or higher, or use `conda`'s Python to install ``Qlib`` from source.\n\n### Install with pip\nUsers can easily install ``Qlib`` by pip according to the following command.\n\n```bash\n  pip install pyqlib\n```\n\n**Note**: pip will install the latest stable qlib. However, the main branch of qlib is in active development. If you want to test the latest scripts or functions in the main branch. Please install qlib with the methods below.\n\n### Install from source\nAlso, users can install the latest dev version ``Qlib`` by the source code according to the following steps:\n\n* Before installing ``Qlib`` from source, users need to install some dependencies:\n\n  ```bash\n  pip install numpy\n  pip install --upgrade cython\n  ```\n\n* Clone the repository and install ``Qlib`` as follows.\n    ```bash\n    git clone https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib.git && cd qlib\n    pip install .  # `pip install -e .[dev]` is recommended for development. check details in docs\u002Fdeveloper\u002Fcode_standard_and_dev_guide.rst\n    ```\n\n**Tips**: If you fail to install `Qlib` or run the examples in your environment,  comparing your steps and the [CI workflow](.github\u002Fworkflows\u002Ftest_qlib_from_source.yml) may help you find the problem.\n\n**Tips for Mac**: If you are using Mac with M1, you might encounter issues in building the wheel for LightGBM, which is due to missing dependencies from OpenMP. To solve the problem, install openmp first with ``brew install libomp`` and then run ``pip install .`` to build it successfully. \n\n## Data Preparation\n❗ Due to more restrict data security policy. The official dataset is disabled temporarily. You can try [this data source](https:\u002F\u002Fgithub.com\u002Fchenditc\u002Finvestment_data\u002Freleases) contributed by the community.\nHere is an example to download the latest data.\n```bash\nwget https:\u002F\u002Fgithub.com\u002Fchenditc\u002Finvestment_data\u002Freleases\u002Flatest\u002Fdownload\u002Fqlib_bin.tar.gz\nmkdir -p ~\u002F.qlib\u002Fqlib_data\u002Fcn_data\ntar -zxvf qlib_bin.tar.gz -C ~\u002F.qlib\u002Fqlib_data\u002Fcn_data --strip-components=1\nrm -f qlib_bin.tar.gz\n```\n\nThe official dataset below will resume in short future.\n\n\n----\n\nLoad and prepare data by running the following code:\n\n### Get with module\n  ```bash\n  # get 1d data\n  python -m qlib.cli.data qlib_data --target_dir ~\u002F.qlib\u002Fqlib_data\u002Fcn_data --region cn\n\n  # get 1min data\n  python -m qlib.cli.data qlib_data --target_dir ~\u002F.qlib\u002Fqlib_data\u002Fcn_data_1min --region cn --interval 1min\n\n  ```\n\n### Get from source\n\n  ```bash\n  # get 1d data\n  python scripts\u002Fget_data.py qlib_data --target_dir ~\u002F.qlib\u002Fqlib_data\u002Fcn_data --region cn\n\n  # get 1min data\n  python scripts\u002Fget_data.py qlib_data --target_dir ~\u002F.qlib\u002Fqlib_data\u002Fcn_data_1min --region cn --interval 1min\n\n  ```\n\nThis dataset is created by public data collected by [crawler scripts](scripts\u002Fdata_collector\u002F), which have been released in\nthe same repository.\nUsers could create the same dataset with it. [Description of dataset](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Ftree\u002Fmain\u002Fscripts\u002Fdata_collector#description-of-dataset)\n\n*Please pay **ATTENTION** that the data is collected from [Yahoo Finance](https:\u002F\u002Ffinance.yahoo.com\u002Flookup), and the data might not be perfect.\nWe recommend users to prepare their own data if they have a high-quality dataset. For more information, users can refer to the [related document](https:\u002F\u002Fqlib.readthedocs.io\u002Fen\u002Flatest\u002Fcomponent\u002Fdata.html#converting-csv-format-into-qlib-format)*.\n\n### Automatic update of daily frequency data (from yahoo finance)\n  > This step is *Optional* if users only want to try their models and strategies on history data.\n  > \n  > It is recommended that users update the data manually once (--trading_date 2021-05-25) and then set it to update automatically.\n  >\n  > **NOTE**: Users can't incrementally  update data based on the offline data provided by Qlib(some fields are removed to reduce the data size). Users should use [yahoo collector](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Ftree\u002Fmain\u002Fscripts\u002Fdata_collector\u002Fyahoo#automatic-update-of-daily-frequency-datafrom-yahoo-finance) to download Yahoo data from scratch and then incrementally update it.\n  > \n  > For more information, please refer to: [yahoo collector](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Ftree\u002Fmain\u002Fscripts\u002Fdata_collector\u002Fyahoo#automatic-update-of-daily-frequency-datafrom-yahoo-finance)\n\n  * Automatic update of data to the \"qlib\" directory each trading day(Linux)\n      * use *crontab*: `crontab -e`\n      * set up timed tasks:\n\n        ```\n        * * * * 1-5 python \u003Cscript path> update_data_to_bin --qlib_data_1d_dir \u003Cuser data dir>\n        ```\n        * **script path**: *scripts\u002Fdata_collector\u002Fyahoo\u002Fcollector.py*\n\n  * Manual update of data\n      ```\n      python scripts\u002Fdata_collector\u002Fyahoo\u002Fcollector.py update_data_to_bin --qlib_data_1d_dir \u003Cuser data dir> --trading_date \u003Cstart date> --end_date \u003Cend date>\n      ```\n      * *trading_date*: start of trading day\n      * *end_date*: end of trading day(not included)\n\n### Checking the health of the data\n  * We provide a script to check the health of the data, you can run the following commands to check whether the data is healthy or not.\n    ```\n    python scripts\u002Fcheck_data_health.py check_data --qlib_dir ~\u002F.qlib\u002Fqlib_data\u002Fcn_data\n    ```\n  * Of course, you can also add some parameters to adjust the test results, such as this.\n    ```\n    python scripts\u002Fcheck_data_health.py check_data --qlib_dir ~\u002F.qlib\u002Fqlib_data\u002Fcn_data --missing_data_num 30055 --large_step_threshold_volume 94485 --large_step_threshold_price 20\n    ```\n  * If you want more information about `check_data_health`, please refer to the [documentation](https:\u002F\u002Fqlib.readthedocs.io\u002Fen\u002Flatest\u002Fcomponent\u002Fdata.html#checking-the-health-of-the-data).\n\n\u003C!-- \n- Run the initialization code and get stock data:\n\n  ```python\n  import qlib\n  from qlib.data import D\n  from qlib.constant import REG_CN\n\n  # Initialization\n  mount_path = \"~\u002F.qlib\u002Fqlib_data\u002Fcn_data\"  # target_dir\n  qlib.init(mount_path=mount_path, region=REG_CN)\n\n  # Get stock data by Qlib\n  # Load trading calendar with the given time range and frequency\n  print(D.calendar(start_time='2010-01-01', end_time='2017-12-31', freq='day')[:2])\n\n  # Parse a given market name into a stockpool config\n  instruments = D.instruments('csi500')\n  print(D.list_instruments(instruments=instruments, start_time='2010-01-01', end_time='2017-12-31', as_list=True)[:6])\n\n  # Load features of certain instruments in given time range\n  instruments = ['SH600000']\n  fields = ['$close', '$volume', 'Ref($close, 1)', 'Mean($close, 3)', '$high-$low']\n  print(D.features(instruments, fields, start_time='2010-01-01', end_time='2017-12-31', freq='day').head())\n  ```\n -->\n\n## Docker images\n1. Pulling a docker image from a docker hub repository\n    ```bash\n    docker pull pyqlib\u002Fqlib_image_stable:stable\n    ```\n2. Start a new Docker container\n    ```bash\n    docker run -it --name \u003Ccontainer name> -v \u003CMounted local directory>:\u002Fapp pyqlib\u002Fqlib_image_stable:stable\n    ```\n3. At this point you are in the docker environment and can run the qlib scripts. An example:\n    ```bash\n    >>> python scripts\u002Fget_data.py qlib_data --name qlib_data_simple --target_dir ~\u002F.qlib\u002Fqlib_data\u002Fcn_data --interval 1d --region cn\n    >>> python qlib\u002Fcli\u002Frun.py examples\u002Fbenchmarks\u002FLightGBM\u002Fworkflow_config_lightgbm_Alpha158.yaml\n    ```\n4. Exit the container\n    ```bash\n    >>> exit\n    ```\n5. Restart the container\n    ```bash\n    docker start -i -a \u003Ccontainer name>\n    ```\n6. Stop the container\n    ```bash\n    docker stop \u003Ccontainer name>\n    ```\n7. Delete the container\n    ```bash\n    docker rm \u003Ccontainer name>\n    ```\n8. If you want to know more information, please refer to the [documentation](https:\u002F\u002Fqlib.readthedocs.io\u002Fen\u002Flatest\u002Fdeveloper\u002Fhow_to_build_image.html).\n\n## Auto Quant Research Workflow\nQlib provides a tool named `qrun` to run the whole workflow automatically (including building dataset, training models, backtest and evaluation). You can start an auto quant research workflow and have a graphical reports analysis according to the following steps: \n\n1. Quant Research Workflow: Run  `qrun` with lightgbm workflow config ([workflow_config_lightgbm_Alpha158.yaml](examples\u002Fbenchmarks\u002FLightGBM\u002Fworkflow_config_lightgbm_Alpha158.yaml) as following.\n    ```bash\n      cd examples  # Avoid running program under the directory contains `qlib`\n      qrun benchmarks\u002FLightGBM\u002Fworkflow_config_lightgbm_Alpha158.yaml\n    ```\n    If users want to use `qrun` under debug mode, please use the following command:\n    ```bash\n    python -m pdb qlib\u002Fcli\u002Frun.py examples\u002Fbenchmarks\u002FLightGBM\u002Fworkflow_config_lightgbm_Alpha158.yaml\n    ```\n    The result of `qrun` is as follows, please refer to [docs](https:\u002F\u002Fqlib.readthedocs.io\u002Fen\u002Flatest\u002Fcomponent\u002Fstrategy.html#result) for more explanations about the result. \n\n    ```bash\n\n    'The following are analysis results of the excess return without cost.'\n                           risk\n    mean               0.000708\n    std                0.005626\n    annualized_return  0.178316\n    information_ratio  1.996555\n    max_drawdown      -0.081806\n    'The following are analysis results of the excess return with cost.'\n                           risk\n    mean               0.000512\n    std                0.005626\n    annualized_return  0.128982\n    information_ratio  1.444287\n    max_drawdown      -0.091078\n    ```\n    Here are detailed documents for `qrun` and [workflow](https:\u002F\u002Fqlib.readthedocs.io\u002Fen\u002Flatest\u002Fcomponent\u002Fworkflow.html).\n\n2. Graphical Reports Analysis: First, run `python -m pip install .[analysis]` to install the required dependencies. Then run `examples\u002Fworkflow_by_code.ipynb` with `jupyter notebook` to get graphical reports. \n    - Forecasting signal (model prediction) analysis\n      - Cumulative Return of groups\n      ![Cumulative Return](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmicrosoft_qlib_readme_7d9218e470cd.png)\n      - Return distribution\n      ![long_short](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmicrosoft_qlib_readme_97ad7ee17420.png)\n      - Information Coefficient (IC)\n      ![Information Coefficient](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmicrosoft_qlib_readme_0dabf3272bac.png)\n      ![Monthly IC](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmicrosoft_qlib_readme_1ad41ac3808c.png)\n      ![IC](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmicrosoft_qlib_readme_ba4027a5f800.png)\n      - Auto Correlation of forecasting signal (model prediction)\n      ![Auto Correlation](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmicrosoft_qlib_readme_7f06bbc976b8.png)\n\n    - Portfolio analysis\n      - Backtest return\n      ![Report](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmicrosoft_qlib_readme_a8077a150bd1.png)\n      \u003C!-- \n      - Score IC\n      ![Score IC](docs\u002F_static\u002Fimg\u002Fscore_ic.png)\n      - Cumulative Return\n      ![Cumulative Return](docs\u002F_static\u002Fimg\u002Fcumulative_return.png)\n      - Risk Analysis\n      ![Risk Analysis](docs\u002F_static\u002Fimg\u002Frisk_analysis.png)\n      - Rank Label\n      ![Rank Label](docs\u002F_static\u002Fimg\u002Frank_label.png)\n      -->\n   - [Explanation](https:\u002F\u002Fqlib.readthedocs.io\u002Fen\u002Flatest\u002Fcomponent\u002Freport.html) of above results\n\n## Building Customized Quant Research Workflow by Code\nThe automatic workflow may not suit the research workflow of all Quant researchers. To support a flexible Quant research workflow, Qlib also provides a modularized interface to allow researchers to build their own workflow by code. [Here](examples\u002Fworkflow_by_code.ipynb) is a demo for customized Quant research workflow by code.\n\n# Main Challenges & Solutions in Quant Research\nQuant investment is a very unique scenario with lots of key challenges to be solved.\nCurrently, Qlib provides some solutions for several of them.\n\n## Forecasting: Finding Valuable Signals\u002FPatterns\nAccurate forecasting of the stock price trend is a very important part to construct profitable portfolios.\nHowever, huge amount of data with various formats in the financial market which make it challenging to build forecasting models.\n\nAn increasing number of SOTA Quant research works\u002Fpapers, which focus on building forecasting models to mine valuable signals\u002Fpatterns in complex financial data, are released in `Qlib`\n\n\n### [Quant Model (Paper) Zoo](examples\u002Fbenchmarks)\n\nHere is a list of models built on `Qlib`.\n- [GBDT based on XGBoost (Tianqi Chen, et al. KDD 2016)](examples\u002Fbenchmarks\u002FXGBoost\u002F)\n- [GBDT based on LightGBM (Guolin Ke, et al. NIPS 2017)](examples\u002Fbenchmarks\u002FLightGBM\u002F)\n- [GBDT based on Catboost (Liudmila Prokhorenkova, et al. NIPS 2018)](examples\u002Fbenchmarks\u002FCatBoost\u002F)\n- [MLP based on pytorch](examples\u002Fbenchmarks\u002FMLP\u002F)\n- [LSTM based on pytorch (Sepp Hochreiter, et al. Neural computation 1997)](examples\u002Fbenchmarks\u002FLSTM\u002F)\n- [GRU based on pytorch (Kyunghyun Cho, et al. 2014)](examples\u002Fbenchmarks\u002FGRU\u002F)\n- [ALSTM based on pytorch (Yao Qin, et al. IJCAI 2017)](examples\u002Fbenchmarks\u002FALSTM)\n- [GATs based on pytorch (Petar Velickovic, et al. 2017)](examples\u002Fbenchmarks\u002FGATs\u002F)\n- [SFM based on pytorch (Liheng Zhang, et al. KDD 2017)](examples\u002Fbenchmarks\u002FSFM\u002F)\n- [TFT based on tensorflow (Bryan Lim, et al. International Journal of Forecasting 2019)](examples\u002Fbenchmarks\u002FTFT\u002F)\n- [TabNet based on pytorch (Sercan O. Arik, et al. AAAI 2019)](examples\u002Fbenchmarks\u002FTabNet\u002F)\n- [DoubleEnsemble based on LightGBM (Chuheng Zhang, et al. ICDM 2020)](examples\u002Fbenchmarks\u002FDoubleEnsemble\u002F)\n- [TCTS based on pytorch (Xueqing Wu, et al. ICML 2021)](examples\u002Fbenchmarks\u002FTCTS\u002F)\n- [Transformer based on pytorch (Ashish Vaswani, et al. NeurIPS 2017)](examples\u002Fbenchmarks\u002FTransformer\u002F)\n- [Localformer based on pytorch (Juyong Jiang, et al.)](examples\u002Fbenchmarks\u002FLocalformer\u002F)\n- [TRA based on pytorch (Hengxu, Dong, et al. KDD 2021)](examples\u002Fbenchmarks\u002FTRA\u002F)\n- [TCN based on pytorch (Shaojie Bai, et al. 2018)](examples\u002Fbenchmarks\u002FTCN\u002F)\n- [ADARNN based on pytorch (YunTao Du, et al. 2021)](examples\u002Fbenchmarks\u002FADARNN\u002F)\n- [ADD based on pytorch (Hongshun Tang, et al.2020)](examples\u002Fbenchmarks\u002FADD\u002F)\n- [IGMTF based on pytorch (Wentao Xu, et al.2021)](examples\u002Fbenchmarks\u002FIGMTF\u002F)\n- [HIST based on pytorch (Wentao Xu, et al.2021)](examples\u002Fbenchmarks\u002FHIST\u002F)\n- [KRNN based on pytorch](examples\u002Fbenchmarks\u002FKRNN\u002F)\n- [Sandwich based on pytorch](examples\u002Fbenchmarks\u002FSandwich\u002F)\n\nYour PR of new Quant models is highly welcomed.\n\nThe performance of each model on the `Alpha158` and `Alpha360` datasets can be found [here](examples\u002Fbenchmarks\u002FREADME.md).\n\n### Run a single model\nAll the models listed above are runnable with ``Qlib``. Users can find the config files we provide and some details about the model through the [benchmarks](examples\u002Fbenchmarks) folder. More information can be retrieved at the model files listed above.\n\n`Qlib` provides three different ways to run a single model, users can pick the one that fits their cases best:\n- Users can use the tool `qrun` mentioned above to run a model's workflow based from a config file.\n- Users can create a `workflow_by_code` python script based on the [one](examples\u002Fworkflow_by_code.py) listed in the `examples` folder.\n\n- Users can use the script [`run_all_model.py`](examples\u002Frun_all_model.py) listed in the `examples` folder to run a model. Here is an example of the specific shell command to be used: `python run_all_model.py run --models=lightgbm`, where the `--models` arguments can take any number of models listed above(the available models can be found  in [benchmarks](examples\u002Fbenchmarks\u002F)). For more use cases, please refer to the file's [docstrings](examples\u002Frun_all_model.py).\n    - **NOTE**: Each baseline has different environment dependencies, please make sure that your python version aligns with the requirements(e.g. TFT only supports Python 3.6~3.7 due to the limitation of `tensorflow==1.15.0`)\n\n### Run multiple models\n`Qlib` also provides a script [`run_all_model.py`](examples\u002Frun_all_model.py) which can run multiple models for several iterations. (**Note**: the script only support *Linux* for now. Other OS will be supported in the future. Besides, it doesn't support parallel running the same model for multiple times as well, and this will be fixed in the future development too.)\n\nThe script will create a unique virtual environment for each model, and delete the environments after training. Thus, only experiment results such as `IC` and `backtest` results will be generated and stored.\n\nHere is an example of running all the models for 10 iterations:\n```python\npython run_all_model.py run 10\n```\n\nIt also provides the API to run specific models at once. For more use cases, please refer to the file's [docstrings](examples\u002Frun_all_model.py). \n\n### Break change\nIn `pandas`, `group_key` is one of the parameters of the `groupby` method. From version 1.5 to 2.0 of `pandas`, the default value of `group_key` has been changed from `no default` to `True`, which will cause qlib to report an error during operation. So we set `group_key=False`, but it doesn't guarantee that some programmes will run correctly, including:\n* qlib\\examples\\rl_order_execution\\scripts\\gen_training_orders.py\n* qlib\\examples\\benchmarks\\TRA\\src\\dataset.MTSDatasetH.py\n* qlib\\examples\\benchmarks\\TFT\\tft.py\n\n\n\n## [Adapting to Market Dynamics](examples\u002Fbenchmarks_dynamic)\n\nDue to the non-stationary nature of the environment of the financial market, the data distribution may change in different periods, which makes the performance of models build on training data decays in the future test data.\nSo adapting the forecasting models\u002Fstrategies to market dynamics is very important to the model\u002Fstrategies' performance.\n\nHere is a list of solutions built on `Qlib`.\n- [Rolling Retraining](examples\u002Fbenchmarks_dynamic\u002Fbaseline\u002F)\n- [DDG-DA on pytorch (Wendi, et al. AAAI 2022)](examples\u002Fbenchmarks_dynamic\u002FDDG-DA\u002F)\n\n##  Reinforcement Learning: modeling continuous decisions\nQlib now supports reinforcement learning, a feature designed to model continuous investment decisions. This functionality assists investors in optimizing their trading strategies by learning from interactions with the environment to maximize some notion of cumulative reward.\n\nHere is a list of solutions built on `Qlib` categorized by scenarios.\n\n### [RL for order execution](examples\u002Frl_order_execution)\n[Here](https:\u002F\u002Fqlib.readthedocs.io\u002Fen\u002Flatest\u002Fcomponent\u002Frl\u002Foverall.html#order-execution) is the introduction of this scenario.  All the methods below are compared [here](examples\u002Frl_order_execution).\n- [TWAP](examples\u002Frl_order_execution\u002Fexp_configs\u002Fbacktest_twap.yml)\n- [PPO: \"An End-to-End Optimal Trade Execution Framework based on Proximal Policy Optimization\", IJCAL 2020](examples\u002Frl_order_execution\u002Fexp_configs\u002Fbacktest_ppo.yml)\n- [OPDS: \"Universal Trading for Order Execution with Oracle Policy Distillation\", AAAI 2021](examples\u002Frl_order_execution\u002Fexp_configs\u002Fbacktest_opds.yml)\n\n# Quant Dataset Zoo\nDataset plays a very important role in Quant. Here is a list of the datasets built on `Qlib`:\n\n| Dataset                                    | US Market | China Market |\n| --                                         | --        | --           |\n| [Alpha360](.\u002Fqlib\u002Fcontrib\u002Fdata\u002Fhandler.py) |  √        |  √           |\n| [Alpha158](.\u002Fqlib\u002Fcontrib\u002Fdata\u002Fhandler.py) |  √        |  √           |\n\n[Here](https:\u002F\u002Fqlib.readthedocs.io\u002Fen\u002Flatest\u002Fadvanced\u002Falpha.html) is a tutorial to build dataset with `Qlib`.\nYour PR to build new Quant dataset is highly welcomed.\n\n\n# Learning Framework\nQlib is high customizable and a lot of its components are learnable.\nThe learnable components are instances of `Forecast Model` and `Trading Agent`. They are learned based on the `Learning Framework` layer and then applied to multiple scenarios in `Workflow` layer.\nThe learning framework leverages the `Workflow` layer as well(e.g. sharing `Information Extractor`, creating environments based on `Execution Env`).\n\nBased on learning paradigms, they can be categorized into reinforcement learning and supervised learning.\n- For supervised learning, the detailed docs can be found [here](https:\u002F\u002Fqlib.readthedocs.io\u002Fen\u002Flatest\u002Fcomponent\u002Fmodel.html).\n- For reinforcement learning, the detailed docs can be found [here](https:\u002F\u002Fqlib.readthedocs.io\u002Fen\u002Flatest\u002Fcomponent\u002Frl.html). Qlib's RL learning framework leverages `Execution Env` in `Workflow` layer to create environments.  It's worth noting that `NestedExecutor` is supported as well. This empowers users to optimize different level of strategies\u002Fmodels\u002Fagents together (e.g. optimizing an order execution strategy for a specific portfolio management strategy).\n\n\n# More About Qlib\nIf you want to have a quick glance at the most frequently used components of qlib, you can try notebooks [here](examples\u002Ftutorial\u002F).\n\nThe detailed documents are organized in [docs](docs\u002F).\n[Sphinx](http:\u002F\u002Fwww.sphinx-doc.org) and the readthedocs theme is required to build the documentation in html formats. \n```bash\ncd docs\u002F\nconda install sphinx sphinx_rtd_theme -y\n# Otherwise, you can install them with pip\n# pip install sphinx sphinx_rtd_theme\nmake html\n```\nYou can also view the [latest document](http:\u002F\u002Fqlib.readthedocs.io\u002F) online directly.\n\nQlib is in active and continuing development. Our plan is in the roadmap, which is managed as a [github project](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fprojects\u002F1).\n\n\n\n# Offline Mode and Online Mode\nThe data server of Qlib can either deployed as `Offline` mode or `Online` mode. The default mode is offline mode.\n\nUnder `Offline` mode, the data will be deployed locally. \n\nUnder `Online` mode, the data will be deployed as a shared data service. The data and their cache will be shared by all the clients. The data retrieval performance is expected to be improved due to a higher rate of cache hits. It will consume less disk space, too. The documents of the online mode can be found in [Qlib-Server](https:\u002F\u002Fqlib-server.readthedocs.io\u002F). The online mode can be deployed automatically with [Azure CLI based scripts](https:\u002F\u002Fqlib-server.readthedocs.io\u002Fen\u002Flatest\u002Fbuild.html#one-click-deployment-in-azure). The source code of online data server can be found in [Qlib-Server repository](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib-server).\n\n## Performance of Qlib Data Server\nThe performance of data processing is important to data-driven methods like AI technologies. As an AI-oriented platform, Qlib provides a solution for data storage and data processing. To demonstrate the performance of Qlib data server, we\ncompare it with several other data storage solutions. \n\nWe evaluate the performance of several storage solutions by finishing the same task,\nwhich creates a dataset (14 features\u002Ffactors) from the basic OHLCV daily data of a stock market (800 stocks each day from 2007 to 2020). The task involves data queries and processing.\n\n|                         | HDF5      | MySQL     | MongoDB   | InfluxDB  | Qlib -E -D  | Qlib +E -D   | Qlib +E +D  |\n| --                      | ------    | ------    | --------  | --------- | ----------- | ------------ | ----------- |\n| Total (1CPU) (seconds)  | 184.4±3.7 | 365.3±7.5 | 253.6±6.7 | 368.2±3.6 | 147.0±8.8   | 47.6±1.0     | **7.4±0.3** |\n| Total (64CPU) (seconds) |           |           |           |           | 8.8±0.6     | **4.2±0.2**  |             |\n* `+(-)E` indicates with (out) `ExpressionCache`\n* `+(-)D` indicates with (out) `DatasetCache`\n\nMost general-purpose databases take too much time to load data. After looking into the underlying implementation, we find that data go through too many layers of interfaces and unnecessary format transformations in general-purpose database solutions.\nSuch overheads greatly slow down the data loading process.\nQlib data are stored in a compact format, which is efficient to be combined into arrays for scientific computation.\n\n# Related Reports\n- [Guide To Qlib: Microsoft’s AI Investment Platform](https:\u002F\u002Fanalyticsindiamag.com\u002Fqlib\u002F)\n- [微软也搞AI量化平台？还是开源的！](https:\u002F\u002Fmp.weixin.qq.com\u002Fs\u002F47bP5YwxfTp2uTHjUBzJQQ)\n- [微矿Qlib：业内首个AI量化投资开源平台](https:\u002F\u002Fmp.weixin.qq.com\u002Fs\u002FvsJv7lsgjEi-ALYUz4CvtQ)\n\n# Contact Us\n- If you have any issues, please create issue [here](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fissues\u002Fnew\u002Fchoose) or send messages in [gitter](https:\u002F\u002Fgitter.im\u002FMicrosoft\u002Fqlib).\n- If you want to make contributions to `Qlib`, please [create pull requests](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fcompare). \n- For other reasons, you are welcome to contact us by email([qlib@microsoft.com](mailto:qlib@microsoft.com)).\n  - We are recruiting new members(both FTEs and interns), your resumes are welcome!\n\nJoin IM discussion groups:\n|[Gitter](https:\u002F\u002Fgitter.im\u002FMicrosoft\u002Fqlib)|\n|----|\n|![image](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmicrosoft_qlib_readme_19f9d080f79a.png)|\n\n# Contributing\nWe appreciate all contributions and thank all the contributors!\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fgraphs\u002Fcontributors\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmicrosoft_qlib_readme_cf939e828b10.png\" \u002F>\u003C\u002Fa>\n\nBefore we released Qlib as an open-source project on Github in Sep 2020, Qlib is an internal project in our group. Unfortunately, the internal commit history is not kept. A lot of members in our group have also contributed a lot to Qlib, which includes Ruihua Wang, Yinda Zhang, Haisu Yu, Shuyu Wang, Bochen Pang, and [Dong Zhou](https:\u002F\u002Fgithub.com\u002Fevanzd\u002Fevanzd). Especially thanks to [Dong Zhou](https:\u002F\u002Fgithub.com\u002Fevanzd\u002Fevanzd) due to his initial version of Qlib.\n\n## Guidance\n\nThis project welcomes contributions and suggestions.  \n**Here are some \n[code standards and development guidance](docs\u002Fdeveloper\u002Fcode_standard_and_dev_guide.rst) for submiting a pull request.**\n\nMaking contributions is not a hard thing. Solving an issue(maybe just answering a question raised in [issues list](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fissues) or [gitter](https:\u002F\u002Fgitter.im\u002FMicrosoft\u002Fqlib)), fixing\u002Fissuing a bug, improving the documents and even fixing a typo are important contributions to Qlib.\n\nFor example, if you want to contribute to Qlib's document\u002Fcode, you can follow the steps in the figure below.\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmicrosoft_qlib_readme_15621b9f8950.gif\" \u002F>\n\u003C\u002Fp>\n\nIf you don't know how to start to contribute, you can refer to the following examples.\n| Type | Examples |\n| -- | -- |\n| Solving issues | [Answer a question](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fissues\u002F749);  [issuing](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fissues\u002F765) or [fixing](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F792) a bug |\n| Docs | [Improve docs quality](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F797\u002Ffiles) ;  [Fix a typo](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F774) | \n| Feature |  Implement a [requested feature](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fprojects) like [this](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F754); [Refactor interfaces](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F539\u002Ffiles) |\n| Dataset | [Add a dataset](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F733) | \n| Models |  [Implement a new model](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F689), [some instructions to contribute models](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Ftree\u002Fmain\u002Fexamples\u002Fbenchmarks#contributing) |\n\n[Good first issues](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Flabels\u002Fgood%20first%20issue) are labelled to indicate that they are easy to start your contributions.\n\nYou can find some impefect implementation in Qlib by  `rg 'TODO|FIXME' qlib`\n \nIf you would like to become one of Qlib's maintainers to contribute more (e.g. help merge PR, triage issues), please contact us by email([qlib@microsoft.com](mailto:qlib@microsoft.com)).  We are glad to help to upgrade your permission.\n\n## License\nMost contributions require you to agree to a\nContributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us\nthe right to use your contribution. For details, visit https:\u002F\u002Fcla.opensource.microsoft.com.\n\nWhen you submit a pull request, a CLA bot will automatically determine whether you need to provide\na CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions\nprovided by the bot. You will only need to do this once across all repos using our CLA.\n\nThis project has adopted the [Microsoft Open Source Code of Conduct](https:\u002F\u002Fopensource.microsoft.com\u002Fcodeofconduct\u002F).\nFor more information see the [Code of Conduct FAQ](https:\u002F\u002Fopensource.microsoft.com\u002Fcodeofconduct\u002Ffaq\u002F) or\ncontact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.\n","[![Python版本](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fpyversions\u002Fpyqlib.svg?logo=python&logoColor=white)](https:\u002F\u002Fpypi.org\u002Fproject\u002Fpyqlib\u002F#files)\n[![平台](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fplatform-linux%20%7C%20windows%20%7C%20macos-lightgrey)](https:\u002F\u002Fpypi.org\u002Fproject\u002Fpyqlib\u002F#files)\n[![PyPI版本](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Fpyqlib)](https:\u002F\u002Fpypi.org\u002Fproject\u002Fpyqlib\u002F#history)\n[![上传Python包](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fworkflows\u002FUpload%20Python%20Package\u002Fbadge.svg)](https:\u002F\u002Fpypi.org\u002Fproject\u002Fpyqlib\u002F)\n[![GitHub Actions测试状态](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fworkflows\u002FTest\u002Fbadge.svg?branch=main)](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Factions)\n[![文档状态](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmicrosoft_qlib_readme_13d664e1afd7.png)](https:\u002F\u002Fqlib.readthedocs.io\u002Fen\u002Flatest\u002F?badge=latest)\n[![许可证](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fl\u002Fpyqlib)](LICENSE)\n[![加入聊天https:\u002F\u002Fgitter.im\u002FMicrosoft\u002Fqlib](https:\u002F\u002Fbadges.gitter.im\u002FMicrosoft\u002Fqlib.svg)](https:\u002F\u002Fgitter.im\u002FMicrosoft\u002Fqlib?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n## :newspaper: **最新动态！** &nbsp;   :sparkling_heart: \n\n近期发布的新功能\n\n### 重磅推出\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FRD-Agent\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmicrosoft_qlib_readme_8ab4a5c98ae1.png\" alt=\"RD_Agent\" style=\"height: 2em\">\u003C\u002Fa>：基于大语言模型的工业数据驱动研发自主进化智能体\n\n我们非常高兴地宣布推出**RD-Agent**📢，这是一款强大的工具，可支持量化投资研发中的自动化因子挖掘与模型优化。\n\nRD-Agent现已在[GitHub](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FRD-Agent)上开放下载，欢迎各位给它点个赞🌟！\n\n如需了解更多，请访问我们的[♾️演示页面](https:\u002F\u002Frdagent.azurewebsites.net\u002F)。在这里，您将找到中英双语的演示视频，帮助您更好地理解RD-Agent的应用场景及使用方法。\n\n我们为您准备了多段演示视频：\n| 场景 | 英文演示视频 | 中文演示视频 |\n| --                      | ------    | ------    |\n| 量化因子挖掘 | [链接](https:\u002F\u002Frdagent.azurewebsites.net\u002Ffactor_loop?lang=en) | [链接](https:\u002F\u002Frdagent.azurewebsites.net\u002Ffactor_loop?lang=zh) |\n| 从报告中挖掘量化因子 | [链接](https:\u002F\u002Frdagent.azurewebsites.net\u002Freport_factor?lang=en) | [链接](https:\u002F\u002Frdagent.azurewebsites.net\u002Freport_factor?lang=zh) |\n| 量化模型优化 | [链接](https:\u002F\u002Frdagent.azurewebsites.net\u002Fmodel_loop?lang=en) | [链接](https:\u002F\u002Frdagent.azurewebsites.net\u002Fmodel_loop?lang=zh) |\n\n- 📃**论文**: [R&D-Agent-Quant: 一种以数据为中心的因子与模型联合优化的多智能体框架](https:\u002F\u002Farxiv.org\u002Fabs\u002F2505.15155)\n- 👾**代码**: https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FRD-Agent\u002F\n```BibTeX\n@misc{li2025rdagentquant,\n    title={R\\&D-Agent-Quant: 一种以数据为中心的因子与模型联合优化的多智能体框架},\n    author={李远特、杨旭、杨晓、徐敏睿、王希森、刘伟青、卞江},\n    year={2025},\n    eprint={2505.15155},\n    archivePrefix={arXiv},\n    primaryClass={cs.AI}\n}\n```\n![图片](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmicrosoft_qlib_readme_7f402d19303b.png)\n\n***\n\n| 功能 | 状态 |\n| --                      | ------    |\n| [R&D-Agent-Quant](https:\u002F\u002Farxiv.org\u002Fabs\u002F2505.15155) 已发布 | 将 R&D-Agent 应用于 Qlib 进行量化交易 | \n| 用于端到端学习的 BPQP | 📈 即将推出！([正在评审中](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F1863)) |\n| 🔥LLM驱动的自动量化工厂🔥 | 🚀 于2024年8月8日在[♾️RD-Agent](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FRD-Agent)中发布 |\n| KRNN 和 Sandwich 模型 | :chart_with_upwards_trend: [已发布](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F1414\u002F)于2023年5月26日 |\n| 发布 Qlib v0.9.0 | :octocat: [已发布](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Freleases\u002Ftag\u002Fv0.9.0)于2022年12月9日 |\n| 强化学习框架 | :hammer: :chart_with_upwards_trend: 于2022年11月10日发布。[#1332](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F1332), [#1322](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F1322), [#1316](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F1316),[#1299](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F1299),[#1263](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F1263), [#1244](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F1244), [#1169](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F1169), [#1125](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F1125), [#1076](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F1076)|\n| HIST 和 IGMTF 模型 | :chart_with_upwards_trend: [已发布](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F1040)于2022年4月10日 |\n| Qlib [笔记本教程](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Ftree\u002Fmain\u002Fexamples\u002Ftutorial) | 📖 [已发布](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F1037)于2022年4月7日 | \n| Ibovespa 指数数据 | :rice: [已发布](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F990)于2022年4月6日 |\n| 时间点数据库 | :hammer: [已发布](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F343)于2022年3月10日 |\n| Arctic 提供商后端及订单簿数据示例 | :hammer: [已发布](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F744)于2022年1月17日 |\n| 基于元学习的框架与 DDG-DA  | :chart_with_upwards_trend:  :hammer: [已发布](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F743)于2022年1月10日 | \n| 基于规划的投资组合优化 | :hammer: [已发布](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F754)于2021年12月28日 | \n| 发布 Qlib v0.8.0 | :octocat: [已发布](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Freleases\u002Ftag\u002Fv0.8.0)于2021年12月8日 |\n| ADD 模型 | :chart_with_upwards_trend: [已发布](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F704)于2021年11月22日 |\n| ADARNN 模型 | :chart_with_upwards_trend: [已发布](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F689)于2021年11月14日 |\n| TCN 模型 | :chart_with_upwards_trend: [已发布](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F668)于2021年11月4日 |\n| 嵌套决策框架 | :hammer: [已发布](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F438)于2021年10月1日。[示例](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fblob\u002Fmain\u002Fexamples\u002Fnested_decision_execution\u002Fworkflow.py)和[文档](https:\u002F\u002Fqlib.readthedocs.io\u002Fen\u002Flatest\u002Fcomponent\u002Fhighfreq.html) |\n| 时间路由适配器 (TRA) | :chart_with_upwards_trend: [已发布](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F531)于2021年7月30日 |\n| Transformer 和 Localformer | :chart_with_upwards_trend: [已发布](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F508)于2021年7月22日 |\n| 发布 Qlib v0.7.0 | :octocat: [已发布](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Freleases\u002Ftag\u002Fv0.7.0)于2021年7月12日 |\n| TCTS 模型 | :chart_with_upwards_trend: [已发布](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F491)于2021年7月1日 |\n| 在线服务与模型自动滚动 | :hammer:  [已发布](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F290)于2021年5月17日 | \n| DoubleEnsemble 模型 | :chart_with_upwards_trend: [已发布](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F286)于2021年3月2日 | \n| 高频数据处理示例 | :hammer: [已发布](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F257)于2021年2月5日 |\n| 高频交易示例 | :chart_with_upwards_trend: [部分代码已发布](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F227)于2021年1月28日 | \n| 高频数据(1分钟) | :rice: [已发布](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F221)于2021年1月27日 |\n| Tabnet 模型 | :chart_with_upwards_trend: [已发布](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F205)于2021年1月22日 |\n\n此处未列出2021年之前发布的功能。\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmicrosoft_qlib_readme_4b9c8b383419.png\" \u002F>\n\u003C\u002Fp>\n\nQlib 是一个开源、以 AI 为导向的量化投资平台，旨在通过 AI 技术释放潜力、赋能研究并创造价值，从量化投资理念的探索到实际应用的落地。Qlib 支持多种机器学习建模范式，包括监督学习、市场动态建模和强化学习。\n\n越来越多的 SOTA 量化研究工作\u002F论文正通过 Qlib 发布，以协作解决量化投资中的关键挑战。例如：1) 利用监督学习从丰富且异构的金融数据中挖掘市场的复杂非线性模式；2) 使用自适应概念漂移技术对金融市场进行动态建模；3) 通过强化学习对连续投资决策建模，帮助投资者优化交易策略。\n\n它涵盖了完整的机器学习流程，包括数据处理、模型训练和回测；并覆盖了量化投资的整个链条：阿尔法挖掘、风险建模、投资组合优化和订单执行。更多详情请参阅我们的论文《Qlib：一个以AI为导向的量化投资平台》(https:\u002F\u002Farxiv.org\u002Fabs\u002F2009.11189)。\n\n\u003Ctable>\n  \u003Ctbody>\n    \u003Ctr>\n      \u003Cth>框架、教程、数据与DevOps\u003C\u002Fth>\n      \u003Cth>量化研究中的主要挑战与解决方案\u003C\u002Fth>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>\n        \u003Cli>\u003Ca href=\"#plans\">\u003Cstrong>计划\u003C\u002Fstrong>\u003C\u002Fa>\u003C\u002Fli>\n        \u003Cli>\u003Ca href=\"#framework-of-qlib\">Qlib框架\u003C\u002Fa>\u003C\u002Fli>\n        \u003Cli>\u003Ca href=\"#quick-start\">快速入门\u003C\u002Fa>\u003C\u002Fli>\n          \u003Cul dir=\"auto\">\n            \u003Cli type=\"circle\">\u003Ca href=\"#installation\">安装\u003C\u002Fa> \u003C\u002Fli>\n            \u003Cli type=\"circle\">\u003Ca href=\"#data-preparation\">数据准备\u003C\u002Fa>\u003C\u002Fli>\n            \u003Cli type=\"circle\">\u003Ca href=\"#auto-quant-research-workflow\">自动化量化研究流程\u003C\u002Fa>\u003C\u002Fli>\n            \u003Cli type=\"circle\">\u003Ca href=\"#building-customized-quant-research-workflow-by-code\">通过代码构建自定义量化研究流程\u003C\u002Fa>\u003C\u002Fli>\u003C\u002Ful>\n        \u003Cli>\u003Ca href=\"#quant-dataset-zoo\">\u003Cstrong>量化数据集动物园\u003C\u002Fstrong>\u003C\u002Fa>\u003C\u002Fli>\n        \u003Cli>\u003Ca href=\"#learning-framework\">学习框架\u003C\u002Fa>\u003C\u002Fli>\n        \u003Cli>\u003Ca href=\"#more-about-qlib\">关于Qlib的更多信息\u003C\u002Fa>\u003C\u002Fli>\n        \u003Cli>\u003Ca href=\"#offline-mode-and-online-mode\">离线模式与在线模式\u003C\u002Fa>\n        \u003Cul>\n          \u003Cli type=\"circle\">\u003Ca href=\"#performance-of-qlib-data-server\">Qlib数据服务器性能\u003C\u002Fa>\u003C\u002Fli>\u003C\u002Ful>\n        \u003Cli>\u003Ca href=\"#related-reports\">相关报告\u003C\u002Fa>\u003C\u002Fli>\n        \u003Cli>\u003Ca href=\"#contact-us\">联系我们\u003C\u002Fa>\u003C\u002Fli>\n        \u003Cli>\u003Ca href=\"#contributing\">贡献\u003C\u002Fa>\u003C\u002Fli>\n      \u003C\u002Ftd>\n      \u003Ctd valign=\"baseline\">\n        \u003Cli>\u003Ca href=\"#main-challenges--solutions-in-quant-research\">量化研究中的主要挑战与解决方案\u003C\u002Fa>\n          \u003Cul>\n            \u003Cli type=\"circle\">\u003Ca href=\"#forecasting-finding-valuable-signalspatterns\">预测：寻找有价值的信号\u002F模式\u003C\u002Fa>\n              \u003Cul>\n                \u003Cli type=\"disc\">\u003Ca href=\"#quant-model-paper-zoo\">\u003Cstrong>量化模型（论文）动物园\u003C\u002Fstrong>\u003C\u002Fa>\n                  \u003Cul>\n                    \u003Cli type=\"circle\">\u003Ca href=\"#run-a-single-model\">运行单个模型\u003C\u002Fa>\u003C\u002Fli>\n                    \u003Cli type=\"circle\">\u003Ca href=\"#run-multiple-models\">运行多个模型\u003C\u002Fa>\u003C\u002Fli>\n                  \u003C\u002Ful>\n                \u003C\u002Fli>\n              \u003C\u002Ful>\n            \u003C\u002Fli>\n          \u003Cli type=\"circle\">\u003Ca href=\"#adapting-to-market-dynamics\">适应市场动态\u003C\u002Fa>\u003C\u002Fli>\n          \u003Cli type=\"circle\">\u003Ca href=\"#reinforcement-learning-modeling-continuous-decisions\">强化学习：建模连续决策\u003C\u002Fa>\u003C\u002Fli>\n          \u003C\u002Ful>\n        \u003C\u002Fli>\n      \u003C\u002Ftd>\n    \u003C\u002Ftr>\n  \u003C\u002Ftbody>\n\u003C\u002Ftable>\n\n\n\n# 计划\n正在开发的新功能（按预计发布时间排序）。\n您对这些功能的反馈非常重要。\n\u003C!-- | 功能                        | 状态      | -->\n\u003C!-- | --                      | ------    | -->\n\n# Qlib框架\n\n\u003Cdiv style=\"align: center\">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmicrosoft_qlib_readme_7d68450ec834.jpg\" \u002F>\n\u003C\u002Fdiv>\n\nQlib的高层框架如上所示（用户可以在深入了解细节时查看Qlib设计的[详细框架](https:\u002F\u002Fqlib.readthedocs.io\u002Fen\u002Flatest\u002Fintroduction\u002Fintroduction.html#framework)）。各个组件被设计为松耦合的模块，每个组件都可以独立使用。\nQlib提供强大的基础设施来支持量化研究。[数据](https:\u002F\u002Fqlib.readthedocs.io\u002Fen\u002Flatest\u002Fcomponent\u002Fdata.html)始终是重要的一部分。一个强大的学习框架旨在支持多种学习范式（例如[强化学习](https:\u002F\u002Fqlib.readthedocs.io\u002Fen\u002Flatest\u002Fcomponent\u002Frl.html)、[监督学习](https:\u002F\u002Fqlib.readthedocs.io\u002Fen\u002Flatest\u002Fcomponent\u002Fworkflow.html#model-section)）以及不同层次的模式（例如[市场动态建模](https:\u002F\u002Fqlib.readthedocs.io\u002Fen\u002Flatest\u002Fcomponent\u002Fmeta.html)）。通过建模市场，[交易策略](https:\u002F\u002Fqlib.readthedocs.io\u002Fen\u002Flatest\u002Fcomponent\u002Fstrategy.html)将生成可执行的交易决策。不同层次或粒度的多个交易策略和执行器可以被[嵌套以优化并协同运行](https:\u002F\u002Fqlib.readthedocs.io\u002Fen\u002Flatest\u002Fcomponent\u002Fhighfreq.html)。最后，将提供全面的[分析](https:\u002F\u002Fqlib.readthedocs.io\u002Fen\u002Flatest\u002Fcomponent\u002Freport.html)，并且该模型可以以低成本的方式被[在线部署](https:\u002F\u002Fqlib.readthedocs.io\u002Fen\u002Flatest\u002Fcomponent\u002Fonline.html)。\n\n# 快速入门\n\n本快速入门指南旨在展示：\n1. 使用_Qlib_构建完整的量化研究流程并尝试您的想法非常容易。\n2. 即使使用*公开数据*和*简单模型*，机器学习技术在实际量化投资中也**表现得非常好**。\n这里有一个快速的**[演示](https:\u002F\u002Fterminalizer.com\u002Fview\u002F3f24561a4470)**，展示了如何安装``Qlib``，并使用``qrun``运行LightGBM。**但是**，请确保您已按照[数据准备](#data-preparation)的说明准备好数据。\n\n\n## 安装\n\n下表展示了`Qlib`支持的Python版本：\n|               | 使用pip安装      | 从源码安装  |        绘图        |\n| ------------- |:---------------------:|:--------------------:|:------------------:|\n| Python 3.8    | :heavy_check_mark:    | :heavy_check_mark:   | :heavy_check_mark: |\n| Python 3.9    | :heavy_check_mark:    | :heavy_check_mark:   | :heavy_check_mark: |\n| Python 3.10   | :heavy_check_mark:    | :heavy_check_mark:   | :heavy_check_mark: |\n| Python 3.11   | :heavy_check_mark:    | :heavy_check_mark:   | :heavy_check_mark: |\n| Python 3.12   | :heavy_check_mark:    | :heavy_check_mark:   | :heavy_check_mark: |\n\n**注意**：\n1. 建议使用**Conda**来管理您的Python环境。在某些情况下，如果在`conda`环境之外使用Python，可能会导致缺少头文件，从而导致某些软件包无法成功安装。\n2. 请注意，在Python 3.6中安装Cython时，从源码安装`Qlib`可能会出现一些错误。如果用户在其设备上使用Python 3.6，建议将Python升级到3.8或更高版本，或者使用`conda`提供的Python从源码安装`Qlib`。\n\n### 使用pip安装\n用户可以通过以下命令轻松地使用pip安装`Qlib`。\n\n```bash\n  pip install pyqlib\n```\n\n**注意**：pip会安装最新稳定的qlib版本。然而，qlib的主分支仍在积极开发中。如果您想测试主分支中的最新脚本或功能，请使用下面的方法安装qlib。\n\n### 从源码安装\n此外，用户还可以按照以下步骤通过源代码安装最新开发版本的 ``Qlib``：\n\n* 在从源码安装 ``Qlib`` 之前，用户需要先安装一些依赖项：\n\n  ```bash\n  pip install numpy\n  pip install --upgrade cython\n  ```\n\n* 克隆仓库并按如下方式安装 ``Qlib``：\n    ```bash\n    git clone https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib.git && cd qlib\n    pip install .  # 开发时建议使用 `pip install -e .[dev]`。详细信息请参阅 docs\u002Fdeveloper\u002Fcode_standard_and_dev_guide.rst\n    ```\n\n**提示**：如果您在本地环境中无法成功安装 ``Qlib`` 或运行示例，可以将您的操作步骤与 [CI 工作流](.github\u002Fworkflows\u002Ftest_qlib_from_source.yml) 进行对比，这有助于您找到问题所在。\n\n**Mac 用户提示**：如果您使用的是搭载 M1 芯片的 Mac，可能会在构建 LightGBM 的 wheel 包时遇到问题，这是因为缺少 OpenMP 的依赖。要解决这个问题，请先使用 ``brew install libomp`` 安装 OpenMP，然后再运行 ``pip install .`` 即可成功构建。\n\n## 数据准备\n❗ 由于更严格的数据安全政策，官方数据集暂时被禁用。您可以尝试社区贡献的 [此数据源](https:\u002F\u002Fgithub.com\u002Fchenditc\u002Finvestment_data\u002Freleases)，这里提供一个下载最新数据的示例。\n```bash\nwget https:\u002F\u002Fgithub.com\u002Fchenditc\u002Finvestment_data\u002Freleases\u002Flatest\u002Fdownload\u002Fqlib_bin.tar.gz\nmkdir -p ~\u002F.qlib\u002Fqlib_data\u002Fcn_data\ntar -zxvf qlib_bin.tar.gz -C ~\u002F.qlib\u002Fqlib_data\u002Fcn_data --strip-components=1\nrm -f qlib_bin.tar.gz\n```\n\n下方的官方数据集将在不久的将来恢复使用。\n\n\n----\n\n通过运行以下代码加载并准备数据：\n\n### 使用模块获取\n  ```bash\n  # 获取日频数据\n  python -m qlib.cli.data qlib_data --target_dir ~\u002F.qlib\u002Fqlib_data\u002Fcn_data --region cn\n\n  # 获取1分钟频数据\n  python -m qlib.cli.data qlib_data --target_dir ~\u002F.qlib\u002Fqlib_data\u002Fcn_data_1min --region cn --interval 1min\n\n  ```\n\n### 从源码获取\n  ```bash\n  # 获取日频数据\n  python scripts\u002Fget_data.py qlib_data --target_dir ~\u002F.qlib\u002Fqlib_data\u002Fcn_data --region cn\n\n  # 获取1分钟频数据\n  python scripts\u002Fget_data.py qlib_data --target_dir ~\u002F.qlib\u002Fqlib_data\u002Fcn_data_1min --region cn --interval 1min\n\n  ```\n\n该数据集是由公开数据通过 [爬虫脚本](scripts\u002Fdata_collector\u002F) 收集生成的，这些脚本已发布在同一仓库中。用户也可以使用这些脚本创建相同的数据集。[数据集说明](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Ftree\u002Fmain\u002Fscripts\u002Fdata_collector#description-of-dataset)\n\n*请注意，这些数据是从 [Yahoo Finance](https:\u002F\u002Ffinance.yahoo.com\u002Flookup) 收集的，因此可能并不完美。如果用户拥有高质量的数据集，我们建议自行准备数据。更多信息请参阅 [相关文档](https:\u002F\u002Fqlib.readthedocs.io\u002Fen\u002Flatest\u002Fcomponent\u002Fdata.html#converting-csv-format-into-qlib-format)*。\n\n### 日频数据的自动更新（来自 Yahoo Finance）\n  > 如果用户只想在历史数据上测试模型和策略，则此步骤为 *可选*。\n  > \n  > 建议用户先手动更新一次数据（例如指定交易日期为 2021-05-25），然后再设置为自动更新。\n  > \n  > **注意**：用户无法基于 Qlib 提供的离线数据进行增量更新（为减小数据量已移除部分字段）。应使用 [Yahoo 数据采集器](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Ftree\u002Fmain\u002Fscripts\u002Fdata_collector\u002Fyahoo#automatic-update-of-daily-frequency-datafrom-yahoo-finance) 从头开始下载 Yahoo 数据，然后进行增量更新。\n  > \n  > 更多信息请参阅：[Yahoo 数据采集器](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Ftree\u002Fmain\u002Fscripts\u002Fdata_collector\u002Fyahoo#automatic-update-of-daily-frequency-datafrom-yahoo-finance)\n\n  * 每个交易日自动更新数据至 ``qlib`` 目录（Linux）\n      * 使用 *crontab*：`crontab -e`\n      * 设置定时任务：\n\n        ```\n        * * * * 1-5 python \u003C脚本路径> update_data_to_bin --qlib_data_1d_dir \u003C用户数据目录>\n        ```\n        * **脚本路径**：*scripts\u002Fdata_collector\u002Fyahoo\u002Fcollector.py*\n\n  * 手动更新数据\n      ```\n      python scripts\u002Fdata_collector\u002Fyahoo\u002Fcollector.py update_data_to_bin --qlib_data_1d_dir \u003C用户数据目录> --trading_date \u003C开始日期> --end_date \u003C结束日期>\n      ```\n      * *trading_date*：交易日的开始时间\n      * *end_date*：交易日的结束时间（不包括）\n\n### 数据健康状况检查\n  * 我们提供了一个脚本用于检查数据的健康状况，您可以运行以下命令来查看数据是否正常：\n    ```\n    python scripts\u002Fcheck_data_health.py check_data --qlib_dir ~\u002F.qlib\u002Fqlib_data\u002Fcn_data\n    ```\n  * 当然，您也可以添加一些参数来调整测试结果，例如：\n    ```\n    python scripts\u002Fcheck_data_health.py check_data --qlib_dir ~\u002F.qlib\u002Fqlib_data\u002Fcn_data --missing_data_num 30055 --large_step_threshold_volume 94485 --large_step_threshold_price 20\n    ```\n  * 如果您想了解更多关于 `check_data_health` 的信息，请参阅 [文档](https:\u002F\u002Fqlib.readthedocs.io\u002Fen\u002Flatest\u002Fcomponent\u002Fdata.html#checking-the-health-of-the-data)。\n\n\u003C!--\n- 运行初始化代码并获取股票数据：\n\n  ```python\n  import qlib\n  from qlib.data import D\n  from qlib.constant import REG_CN\n\n  # 初始化\n  mount_path = \"~\u002F.qlib\u002Fqlib_data\u002Fcn_data\"  # 目标目录\n  qlib.init(mount_path=mount_path, region=REG_CN)\n\n  # 使用 Qlib 获取股票数据\n  # 加载给定时间范围和频率的交易日历\n  print(D.calendar(start_time='2010-01-01', end_time='2017-12-31', freq='day')[:2])\n\n  # 将给定市场名称解析为股票池配置\n  instruments = D.instruments('csi500')\n  print(D.list_instruments(instruments=instruments, start_time='2010-01-01', end_time='2017-12-31', as_list=True)[:6])\n\n  # 加载特定证券在给定时间范围内的特征\n  instruments = ['SH600000']\n  fields = ['$close', '$volume', 'Ref($close, 1)', 'Mean($close, 3)', '$high-$low']\n  print(D.features(instruments, fields, start_time='2010-01-01', end_time='2017-12-31', freq='day').head())\n  ```\n -->\n\n## Docker 镜像\n1. 从 Docker Hub 仓库拉取 Docker 镜像\n    ```bash\n    docker pull pyqlib\u002Fqlib_image_stable:stable\n    ```\n2. 启动一个新的 Docker 容器\n    ```bash\n    docker run -it --name \u003C容器名称> -v \u003C挂载的本地目录>:\u002Fapp pyqlib\u002Fqlib_image_stable:stable\n    ```\n3. 此时您已进入 Docker 环境，可以运行 Qlib 脚本。示例如下：\n    ```bash\n    >>> python scripts\u002Fget_data.py qlib_data --name qlib_data_simple --target_dir ~\u002F.qlib\u002Fqlib_data\u002Fcn_data --interval 1d --region cn\n    >>> python qlib\u002Fcli\u002Frun.py examples\u002Fbenchmarks\u002FLightGBM\u002Fworkflow_config_lightgbm_Alpha158.yaml\n    ```\n4. 退出容器\n    ```bash\n    >>> exit\n    ```\n5. 重启容器\n    ```bash\n    docker start -i -a \u003C容器名称>\n    ```\n6. 停止容器\n    ```bash\n    docker stop \u003C容器名称>\n    ```\n7. 删除容器\n    ```bash\n    docker rm \u003C容器名称>\n    ```\n8. 如果您想了解更多信息，请参阅[文档](https:\u002F\u002Fqlib.readthedocs.io\u002Fen\u002Flatest\u002Fdeveloper\u002Fhow_to_build_image.html)。\n\n## 自动量化研究工作流\nQlib 提供了一个名为 `qrun` 的工具，用于自动运行整个工作流（包括构建数据集、训练模型、回测和评估）。您可以按照以下步骤启动自动量化研究工作流，并进行图形化报告分析：\n\n1. 量化研究工作流：使用 LightGBM 工作流配置文件（例如 [workflow_config_lightgbm_Alpha158.yaml](examples\u002Fbenchmarks\u002FLightGBM\u002Fworkflow_config_lightgbm_Alpha158.yaml)）运行 `qrun`。\n    ```bash\n      cd examples  # 避免在包含 `qlib` 的目录下运行程序\n      qrun benchmarks\u002FLightGBM\u002Fworkflow_config_lightgbm_Alpha158.yaml\n    ```\n    如果用户希望以调试模式使用 `qrun`，请使用以下命令：\n    ```bash\n    python -m pdb qlib\u002Fcli\u002Frun.py examples\u002Fbenchmarks\u002FLightGBM\u002Fworkflow_config_lightgbm_Alpha158.yaml\n    ```\n    `qrun` 的结果如下，请参阅[文档](https:\u002F\u002Fqlib.readthedocs.io\u002Fen\u002Flatest\u002Fcomponent\u002Fstrategy.html#result)以获取更多关于结果的解释。\n\n    ```bash\n\n    '以下是不含成本的超额收益分析结果。'\n                           风险\n    平均值               0.000708\n    标准差                0.005626\n    年化收益率          0.178316\n    信息比率            1.996555\n    最大回撤           -0.081806\n    '以下是含成本的超额收益分析结果。'\n                           风险\n    平均值               0.000512\n    标准差                0.005626\n    年化收益率          0.128982\n    信息比率            1.444287\n    最大回撤           -0.091078\n    ```\n    以下是关于 `qrun` 和[工作流](https:\u002F\u002Fqlib.readthedocs.io\u002Fen\u002Flatest\u002Fcomponent\u002Fworkflow.html)的详细文档。\n\n2. 图形化报告分析：首先运行 `python -m pip install .[analysis]` 来安装所需的依赖项。然后使用 `jupyter notebook` 运行 `examples\u002Fworkflow_by_code.ipynb` 以获取图形化报告。\n    - 预测信号（模型预测）分析\n      - 组别累计收益\n      ![累计收益](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmicrosoft_qlib_readme_7d9218e470cd.png)\n      - 收益分布\n      ![多空](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmicrosoft_qlib_readme_97ad7ee17420.png)\n      - 信息系数（IC）\n      ![信息系数](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmicrosoft_qlib_readme_0dabf3272bac.png)\n      ![月度 IC](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmicrosoft_qlib_readme_1ad41ac3808c.png)\n      ![IC](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmicrosoft_qlib_readme_ba4027a5f800.png)\n      - 预测信号（模型预测）的自相关性\n      ![自相关性](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmicrosoft_qlib_readme_7f06bbc976b8.png)\n\n    - 投资组合分析\n      - 回测收益\n      ![报告](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmicrosoft_qlib_readme_a8077a150bd1.png)\n      \u003C!-- \n      - 分数 IC\n      ![分数 IC](docs\u002F_static\u002Fimg\u002Fscore_ic.png)\n      - 组合累计收益\n      ![累计收益](docs\u002F_static\u002Fimg\u002Fcumulative_return.png)\n      - 风险分析\n      ![风险分析](docs\u002F_static\u002Fimg\u002Frisk_analysis.png)\n      - 排名标签\n      ![排名标签](docs\u002F_static\u002Fimg\u002Frank_label.png)\n      -->\n   - 上述结果的[解释](https:\u002F\u002Fqlib.readthedocs.io\u002Fen\u002Flatest\u002Fcomponent\u002Freport.html)\n\n## 通过代码构建自定义量化研究工作流\n自动化工作流可能并不适合所有量化研究人员的研究流程。为了支持灵活的量化研究工作流，Qlib 还提供了一个模块化的接口，允许研究人员通过代码构建自己的工作流。[这里](examples\u002Fworkflow_by_code.ipynb)是一个通过代码构建自定义量化研究工作流的示例。\n\n# 量化研究中的主要挑战与解决方案\n量化投资是一个非常独特的场景，存在许多需要解决的关键挑战。\n目前，Qlib 已经为其中一些挑战提供了相应的解决方案。\n\n## 预测：寻找有价值的信号\u002F模式\n准确预测股票价格趋势是构建盈利投资组合的重要环节。\n然而，金融市场中存在大量格式各异的数据，这使得构建预测模型变得极具挑战性。\n\n越来越多的 SOTA 量化研究工作\u002F论文专注于在复杂金融数据中挖掘有价值的信号\u002F模式，这些研究成果已在 `Qlib` 中发布。\n\n### [量化模型（论文）动物园](examples\u002Fbenchmarks)\n\n以下是基于 `Qlib` 构建的模型列表。\n- [基于 XGBoost 的 GBDT（陈天奇等，KDD 2016）](examples\u002Fbenchmarks\u002FXGBoost\u002F)\n- [基于 LightGBM 的 GBDT（Ke Guolin 等，NIPS 2017）](examples\u002Fbenchmarks\u002FLightGBM\u002F)\n- [基于 Catboost 的 GBDT（Prokhorenkova Liudmila 等，NIPS 2018）](examples\u002Fbenchmarks\u002FCatBoost\u002F)\n- [基于 PyTorch 的 MLP](examples\u002Fbenchmarks\u002FMLP\u002F)\n- [基于 PyTorch 的 LSTM（Hochreiter Sepp 等，Neural Computation 1997）](examples\u002Fbenchmarks\u002FLSTM\u002F)\n- [基于 PyTorch 的 GRU（Cho Kyunghyun 等，2014）](examples\u002Fbenchmarks\u002FGRU\u002F)\n- [基于 PyTorch 的 ALSTM（Qin Yao 等，IJCAI 2017）](examples\u002Fbenchmarks\u002FALSTM)\n- [基于 PyTorch 的 GATs（Velickovic Petar 等，2017）](examples\u002Fbenchmarks\u002FGATs\u002F)\n- [基于 PyTorch 的 SFM（Zhang Liheng 等，KDD 2017）](examples\u002Fbenchmarks\u002FSFM\u002F)\n- [基于 TensorFlow 的 TFT（Lim Bryan 等，International Journal of Forecasting 2019）](examples\u002Fbenchmarks\u002FTFT\u002F)\n- [基于 PyTorch 的 TabNet（Arik Sercan O. 等，AAAI 2019）](examples\u002Fbenchmarks\u002FTabNet\u002F)\n- [基于 LightGBM 的 DoubleEnsemble（Zhang Chuheng 等，ICDM 2020）](examples\u002Fbenchmarks\u002FDoubleEnsemble\u002F)\n- [基于 PyTorch 的 TCTS（Wu Xueqing 等，ICML 2021）](examples\u002Fbenchmarks\u002FTCTS\u002F)\n- [基于 PyTorch 的 Transformer（Vaswani Ashish 等，NeurIPS 2017）](examples\u002Fbenchmarks\u002FTransformer\u002F)\n- [基于 PyTorch 的 Localformer（Jiang Juyong 等）](examples\u002Fbenchmarks\u002FLocalformer\u002F)\n- [基于 PyTorch 的 TRA（Dong Hengxu 等，KDD 2021）](examples\u002Fbenchmarks\u002FTRA\u002F)\n- [基于 PyTorch 的 TCN（Bai Shaojie 等，2018）](examples\u002Fbenchmarks\u002FTCN\u002F)\n- [基于 PyTorch 的 ADARNN（Du YunTao 等，2021）](examples\u002Fbenchmarks\u002FADARNN\u002F)\n- [基于 PyTorch 的 ADD（Tang Hongshun 等，2020）](examples\u002Fbenchmarks\u002FADD\u002F)\n- [基于 PyTorch 的 IGMTF（Xu Wentao 等，2021）](examples\u002Fbenchmarks\u002FIGMTF\u002F)\n- [基于 PyTorch 的 HIST（Xu Wentao 等，2021）](examples\u002Fbenchmarks\u002FHIST\u002F)\n- [基于 PyTorch 的 KRNN](examples\u002Fbenchmarks\u002FKRNN\u002F)\n- [基于 PyTorch 的 Sandwich](examples\u002Fbenchmarks\u002FSandwich\u002F)\n\n我们非常欢迎您提交新的量化模型的 PR。\n\n每个模型在 `Alpha158` 和 `Alpha360` 数据集上的表现可以在这里找到：[benchmarks](examples\u002Fbenchmarks\u002FREADME.md)。\n\n### 运行单个模型\n以上列出的所有模型都可以使用 ``Qlib`` 运行。用户可以通过 [benchmarks](examples\u002Fbenchmarks) 文件夹找到我们提供的配置文件以及关于模型的一些详细信息。更多相关信息可以在上述模型文件中获取。\n\n`Qlib` 提供了三种不同的方式来运行单个模型，用户可以根据自己的情况选择最合适的方式：\n- 用户可以使用上面提到的工具 `qrun`，根据配置文件运行某个模型的工作流。\n- 用户可以基于 `examples` 文件夹中的示例脚本 [`workflow_by_code.py`](examples\u002Fworkflow_by_code.py)，编写自己的 `workflow_by_code` Python 脚本。\n- 用户也可以使用 `examples` 文件夹中的脚本 [`run_all_model.py`](examples\u002Frun_all_model.py) 来运行模型。例如，具体的 Shell 命令如下：`python run_all_model.py run --models=lightgbm`，其中 `--models` 参数可以接受上述任何一种模型（可用模型可在 [benchmarks](examples\u002Fbenchmarks\u002F) 中查看）。更多用法请参考该文件的 [docstrings](examples\u002Frun_all_model.py)。\n    - **注意**：每个基准测试都有不同的环境依赖，请确保您的 Python 版本符合要求（例如，由于 `tensorflow==1.15.0` 的限制，TFT 只支持 Python 3.6~3.7）。\n\n### 运行多个模型\n`Qlib` 还提供了一个脚本 [`run_all_model.py`](examples\u002Frun_all_model.py)，可以运行多个模型并进行多次迭代。（**注意**：目前该脚本仅支持 *Linux* 系统，未来会支持其他操作系统。此外，它也不支持同时并行运行同一个模型多次，这一点将在未来的开发中得到解决。）\n\n该脚本会为每个模型创建一个独立的虚拟环境，并在训练结束后删除这些环境。因此，最终只会生成并保存实验结果，如 `IC` 和回测结果。\n\n以下是一个运行所有模型10次的示例：\n```python\npython run_all_model.py run 10\n```\n\n它还提供了 API 来一次性运行特定的模型。更多用法请参考该文件的 [docstrings](examples\u002Frun_all_model.py)。\n\n### 变更说明\n在 `pandas` 中，`group_key` 是 `groupby` 方法的一个参数。从 `pandas` 1.5 版本到 2.0 版本，`group_key` 的默认值已由“无默认值”改为 `True`，这会导致 `qlib` 在运行时报错。因此，我们将 `group_key` 设置为 `False`，但这并不能保证某些程序能够正确运行，其中包括：\n* qlib\\examples\\rl_order_execution\\scripts\\gen_training_orders.py\n* qlib\\examples\\benchmarks\\TRA\\src\\dataset.MTSDatasetH.py\n* qlib\\examples\\benchmarks\\TFT\\tft.py\n\n\n\n## [适应市场动态](examples\u002Fbenchmarks_dynamic)\n\n由于金融市场环境的非平稳性，数据分布可能会在不同时期发生变化，这会导致基于训练数据构建的模型在未来测试数据上的表现下降。\n因此，使预测模型\u002F策略适应市场动态对于其性能至关重要。\n\n以下是基于 `Qlib` 构建的解决方案列表。\n- [滚动再训练](examples\u002Fbenchmarks_dynamic\u002Fbaseline\u002F)\n- [基于 PyTorch 的 DDG-DA（Wendi 等，AAAI 2022）](examples\u002Fbenchmarks_dynamic\u002FDDG-DA\u002F)\n\n## 强化学习：建模连续决策\nQlib 现在支持强化学习，这一功能旨在对连续的投资决策进行建模。该功能通过让智能体与环境交互并学习如何最大化某种累积奖励，从而帮助投资者优化其交易策略。\n\n以下是基于 `Qlib` 构建的按场景分类的解决方案列表。\n\n### [用于订单执行的强化学习](examples\u002Frl_order_execution)\n[这里](https:\u002F\u002Fqlib.readthedocs.io\u002Fen\u002Flatest\u002Fcomponent\u002Frl\u002Foverall.html#order-execution)是对此场景的介绍。以下所有方法都在 [这里](examples\u002Frl_order_execution)进行了比较。\n- [TWAP](examples\u002Frl_order_execution\u002Fexp_configs\u002Fbacktest_twap.yml)\n- [PPO：“基于近端策略优化的端到端最优交易执行框架”，IJCAL 2020](examples\u002Frl_order_execution\u002Fexp_configs\u002Fbacktest_ppo.yml)\n- [OPDS：“基于 Oracle 策略蒸馏的通用订单执行交易系统”，AAAI 2021](examples\u002Frl_order_execution\u002Fexp_configs\u002Fbacktest_opds.yml)\n\n# 量化数据集动物园\n数据集在量化投资中扮演着非常重要的角色。以下是基于 `Qlib` 构建的数据集列表：\n\n| 数据集                                    | 美国市场 | 中国市场 |\n| --                                         | --        | --           |\n| [Alpha360](.\u002Fqlib\u002Fcontrib\u002Fdata\u002Fhandler.py) |  √        |  √           |\n| [Alpha158](.\u002Fqlib\u002Fcontrib\u002Fdata\u002Fhandler.py) |  √        |  √           |\n\n[这里](https:\u002F\u002Fqlib.readthedocs.io\u002Fen\u002Flatest\u002Fadvanced\u002Falpha.html) 是使用 `Qlib` 构建数据集的教程。我们非常欢迎你提交 PR 来构建新的量化数据集。\n\n\n# 学习框架\nQlib 具有高度的可定制性，其许多组件都可以进行学习。这些可学习的组件是 `预测模型` 和 `交易代理` 的实例。它们基于 `学习框架` 层进行训练，然后应用于 `工作流` 层中的多种场景。学习框架同样会利用 `工作流` 层（例如共享 `信息提取器`、基于 `执行环境` 创建环境）。\n\n根据学习范式，这些组件可以分为强化学习和监督学习两类：\n- 对于监督学习，详细文档可以参见 [这里](https:\u002F\u002Fqlib.readthedocs.io\u002Fen\u002Flatest\u002Fcomponent\u002Fmodel.html)。\n- 对于强化学习，详细文档可以参见 [这里](https:\u002F\u002Fqlib.readthedocs.io\u002Fen\u002Flatest\u002Fcomponent\u002Frl.html)。Qlib 的强化学习框架利用 `工作流` 层中的 `执行环境` 来创建环境。值得注意的是，它还支持 `NestedExecutor`，这使得用户能够同时优化不同层级的策略\u002F模型\u002F代理（例如为特定的投资组合管理策略优化订单执行策略）。\n\n\n# 关于 Qlib 的更多信息\n如果你想快速了解 Qlib 中最常用的组件，可以尝试查看 [这里](examples\u002Ftutorial\u002F) 的笔记本示例。\n\n详细的文档组织在 [docs](docs\u002F) 目录中。要以 HTML 格式构建文档，需要使用 `Sphinx` 和 readthedocs 主题。命令如下：\n```bash\ncd docs\u002F\nconda install sphinx sphinx_rtd_theme -y\n# 或者也可以用 pip 安装\n# pip install sphinx sphinx_rtd_theme\nmake html\n```\n你也可以直接在线查看 [最新文档](http:\u002F\u002Fqlib.readthedocs.io\u002F)。\n\nQlib 处于积极且持续的开发中。我们的计划记录在路线图中，该路线图作为 [github 项目](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fprojects\u002F1) 进行管理。\n\n\n# 离线模式与在线模式\nQlib 的数据服务器既可以部署为 `离线` 模式，也可以部署为 `在线` 模式。默认模式为离线模式。\n\n在 `离线` 模式下，数据将部署在本地。\n\n而在 `在线` 模式下，数据将以共享数据服务的形式部署。数据及其缓存将由所有客户端共享。由于缓存命中率更高，数据检索性能有望提升，同时也会减少磁盘空间的占用。在线模式的相关文档可以在 [Qlib-Server](https:\u002F\u002Fqlib-server.readthedocs.io\u002F) 中找到。在线模式可以通过 [Azure CLI 脚本](https:\u002F\u002Fqlib-server.readthedocs.io\u002Fen\u002Flatest\u002Fbuild.html#one-click-deployment-in-azure) 自动部署。在线数据服务器的源代码可以在 [Qlib-Server 仓库](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib-server) 中找到。\n\n## Qlib 数据服务器的性能\n数据处理性能对于 AI 技术等数据驱动的方法至关重要。作为面向 AI 的平台，Qlib 提供了数据存储和数据处理的解决方案。为了展示 Qlib 数据服务器的性能，我们将其与其他几种数据存储方案进行了比较。\n\n我们通过完成同一项任务来评估几种存储方案的性能：从一个股票市场的基础 OHLCV 日度数据（2007 年至 2020 年间每天 800 只股票）中创建一个包含 14 个特征\u002F因子的数据集。该任务涉及数据查询和处理。\n\n|                         | HDF5      | MySQL     | MongoDB   | InfluxDB  | Qlib -E -D  | Qlib +E -D   | Qlib +E +D  |\n| --                      | ------    | ------    | --------  | --------- | ----------- | ------------ | ----------- |\n| 总耗时（1 CPU）（秒）  | 184.4±3.7 | 365.3±7.5 | 253.6±6.7 | 368.2±3.6 | 147.0±8.8   | 47.6±1.0     | **7.4±0.3** |\n| 总耗时（64 CPU）（秒） |           |           |           |           | 8.8±0.6     | **4.2±0.2**  |             |\n* `+(-)E` 表示是否启用（禁用）`表达式缓存`\n* `+(-)D` 表示是否启用（禁用）`数据集缓存`\n\n大多数通用数据库加载数据所需的时间过长。深入研究其底层实现后发现，在通用数据库解决方案中，数据需要经过过多的接口层以及不必要的格式转换，这些开销大大降低了数据加载的速度。而 Qlib 的数据以紧凑的格式存储，便于组合成数组用于科学计算。\n\n# 相关报道\n- [Qlib 使用指南：微软的 AI 投资平台](https:\u002F\u002Fanalyticsindiamag.com\u002Fqlib\u002F)\n- [微软也搞AI量化平台？还是开源的！](https:\u002F\u002Fmp.weixin.qq.com\u002Fs\u002F47bP5YwxfTp2uTHjUBzJQQ)\n- [微矿Qlib：业内首个AI量化投资开源平台](https:\u002F\u002Fmp.weixin.qq.com\u002Fs\u002FvsJv7lsgjEi-ALYUz4CvtQ)\n\n# 联系我们\n- 如果你有任何问题，请在此处创建 issue [here](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fissues\u002Fnew\u002Fchoose) 或在 [gitter](https:\u002F\u002Fgitter.im\u002FMicrosoft\u002Fqlib) 上留言。\n- 如果你想为 `Qlib` 做贡献，请 [创建 pull requests](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fcompare)。\n- 如有其他原因，欢迎通过电子邮件 ([qlib@microsoft.com](mailto:qlib@microsoft.com)) 联系我们。\n  - 我们正在招聘新成员（全职员工和实习生），欢迎提交简历！\n\n加入即时通讯讨论群：\n|[Gitter](https:\u002F\u002Fgitter.im\u002FMicrosoft\u002Fqlib)|\n|----|\n|![image](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmicrosoft_qlib_readme_19f9d080f79a.png)|\n\n# 贡献\n我们感谢所有贡献者，并对他们的付出表示由衷的敬意！\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fgraphs\u002Fcontributors\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmicrosoft_qlib_readme_cf939e828b10.png\" \u002F>\u003C\u002Fa>\n\n在 2020 年 9 月我们将 Qlib 作为开源项目发布到 Github 之前，Qlib 曾是我们团队内部的一个项目。遗憾的是，内部的提交历史并未保留。我们团队中的许多成员也为 Qlib 做出了重要贡献，包括王瑞华、张银达、于海苏、王淑宇、庞博晨以及 [Dong Zhou](https:\u002F\u002Fgithub.com\u002Fevanzd\u002Fevanzd)。特别感谢 [Dong Zhou](https:\u002F\u002Fgithub.com\u002Fevanzd\u002Fevanzd)，正是他开发了 Qlib 的初始版本。\n\n## 指导\n\n本项目欢迎各位的贡献和建议。  \n**以下是提交拉取请求时的一些**\n[代码规范与开发指南](docs\u002Fdeveloper\u002Fcode_standard_and_dev_guide.rst)。\n\n参与贡献并不困难。解决一个问题（也许只是回答一下在[问题列表](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fissues)或[Gitter](https:\u002F\u002Fgitter.im\u002FMicrosoft\u002Fqlib)中提出的问题）、修复或报告一个Bug、改进文档，甚至修正一个拼写错误，都是对Qlib的重要贡献。\n\n例如，如果你想为Qlib的文档或代码做出贡献，可以按照下图中的步骤操作。\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmicrosoft_qlib_readme_15621b9f8950.gif\" \u002F>\n\u003C\u002Fp>\n\n如果你不知道如何开始贡献，可以参考以下示例。\n| 类型 | 示例 |\n| -- | -- |\n| 解决问题 | [回答一个问题](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fissues\u002F749)；[报告](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fissues\u002F765)或[修复](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F792)一个Bug |\n| 文档 | [提升文档质量](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F797\u002Ffiles)；[修正拼写错误](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F774) |\n| 功能 | 实现一个[请求的功能](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fprojects)，比如[这个](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F754)；[重构接口](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F539\u002Ffiles) |\n| 数据集 | [添加一个数据集](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F733) |\n| 模型 | [实现一个新的模型](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fpull\u002F689)，[有关贡献模型的一些说明](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Ftree\u002Fmain\u002Fexamples\u002Fbenchmarks#contributing) |\n\n[适合初学者的问题](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Flabels\u002Fgood%20first%20issue)已被标记，表明它们是开始贡献的好起点。\n\n你可以在Qlib中通过运行 `rg 'TODO|FIXME' qlib` 找到一些不完善的地方。\n\n如果你希望成为Qlib的维护者之一，以便做出更多贡献（例如帮助合并PR、处理问题），请通过电子邮件([qlib@microsoft.com](mailto:qlib@microsoft.com))联系我们。我们很乐意协助你提升权限。\n\n## 许可证\n大多数贡献都需要你同意一份贡献者许可协议（CLA），声明你有权且确实授予我们使用你的贡献的权利。详情请访问 https:\u002F\u002Fcla.opensource.microsoft.com。\n\n当你提交拉取请求时，CLA机器人会自动判断你是否需要提供CLA，并相应地标记PR（例如状态检查、评论）。只需按照机器人提供的指示操作即可。对于所有使用我们CLA的仓库，你只需完成一次即可。\n\n本项目已采用[微软开源行为准则](https:\u002F\u002Fopensource.microsoft.com\u002Fcodeofconduct\u002F)。更多信息请参阅[行为准则常见问题解答](https:\u002F\u002Fopensource.microsoft.com\u002Fcodeofconduct\u002Ffaq\u002F)，或如有其他问题或意见，请联系[opencode@microsoft.com](mailto:opencode@microsoft.com)。","# Qlib 快速上手指南\n\nQlib 是微软开源的 AI 量化投资平台，旨在通过人工智能技术赋能量化研究。它提供了从数据处理、模型训练到回测的全流程机器学习管道，支持监督学习、市场动态建模及强化学习等多种范式。\n\n## 1. 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**：Linux, Windows, 或 macOS\n*   **Python 版本**：3.8, 3.9, 3.10 或 3.11\n*   **依赖管理**：建议使用 `conda` 或 `venv` 创建独立的虚拟环境，以避免依赖冲突。\n\n## 2. 安装步骤\n\n### 步骤一：创建并激活虚拟环境（推荐）\n\n```bash\n# 使用 conda 创建环境\nconda create -n qlib_env python=3.8\nconda activate qlib_env\n\n# 或者使用 venv\npython -m venv qlib_env\nsource qlib_env\u002Fbin\u002Factivate  # Linux\u002FmacOS\n# qlib_env\\Scripts\\activate   # Windows\n```\n\n### 步骤二：安装 Qlib\n\n**方案 A：直接通过 PyPI 安装（推荐）**\n国内用户若连接 PyPI 较慢，可指定清华或阿里镜像源加速安装。\n\n```bash\n# 使用默认源\npip install pyqlib\n\n# 使用清华大学镜像源（国内推荐）\npip install pyqlib -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n\n**方案 B：从源码安装（获取最新特性）**\n如果需要体验尚未发布的功能（如 RD-Agent 集成等），可从 GitHub 克隆源码安装。\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib.git && cd qlib\npip install .\n```\n\n### 步骤三：验证安装\n在 Python 环境中运行以下代码，若无报错则说明安装成功：\n```python\nimport qlib\nfrom qlib.config import REG_CN\nqlib.init()\nprint(\"Qlib version:\", qlib.__version__)\n```\n\n## 3. 基本使用\n\n以下是一个最简化的工作流示例，涵盖数据加载、模型训练（使用 LightGBM）和回测评估。\n\n### 示例：运行一个完整的量化策略\n\n```python\nimport qlib\nfrom qlib.config import REG_CN\nfrom qlib.utils import init_instance_by_config\nfrom qlib.workflow import R\nfrom qlib.workflow.record_temp import SignalRecord, PortAnaRecord\n\n# 1. 初始化 Qlib (使用中国区域配置)\nqlib.init(provider_uri=\"~\u002F.qlib\u002Fqlib_data\u002Fcn_data\", region=REG_CN)\n\n# 2. 定义策略配置 (以 LightGBM 为例)\nstrategy_config = {\n    \"task\": {\n        \"model\": {\n            \"class\": \"LGBModel\",\n            \"module_path\": \"qlib.contrib.model.gbdt\",\n            \"kwargs\": {\n                \"loss\": \"mse\",\n                \"colsample_bytree\": 0.8879,\n                \"learning_rate\": 0.0421,\n                \"subsample\": 0.8789,\n                \"lambda_l1\": 205.6999,\n                \"lambda_l2\": 580.9768,\n                \"max_depth\": 8,\n                \"num_leaves\": 210,\n                \"num_threads\": 20,\n            },\n        },\n        \"dataset\": {\n            \"class\": \"DatasetH\",\n            \"module_path\": \"qlib.data.dataset\",\n            \"kwargs\": {\n                \"handler\": {\n                    \"class\": \"Alpha158\",\n                    \"module_path\": \"qlib.contrib.data.handler\",\n                    \"kwargs\": {\n                        \"start_time\": \"2008-01-01\",\n                        \"end_time\": \"2020-08-01\",\n                        \"fit_start_time\": \"2008-01-01\",\n                        \"fit_end_time\": \"2014-12-31\",\n                        \"instruments\": \"csi300\",\n                    },\n                },\n                \"segments\": {\n                    \"train\": (\"2008-01-01\", \"2014-12-31\"),\n                    \"valid\": (\"2015-01-01\", \"2016-12-31\"),\n                    \"test\": (\"2017-01-01\", \"2020-08-01\"),\n                },\n            },\n        },\n    },\n    \"backtest\": {\n        \"limit_threshold\": 0.095,\n        \"account_init\": 100000000,\n        \"benchmark\": \"SH000300\",\n    }\n}\n\n# 3. 执行工作流\nwith R.start(experiment_name=\"train_backtest\"):\n    # 初始化模型训练器\n    trainer = init_instance_by_config(strategy_config[\"task\"])\n    \n    # 训练模型\n    trainer.run()\n    \n    # 记录预测信号\n    sr = SignalRecord(model=trainer.model, dataset=trainer.dataset, experiment=R.get_exp())\n    sr.generate()\n    \n    # 记录组合分析结果 (回测)\n    par = PortAnaRecord(\n        config=strategy_config[\"backtest\"], \n        signal_strategy=sr.signal_strategy, \n        experiment=R.get_exp()\n    )\n    par.generate()\n\nprint(\"训练与回测完成，请在日志中查看 IC, RankIC, 年化收益等指标。\")\n```\n\n### 说明\n*   **数据准备**：首次运行时，如果本地 `~\u002F.qlib\u002Fqlib_data\u002Fcn_data` 目录下没有数据，Qlib 可能会尝试自动下载或需要您手动运行 `python -m qlib.run.get_data qlib_data --target_dir ~\u002F.qlib\u002Fqlib_data\u002Fcn_data --region cn` 获取历史行情数据。\n*   **配置灵活**：上述 `strategy_config` 字典可以通过 YAML 文件加载，实现代码与配置的分离，这是 Qlib 推荐的工程化实践。","某中型量化私募的研究团队正试图从海量财经研报和行情数据中挖掘新的 Alpha 因子，以优化其现有的股票选股策略。\n\n### 没有 qlib 时\n- **手工流程繁琐**：研究员需手动清洗数据、编写重复的代码来测试不同机器学习模型，从想法到验证往往耗时数周。\n- **实验难以复现**：缺乏统一的实验管理框架，不同成员使用的数据处理逻辑不一致，导致策略回测结果无法横向对比或复现。\n- **因子挖掘效率低**：面对成千上万的潜在因子组合，依靠人工经验试错，难以系统性地发现非线性规律，容易错过最佳投资时机。\n- **生产部署鸿沟**：研究环境的代码与生产交易系统割裂，将验证成功的策略转化为实盘代码需要大量的重构工作，极易引入错误。\n\n### 使用 qlib 后\n- **全流程自动化**：利用 qlib 内置的流水线机制，一键完成数据加载、模型训练（支持监督学习、RL 等）到回测评估，将研发周期缩短至几天。\n- **标准化实验管理**：通过统一的配置模板记录每次实验的参数与结果，确保所有研究在同一基准下进行，轻松实现结果复现与对比。\n- **智能因子挖掘**：结合集成的 RD-Agent，利用大模型自动从研报中提取特征并生成因子，高效探索传统方法难以触及的数据模式。\n- **研产无缝衔接**：qlib 支持从研究直接导出生产级代码，消除了研究与实盘之间的技术壁垒，让策略能快速上线交易。\n\nqlib 通过构建标准化的 AI 量化研发闭环，将团队从重复的工程劳动中解放出来，使其能专注于核心策略创新并加速落地。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmicrosoft_qlib_7f402d19.png","microsoft","Microsoft","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fmicrosoft_4900709c.png","Open source projects and samples from Microsoft",null,"opensource@microsoft.com","OpenAtMicrosoft","https:\u002F\u002Fopensource.microsoft.com","https:\u002F\u002Fgithub.com\u002Fmicrosoft",[85,89,93,96,100,103],{"name":86,"color":87,"percentage":88},"Python","#3572A5",99.1,{"name":90,"color":91,"percentage":92},"Cython","#fedf5b",0.4,{"name":94,"color":95,"percentage":92},"Makefile","#427819",{"name":97,"color":98,"percentage":99},"Shell","#89e051",0,{"name":101,"color":102,"percentage":99},"JavaScript","#f1e05a",{"name":104,"color":105,"percentage":99},"Dockerfile","#384d54",40216,6305,"2026-04-05T11:28:27","MIT","Linux, Windows, macOS","未说明",{"notes":113,"python":114,"dependencies":115},"README 中未详细列出具体的 GPU 型号、显存大小、CUDA 版本及最低内存需求。该工具是一个量化投资平台，支持多种机器学习范式（包括监督学习和强化学习），具体硬件需求可能取决于所选用的模型（如深度学习模型通常需要 GPU）和数据集规模。建议参考官方文档获取更详细的安装和环境配置指南。","3.8+",[116,117,118,119,120,121,122,123],"numpy","pandas","scikit-learn","torch","lightgbm","xgboost","cvxpy","statsmodels",[54,13,51],[126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143],"quantitative-finance","machine-learning","stock-data","platform","finance","algorithmic-trading","python","investment","quant","quantitative-trading","quant-dataset","quant-models","auto-quant","fintech","research-paper","paper","research","deep-learning",17,"2026-03-27T02:49:30.150509","2026-04-06T05:15:48.146909",[148,153,158,163,168,173],{"id":149,"question_zh":150,"answer_zh":151,"source_url":152},10111,"运行 get_data.py 脚本下载数据时出现 'Public access is not permitted' (409 错误) 怎么办？","该问题通常由旧版本引起。维护者已提交 PR #1577 修复了此问题。解决方案是升级到 Qlib 的最新版本。升级后，再次运行命令 `python get_data.py qlib_data --target_dir ~\u002F.qlib\u002Fqlib_data\u002Fcn_data --interval 1d --region cn` 即可正常下载数据。","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fissues\u002F1547",{"id":154,"question_zh":155,"answer_zh":156,"source_url":157},10112,"运行时遇到 'ModuleNotFoundError: No module named qlib.config' 或 'TypeError: unexpected keyword argument exists_skip' 错误如何解决？","这通常是因为安装的 Qlib 版本过旧或与代码示例不匹配。请确保使用最新版本的 Qlib。如果是通过源码安装，请尝试重新安装：`pip uninstall qlib` 然后 `python setup.py install`（或使用 `pip install -e .`）。此外，确保在正确的环境中运行脚本，有时直接在 IDE 中运行脚本也能解决路径导入问题。","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fissues\u002F96",{"id":159,"question_zh":160,"answer_zh":161,"source_url":162},10113,"使用自定义数据集时，如何生成 csi300.txt 等 instrument 文件？","instrument 文件（如 csi300.txt）定义了成分股列表，不会自动从原始数据生成。如果您使用自己的数据，需要手动创建该文件。方法是参考官方数据目录（`~\u002F.qlib\u002Fqlib_data\u002Fcn_data\u002Finstruments`）下的文件格式，创建一个包含您数据集中股票代码的文本文件。如果报错提示文件不存在，请检查配置文件中的 `instruments` 路径是否指向了您自定义生成的文件位置，并确保文件名与配置一致。","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fissues\u002F651",{"id":164,"question_zh":165,"answer_zh":166,"source_url":167},10114,"使用少量自定义股票数据运行 LightGBM 模型时报错 'Can only swap levels on a hierarchical axis' 是什么原因？","该错误通常不是因为数据本身的问题，而是因为测试用的股票数量太少（例如只有 1-2 只），导致模型无法捕捉到有效的市场模式或在进行某些层级操作时失败。建议不要仅用单只或极少数股票进行测试。请使用完整的演示数据集（demo data）或包含足够多股票的数据集来验证工作流是否正常。如果必须使用小数据集，请检查数据索引层级设置是否正确。","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fissues\u002F446",{"id":169,"question_zh":170,"answer_zh":171,"source_url":172},10115,"如果使用美股数据，配置文件中的 benchmark 参数应该怎么填？","当使用美股数据时，benchmark 参数通常需要设置为对应的美股指数代码。根据社区讨论，可以尝试设置为 `NASDAQ` 或其他相应的美股市场指数代码（具体取决于您的数据源支持的指数名称）。请在配置文件的 `benchmark` 字段填入该代码，例如 `benchmark: NASDAQ`。","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fissues\u002F720",{"id":174,"question_zh":175,"answer_zh":176,"source_url":177},10116,"Qlib 是否支持低频数据（如周频、月频）？如何使用非日频数据进行训练和回测？","Qlib 并没有硬编码数据频率，理论上支持低频数据。使用方法是将您的低频数据（如只取偶数交易日或按月聚合的数据）通过 `dump_bin.py` 转换为 Qlib 格式。关键在于确保时间索引的正确性。如果在训练过程中报错，建议检查数据转储（dump）过程中的日历对齐问题。对于更复杂的低频数据处理细节，可以参考官方 Gitter 频道中的相关讨论或确保输入数据的日期索引符合 Qlib 的 Calendar 机制。","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fqlib\u002Fissues\u002F526",[179,184,189,194,199,204,209,214,219,224,229,234,239,244,249,254,259,264,269,274],{"id":180,"version":181,"summary_zh":182,"released_at":183},107363,"v0.9.7","## Changes\r\n\r\n## 🌟 Features\r\n\r\n- feat: data improve, support parquet @you-n-g (#1966)\r\n- feat: use pydantic-settings for MLflow config and update dependencies @you-n-g (#1962)\r\n- refactor: introduce BaseDataHandler and unify fetch interface @you-n-g (#1958)\r\n- Implement geometric accumulation mode for risk_analysis function @SunsetWolf (#1938)\r\n- Add util function to help automatically get horizon @chenditc (#1509)\r\n- [feat] fix a bug and adapt general_nn for use with rdagent_qlib @WinstonLiyt (#1928)\r\n- DRAFT add Data Health Checker  @benheckmann (#1574)\r\n\r\n## 🐛 Bug Fixes\r\n\r\n- fix: upgrade the method of installing LightGBM on MacOS @SunsetWolf (#1980)\r\n- disable pylint error @SunsetWolf (#1960)\r\n- Fixing Security Vulnerabilities @SunsetWolf (#1941)\r\n- The plotly figure is empty in the code block \"Basic data\" @ziphei (#1902)\r\n- [fix] keep group_keys=False in Average Ensemble @lingbai-kong (#1913)\r\n- fix ci error @SunsetWolf (#1921)\r\n- Fix issue 1892 @SunsetWolf (#1916)\r\n- fix fillna bug @SunsetWolf (#1914)\r\n- fix col name error when fetch data @SunsetWolf (#1904)\r\n- fix pkl file not loading in StaticDataLoader @SunsetWolf (#1896)\r\n- Fix csi300 constituents url @SunsetWolf (#1883)\r\n- Fix the empty price_s case and self.instruments in SBBStrategyEMA. @ChiahungTai (#1677)\r\n- Bump version @SunsetWolf (#1872)\r\n\r\n## 📚 Documentation\r\n\r\n- feat: data improve, support parquet @you-n-g (#1966)\r\n- fix: typo @EmreKb (#1943)\r\n- Update README.md @you-n-g (#1940)\r\n- doc: update README.md @you-n-g (#1929)\r\n- [Fix]Update data preparation part in README.md @YeewahChan (#1924)\r\n- fixed a problem with multi index caused by the default value of groupkey @SunsetWolf (#1917)\r\n- fix bugs in the documentation @SunsetWolf (#1918)\r\n- DRAFT add Data Health Checker  @benheckmann (#1574)\r\n- Update links to chenditc\u002Finvestment_data to always point to latest release @codecnotsupported (#1877)\r\n- Fix broken URL for RL @SunsetWolf (#1881)\r\n- Bump version @SunsetWolf (#1872)\r\n\r\n## 🧹 Maintenance\r\n\r\n- fixed a problem with multi index caused by the default value of groupkey @SunsetWolf (#1917)\r\n","2025-08-15T09:49:17",{"id":185,"version":186,"summary_zh":187,"released_at":188},107364,"v0.9.6","## Changes\r\n\r\n## 🌟 Features\r\n\r\n- Ptnn4both datatypes and alignment tests  @taozhiwang (#1827)\r\n- More dataloader example @SunsetWolf (#1823)\r\n- Nested data loader @you-n-g (#1822)\r\n- Add  some misc features. @you-n-g (#1816)\r\n\r\n## 🐛 Bug Fixes\r\n\r\n- Fix Async Call @you-n-g (#1869)\r\n- fix duplicate log @qianyun210603 (#1661)\r\n- Fix Yahoo daily data format inconsistent @Fivele-Li (#1517)\r\n- Fix TSDataSampler Slicing Bug #1716 @YeewahChan (#1803)\r\n- fix panic during normalizing the invalid data @m3ngyang (#1698)\r\n- fix the bug that the HS_SYMBOLS_URL is 404 @zhstark (#1758)\r\n\r\n## 📚 Documentation\r\n\r\n- update python version @SunsetWolf (#1868)\r\n- Saurabh12571257\u002Fmain @SunsetWolf (#1866)\r\n- add dockerfile @SunsetWolf (#1817)\r\n- Update README.md to show rdagent in qlib front page @peteryang1 (#1848)\r\n- Update README.md @shenguanjiejie (#1839)\r\n- fix break img @SunsetWolf (#1842)\r\n- Update README.md @you-n-g (#1840)\r\n- Ptnn4both datatypes and alignment tests  @taozhiwang (#1827)\r\n- add a note for code standard @taozhiwang (#1814)\r\n- change weight data download url @SunsetWolf (#1812)\r\n- Fix typo @akazeakari (#1811)\r\n- fix logo display error @SunsetWolf (#1804)\r\n- Update Dev in README.md @you-n-g (#1800)\r\n\r\n## 🧹 Maintenance\r\n\r\n- Update publish @SunsetWolf (#1871)\r\n- Update urllib3 to fix security issue @chenditc (#1829)\r\n- Update index_data.py for datatype conversion and alignment @taozhiwang (#1813)\r\n- Fix typo datatime etc. @akazeakari (#1809)\r\n- Add \"mse\" metric option to ALSTM.metric_fn @raikiriww (#1810)\r\n- Update utils.py for typo @block-gpt (#1751)\r\n- changed concat of strings to f-strings and redundant type conversion … @igeni (#1767)\r\n","2024-12-23T07:36:40",{"id":190,"version":191,"summary_zh":192,"released_at":193},107365,"v0.9.5","## Changes\r\n\r\n- data_collector: cn_index: fix missing dependencies package in requirements.txt @feilongfl (#1770)\r\n- bump version @SunsetWolf (#1784)\r\n\r\n## 🐛 Bug Fixes\r\n\r\n- fix get data error @SunsetWolf (#1793)\r\n- Fix the bug of reading string NA as NaN in the function exists_qlib_data. @OzzyXu (#1736)\r\n\r\n## 📚 Documentation\r\n\r\n- fix get data error @SunsetWolf (#1793)\r\n- fix document @SunsetWolf (#1788)\r\n- fix docs @SunsetWolf (#1721)\r\n\r\n## 🧹 Maintenance\r\n\r\n- Delete redundant copy() code to speed up @playfund (#1732)\r\n- Update dump_pit.py @eltociear (#1759)\r\n- Fix issue 1729 @SunsetWolf (#1776)\r\n","2024-05-24T08:17:09",{"id":195,"version":196,"summary_zh":197,"released_at":198},107366,"v0.9.4","## Changes\r\n\r\n## 🌟 Features\r\n\r\n- Add exploration noise to rl training collector @chenditc (#1481)\r\n- Add multi pass portfolio analysis record @chenditc (#1546)\r\n\r\n## 🐛 Bug Fixes\r\n\r\n- fix the warning @Andyli1007 (#1656)\r\n\r\n## 📚 Documentation\r\n\r\n- Enhance README with LightGBM Installation Guidance for Mac M1 Users @Xisen-Wang (#1766)\r\n- download orderbook data @SunsetWolf (#1754)\r\n- add_baostock_collector @SunsetWolf (#1641)\r\n- Update data.rst @computerscienceiscool (#1679)\r\n- Update README.md @eltociear (#1637)\r\n- Update quick.rst @computerscienceiscool (#1667)\r\n- fix docs @SunsetWolf (#1618)\r\n- Improve readability of documents @Fivele-Li (#1524)\r\n- Update introduction.rst @computerscienceiscool (#1578)\r\n- Update README.md @GeneLiuXe (#1553)\r\n- Update introduction.rst @computerscienceiscool (#1579)\r\n\r\n## 🧹 Maintenance\r\n\r\n- update package version in requirements#1399#1400 @kimzhuan (#1521)\r\n- suppress the SettingWithCopyWarning of pandas @Fivele-Li (#1513)\r\n- Troubleshooting pip version issues in CI @Fivele-Li (#1504)\r\n- fix_pip_ci @SunsetWolf (#1608)\r\n- Bump Version & Fix CI @you-n-g (#1606)\r\n","2024-05-07T10:15:15",{"id":200,"version":201,"summary_zh":202,"released_at":203},107367,"v0.9.3","## Changes\r\n\r\n## 🌟 Features\r\n\r\n- Adjust rolling api @you-n-g (#1594)\r\n\r\n## 🐛 Bug Fixes\r\n\r\n- fix the download token check error @m3ngyang (#1577)\r\n\r\n## 📚 Documentation\r\n\r\n- Adjust rolling api @you-n-g (#1594)\r\n- Update qlibrl docs. @lwwang1995 (#1588)\r\n- Update README.md for RL @you-n-g (#1573)\r\n\r\n## 🧹 Maintenance\r\n\r\n- Fixed pyqlib version issue on macos @SunsetWolf (#1605)\r\n- Postpone PR stale. @you-n-g (#1591)\r\n- fix_pip_ci @SunsetWolf (#1584)\r\n","2023-07-18T11:31:08",{"id":205,"version":206,"summary_zh":207,"released_at":208},107368,"v0.9.2","## Changes\r\n\r\n## 🌟 Features\r\n\r\n- Update release-drafter.yml @you-n-g (#1569)\r\n- Resolve RL FIXMES @lihuoran (#1503)\r\n- Add base config in yml @Fivele-Li (#1500)\r\n- Add support for redis password @Chaoyingz (#1508)\r\n- Refine DDG-DA @you-n-g (#1472)\r\n- Order execution open source @lihuoran (#1447)\r\n- Add ipynb format check @Cadenza-Li (#1439)\r\n- RL backtest pipeline on 5-min data @lihuoran (#1417)\r\n\r\n## 🐛 Bug Fixes\r\n\r\n- Fix TCN model input dimension mismatch @Fivele-Li (#1520)\r\n- fix_DDG-DA_workflow_bug @Fivele-Li (#1516)\r\n- provide dtype to empty series to suppress warning; fix typo @qianyun210603 (#1449)\r\n- Specify the tianshou version to match the dev environment to avoid th… @Fivele-Li (#1502)\r\n- normpath for Windows @Fivele-Li (#1495)\r\n- [BUGFIX] potential file\u002F\u002F url parsing error @qianyun210603 (#1475)\r\n\r\n## 📚 Documentation\r\n\r\n- change get_data url @SunsetWolf (#1558)\r\n- Update on Dynamic Benchmark @wendili-cs (#1539)\r\n- added KRNN and Sandwich models and their example results based on Alpha360 @yaxuan999 (#1414)\r\n- Fix TCN model input dimension mismatch @Fivele-Li (#1520)\r\n- Refine Qlib RL data format @lihuoran (#1480)\r\n- Refine DDG-DA @you-n-g (#1472)\r\n- Update Docs about some concepts in DataHandler @you-n-g (#1485)\r\n- fix: removed extra blank link between sections @saurabh12571257 (#1451)\r\n- Remove Outdated RL example @lihuoran (#1464)\r\n- Order execution open source @lihuoran (#1447)\r\n\r\n## 🧹 Maintenance\r\n\r\n- Fix CI @you-n-g (#1529)\r\n- Fix deprecated syntax in numpy @Chaoyingz (#1507)\r\n- Remove unused `DNNModelPytorch` params @hirotasoshu (#1470)\r\n- update ubuntu CI version; @Fivele-Li (#1488)\r\n- fix_pylint_w0719 @SunsetWolf (#1463)\r\n- Improve annotation & documentation for handler @you-n-g (#1312)\r\n","2023-06-25T16:04:00",{"id":210,"version":211,"summary_zh":212,"released_at":213},107369,"v0.9.1","## Changes\r\n\r\n- RL Training pipeline on 5-min data @lihuoran (#1415)\r\n- Plot enhancement @qianyun210603 (#1390)\r\n- add label to PR Automatically @SunsetWolf (#1393)\r\n- Remove Wrong Package Name @you-n-g (#1394)\r\n- The limit threshold in Taiwan stock market is also 10%. @ChiahungTai (#1391)\r\n- fix some typo in doc\u002Fcomments @qianyun210603 (#1389)\r\n- optimize_yahoo_collector @SunsetWolf (#1388)\r\n\r\n## 🌟 Features\r\n\r\n- [BUGFIX] allow sell in limit-up case and allow buy in limit-down case in topk strategy @qianyun210603 (#1407)\r\n- fix subprocess.check_output bug @SunsetWolf (#1409)\r\n- fix_labeler_bug @SunsetWolf (#1406)\r\n- fix typo, staticmethod etc. @qianyun210603 (#1402)\r\n\r\n## 🐛 Bug Fixes\r\n\r\n- Fix ZScoreNorm processor bug @SunsetWolf (#1398)\r\n\r\n## 📚 Documentation\r\n\r\n- Simple RL notebook @lihuoran (#1395)\r\n- [DDG-DA] Update crowd-sourced data results @wendili-cs (#1405)\r\n- fix typo, staticmethod etc. @qianyun210603 (#1402)\r\n","2023-01-29T10:54:52",{"id":215,"version":216,"summary_zh":217,"released_at":218},107370,"v0.9.0","## Changes\r\n\r\n- Qlib data doc @chenditc (#1207)\r\n\r\n## 🌟 Features\r\n\r\n- Fix logging_level: make logging level specified in qlib.init applies to all loggers @qianyun210603 (#1368)\r\n- Add early stopping to double ensemble model, add example @chenditc (#1375)\r\n- Set _artifact_uri when mlflow_run is not None. @ChiahungTai (#1367)\r\n- Optimize the implementation of uri & Fix async log bug @you-n-g (#1364)\r\n- update TSDataSampler refineing the memory layout of data array to speed up NN training @peteryang1 (#1342)\r\n- Refine RL todos @lihuoran (#1332)\r\n- Don't disable existing logger when initializing qlib. @jingedawang (#1339)\r\n- Use mock data for element operator tests. @ChiahungTai (#1330)\r\n- fixed_flake8_error_in_CI @SunsetWolf (#1325)\r\n- optimize_CI @SunsetWolf (#1314)\r\n- Migrate amc4th training @lihuoran (#1316)\r\n- Add REG_US and REG_TW into test case: test_utils.py. @ChiahungTai (#1310)\r\n- RL backtest with simulator @lihuoran (#1299)\r\n- General handler for open source data preprocessing @Arthur-Null (#1302)\r\n- Migrate backtest logic from NT @lihuoran (#1263)\r\n- Qlib simulator refinement (redo of PR 1244) @lihuoran (#1262)\r\n- Add simplified download command @HyeongminMoon (#1234)\r\n- Add csi500 benchmark for MLP model. @jingedawang (#1215)\r\n- Add Linear model results on dataset=csi500 @aprilpear (#1210)\r\n- Add result of DoubleEnsemble model on csi500 @huajunzhao (#1201)\r\n- Update LightGBM alpha158 csi500 result @tecton (#1199)\r\n- Add csi500 experiment result to CatBoost @lcrun (#1197)\r\n- More time for slow test @you-n-g (#1247)\r\n- Migrate NeuTrader to Qlib RL @lihuoran (#1169)\r\n- Update handler.py to fix CI @you-n-g (#1227)\r\n- Update test_qlib_from_source_slow.yml @you-n-g (#1222)\r\n- Add data handler for order book data @Arthur-Null (#1212)\r\n- Use average weights in DoubleEnsemble. @lwwang1995 (#1205)\r\n- Be compatible with Google Colab @you-n-g (#1188)\r\n- Add a make.bat file in docs folder for Windows @bingyao (#1131)\r\n- Adding ChangeInstrument op @wan9c9 (#1005)\r\n- Add retry for git actions &  Fix MacOS Segment Error @you-n-g (#1173)\r\n- Backtest Mypy @lihuoran (#1130)\r\n- Auto log uncommmitted code @you-n-g (#1167)\r\n- Qlib RL framework (stage 2) - trainer @ultmaster (#1125)\r\n- change_pitdata_source @SunsetWolf (#1171)\r\n- split_CI @SunsetWolf (#1141)\r\n- Add time limit for CI @you-n-g (#1127)\r\n\r\n## 🐛 Bug Fixes\r\n\r\n- Fix warning in processor.py. @ChiahungTai (#1386)\r\n- Fix RL example bug @lihuoran (#1384)\r\n- Resolve issues while running Automatic update of daily frequency data (from yahoo finance) for US region @HyeongminMoon (#1358)\r\n- Fix RL command Error @you-n-g (#1382)\r\n- Fix the Errors\u002FWarnings when building Qlib's documentation @MaximSmolskiy (#1381)\r\n- fix csi500 end date issue @qianyun210603 (#1373)\r\n- Fixed log_param error @SunsetWolf (#1362)\r\n- Bug fix for Rank and WMA operators @qianyun210603 (#1228)\r\n- fix bug in clip_outlier in class RobustZScoreNorm(Processor) @NotF404 (#1294)\r\n- Fix Import Path Error @you-n-g (#1347)\r\n- fix position access error @lerit (#1267)\r\n- fix dump_bin @lerit (#1273)\r\n- Update cache.py @wony-zheng (#1329)\r\n- fixed_flake8_error_in_CI @SunsetWolf (#1325)\r\n- optimize_CI @SunsetWolf (#1314)\r\n- Fix `_update_dealt_order_amount` bug. @lihuoran (#1291)\r\n- Fix CI pylint bug @you-n-g (#1270)\r\n- fix_yahoo_collector_bug @SunsetWolf (#1257)\r\n- fixes #1187 error  \"Please install necessary libs for CatBoostModel.\" @OussCHE (#1246)\r\n- BUGFIX: remove_fields_space() function will drop Feature object field @wony-zheng (#1213)\r\n- chore: bugfix, judging system platform error on Mac @plpycoin (#1177)\r\n- fix bug on TRA dataset @HyeongminMoon (#1135)\r\n- Fix mount path bug @you-n-g (#1129)\r\n\r\n## 📚 Documentation\r\n\r\n- Fix the Errors\u002FWarnings when building Qlib's documentation @MaximSmolskiy (#1381)\r\n- Fix typos and grammar errors in docstrings and comments @qianyun210603 (#1366)\r\n- Fix typo. @ChiahungTai (#1365)\r\n- Fix the Errors with unexpected indentation when building Qlib's documentation @MaximSmolskiy (#1352)\r\n- Fix the Warnings with duplicate object description when building Qlib's documentation @MaximSmolskiy (#1353)\r\n- Fix the Warnings in rst files when building Qlib's documentation @MaximSmolskiy (#1349)\r\n- Add docs for qlib.rl @lwwang1995 (#1322)\r\n- Correct errors and typos in doc strings @qianyun210603 (#1338)\r\n- Update README.md @wan9c9 (#1279)\r\n- fix:doc for search_records @lerit (#1287)\r\n- Fix typo @ChiahungTai (#1308)\r\n- Add docs for the reampling example.  @you-n-g (#1285)\r\n- Expm typo fix add log @wan9c9 (#1271)\r\n- update recorder.rst  fixed typo @animic (#1264)\r\n- Update signal_strategy.py @ChengzhenDu (#1251)\r\n- Refine type hint and recorder @you-n-g (#1248)\r\n- add liability @wangershi (#1230)\r\n- Update README.md fixed typo @EricChangMSR (#1221)\r\n- Update the math of Metrics @you-n-g (#1211)\r\n- Update docs of strategy @you-n-g (#1209)\r\n- Update Data Updating Docs @you-n-g (#1203)\r\n- Add introduction for workflow_by_code.py @you-n-g (#1186)\r\n- Update FAQ for benchmarks @you-n-g (#1185)","2022-12-09T10:12:13",{"id":220,"version":221,"summary_zh":222,"released_at":223},107371,"v0.8.6","## Changes\r\n\r\n## 🌟 Features\r\n\r\n- Csi500 example @you-n-g (#1126)\r\n- Add log info for ensemble @you-n-g (#1113)\r\n- opt local trainer (better mem releasing) @you-n-g (#1116)\r\n- Refine backtest codes @lihuoran (#1120)\r\n- fix_pylint_for_CI @SunsetWolf (#1119)\r\n- change_datasource @SunsetWolf (#1109)\r\n- Add `.idea\u002F` into gitignore @lihuoran (#1110)\r\n- Add `.idea\u002F` into gitignore @lihuoran (#1108)\r\n- init_instance_by_config enhancement @you-n-g (#1103)\r\n- Qlib RL framework (stage 1) - single-asset order execution @ultmaster (#1076)\r\n- fix_issue_1060 @SunsetWolf (#1092)\r\n- add_test_pit @SunsetWolf (#1089)\r\n- fix_macos_CI @SunsetWolf (#1081)\r\n- fix SepDataFrame when we del it to empty @you-n-g (#1082)\r\n- Make sepdf more like DataFrame @you-n-g (#1080)\r\n\r\n## 🐛 Bug Fixes\r\n\r\n- Fix hist_ref in update.py @you-n-g (#1096)\r\n- add gym @you-n-g (#1104)\r\n- Update detailed_workflow.ipynb @ChiahungTai (#1084)\r\n- fix_issue_715 @SunsetWolf (#1070)\r\n- Fixed pandas FutureWarning @Hubedge (#1073)\r\n- Missing `f` prefix on f-strings fix @code-review-doctor (#1072)\r\n\r\n## 📚 Documentation\r\n\r\n- Fixed a few mixed Chinese punctuation typos @bingyao (#1123)\r\n- Refine backtest codes @lihuoran (#1120)\r\n- Add explanation for the evalution metrics of Qlib @you-n-g (#1090)\r\n- Qlib RL framework (stage 1) - single-asset order execution @ultmaster (#1076)\r\n- Update README.md @you-n-g (#1091)\r\n- fix_issue_1060 @SunsetWolf (#1092)\r\n- Add instructions to add models @you-n-g (#1088)\r\n- Yahoo data Docs @you-n-g (#1077)\r\n- fix_macos_CI @SunsetWolf (#1081)\r\n- Fixed typos in workflow.rst @jingedawang (#1068)\r\n","2022-06-15T06:53:00",{"id":225,"version":226,"summary_zh":227,"released_at":228},107372,"v0.8.5","## Changes\r\n\r\n- update doc for TopK-Drop @wan9c9 (#1015)\r\n- Known Limitations In Recorder @you-n-g (#999)\r\n- Fix pit docs format @Chaoyingz (#957)\r\n- Add REG_TW. @ChiahungTai (#955)\r\n\r\n## 🌟 Features\r\n\r\n- fast fillna @you-n-g (#1074)\r\n- fix_issue_1019 @SunsetWolf (#1046)\r\n- Change Power to a NpPairOperator @wuzhe1234 (#1052)\r\n- Use the region in qlib.config for FileCalendarStorage. @ChiahungTai (#1049)\r\n- Update test_macos.yml with test doc @Wangwuyi123 (#1055)\r\n- update ci with test doc @Wangwuyi123 (#1054)\r\n- Add the HIST and IGMTF model on Alpha360 @Wentao-Xu (#1040)\r\n- Add high-frequency feature engineering code @Arthur-Null (#1022)\r\n- Add Qlib notebook tutorial @you-n-g (#1037)\r\n- Ibovespa index support @igor17400 (#990)\r\n- Fix Chinese punctuation regex comment @Chaoyingz (#1012)\r\n- Add pre-commit @you-n-g (#992)\r\n- Support feature names contain Chinese punctuation @Chaoyingz (#1003)\r\n- Add PRef operator (#988) @Chaoyingz (#1000)\r\n- Add lightgbm min version. @ChiahungTai (#995)\r\n- Add backtest example to online simulation @you-n-g (#984)\r\n- Optimize the pit collector script @Chaoyingz (#982)\r\n- Fix pit download_data script TypeError (#978) @Chaoyingz (#979)\r\n- Skip idx.is_lexsorted() when pandas version is larger than 1.3.0. @ChiahungTai (#973)\r\n- Use callback in LGBM.train. @ChiahungTai (#974)\r\n- Remove redundant import [fix pylint] @you-n-g (#962)\r\n- feat: add instrument context to inst_processor @PalanQu (#959)\r\n- Fix csi500 @SunsetWolf (#938)\r\n- Support Point-in-time Data Operation @bxdd (#343)\r\n\r\n## 🐛 Bug Fixes\r\n\r\n- Fix shared DF Error @you-n-g (#1044)\r\n- fix tra dataset bug @you-n-g (#1050)\r\n- Fixed issue #943 about TCTS init_fore_model @TuozhenLiu (#1047)\r\n- chore: bug-fix for crypto data collector @plpycoin (#1038)\r\n- Update setup.py to fix doc @Wangwuyi123 (#1043)\r\n- update cli.py @wan9c9 (#1008)\r\n- Fix pit download_data script TypeError (#978) @Chaoyingz (#979)\r\n- Fix load_object bug @you-n-g (#977)\r\n- safe remove file and more friendly log @you-n-g (#967)\r\n\r\n## 📚 Documentation\r\n\r\n- Update setup.py @you-n-g (#1048)\r\n- Update README.md @qinmoelei (#1039)\r\n- Add Qlib notebook tutorial @you-n-g (#1037)\r\n- Add docs for CSRankNorm @you-n-g (#1032)\r\n- fix ddgda run all bug & pylint @you-n-g (#1031)\r\n- Fix format for PULL_REQUEST_TEMPLATE.md @Chaoyingz (#1001)\r\n- Add lightgbm min version. @ChiahungTai (#995)\r\n- Add backtest example to online simulation @you-n-g (#984)\r\n- Fix comment typo @Chaoyingz (#987)\r\n- fix-issue948 @SunsetWolf (#986)\r\n- Update report.rst Metric @you-n-g (#980)\r\n- Update Tool Info @you-n-g (#981)\r\n- Update yahooquery marked words @Wangwuyi123 (#966)\r\n- fix annotation in PIT script @bxdd (#958)\r\n","2022-04-24T16:10:31",{"id":230,"version":231,"summary_zh":232,"released_at":233},107373,"v0.8.4","## Changes\r\n\r\n- Update initialization.rst @SunsetWolf (#941)\r\n- Bump numpy from 1.17.4 to 1.21.0 in \u002Fexamples\u002Fbenchmarks\u002FTabNet @dependabot (#898)\r\n- Bump numpy from 1.17.4 to 1.21.0 in \u002Fexamples\u002Fbenchmarks\u002FTransformer @dependabot (#897)\r\n- Bump numpy from 1.17.4 to 1.21.0 in \u002Fexamples\u002Fhyperparameter\u002FLightGBM @dependabot (#896)\r\n- Bump numpy from 1.17.4 to 1.21.0 in \u002Fexamples\u002Fbenchmarks\u002FXGBoost @dependabot (#895)\r\n\r\n## 🌟 Features\r\n\r\n- [949] - Remove argument internal in BaseRun::download_data. @ChiahungTai (#953)\r\n- Fix error message in position.py @cuicorey (#922)\r\n- Fix wrong error messages. @ChiahungTai (#946)\r\n- [931] Remove mutable default argument. @ChiahungTai (#932)\r\n- performance mprovement @you-n-g (#921)\r\n- Add data analysis feature for report @you-n-g (#918)\r\n- Enhance pytorch nn @you-n-g (#917)\r\n- Fix pylint @SunsetWolf (#888)\r\n- Add more docs about initialization @you-n-g (#880)\r\n- Make the logic of handler Clear @you-n-g (#877)\r\n\r\n## 🐛 Bug Fixes\r\n\r\n- fix bug @wan9c9 (#950)\r\n- [930] Fix typo HasingStockStorage to HashingStockStorage. @ChiahungTai (#947)\r\n- Support Reweighter for HighFreq Model @you-n-g (#908)\r\n- add weight param @aurora5161 (#907)\r\n- fix workflow bug @you-n-g (#882)\r\n\r\n## 📚 Documentation\r\n\r\n- Update Metric Explanation @you-n-g (#920)\r\n- Add data analysis feature for report @you-n-g (#918)\r\n- Update README.md @wendili-cs (#915)\r\n- Some links about high-frequency trading @you-n-g (#884)\r\n- Update Portfolio README.md @you-n-g (#900)\r\n- Update Benchmark Docs @you-n-g (#899)\r\n- Docs improvement of backtest @you-n-g (#885)\r\n- Update handler processors docs @you-n-g (#879)\r\n- expression example @you-n-g (#887)\r\n- Docs to get original price @you-n-g (#878)\r\n","2022-03-08T14:29:17",{"id":235,"version":236,"summary_zh":237,"released_at":238},107374,"v0.8.3","## Changes\r\n\r\n- Bump numpy from 1.17.4 to 1.21.0 in \u002Fexamples\u002Fbenchmarks\u002FADARNN @dependabot (#870)\r\n- Bump numpy from 1.17.4 to 1.21.0 in \u002Fexamples\u002Fbenchmarks\u002FADD @dependabot (#869)\r\n- Bump numpy from 1.17.4 to 1.21.0 in \u002Fexamples\u002Fbenchmarks\u002FALSTM @dependabot (#868)\r\n- Bump numpy from 1.17.4 to 1.21.0 in \u002Fexamples\u002Fbenchmarks\u002FCatBoost @dependabot (#867)\r\n- Bump numpy from 1.17.4 to 1.21.0 in \u002Fexamples\u002Fbenchmarks\u002FDoubleEnsemble @dependabot (#866)\r\n- Bump numpy from 1.17.4 to 1.21.0 in \u002Fexamples\u002Fbenchmarks\u002FGRU @dependabot (#833)\r\n- Bump numpy from 1.17.4 to 1.21.0 in \u002Fexamples\u002Fbenchmarks\u002FLightGBM @dependabot (#830)\r\n- Bump numpy from 1.17.4 to 1.21.0 in \u002Fexamples\u002Fbenchmarks\u002FSFM @dependabot (#829)\r\n- Bump numpy from 1.17.4 to 1.21.0 in \u002Fexamples\u002Fbenchmarks\u002FTCTS @dependabot (#834)\r\n- Bump numpy from 1.17.4 to 1.21.0 in \u002Fexamples\u002Fbenchmarks\u002FGATs @dependabot (#831)\r\n- Bump numpy from 1.17.4 to 1.21.0 in \u002Fexamples\u002Fbenchmarks\u002FTRA @dependabot (#832)\r\n- Bump numpy from 1.17.4 to 1.21.0 in \u002Fexamples\u002Fbenchmarks\u002FLocalformer @dependabot (#835)\r\n- Bump numpy from 1.17.4 to 1.21.0 in \u002Fexamples\u002Fbenchmarks\u002FMLP @dependabot (#836)\r\n- Bump numpy from 1.17.4 to 1.21.0 in \u002Fexamples\u002Fbenchmarks\u002FTCN @dependabot (#837)\r\n- Bump numpy from 1.17.4 to 1.21.0 in \u002Fexamples\u002Fbenchmarks\u002FLSTM @dependabot (#838)\r\n\r\n## 🌟 Features\r\n\r\n- fall back error @you-n-g (#875)\r\n- Disable Cache By Default @you-n-g (#871)\r\n- Supporting Arctic Backend Provider & Orderbook, Tick Data Example @luocy16 (#744)\r\n- Add future calendar collector @zhupr (#795)\r\n\r\n## 🐛 Bug Fixes\r\n\r\n- Remove arctic from Qlib core to Contrib @you-n-g (#865)\r\n- Fix pytorch_nn.py step bug @you-n-g (#864)\r\n\r\n## 📚 Documentation\r\n\r\n- Add Desc For the limitation of 3.9 @Wangwuyi123 (#863)\r\n- Fix code and docs for issues @you-n-g (#853)\r\n","2022-01-19T18:04:41",{"id":240,"version":241,"summary_zh":242,"released_at":243},107375,"v0.8.1","## Changes\r\n\r\n## 🌟 Features\r\n\r\n- pylint code refine & Fix nested example @you-n-g (#848)\r\n- chore: remove hard code input dimension of model pytorch_tcts @PalanQu (#843)\r\n- [840] - Test case for operators. @ChiahungTai (#841)\r\n- DDG-DA paper code @you-n-g (#743)\r\n- [807] Move the REG_CONSTANT\u002FEPS to constant.py. @ChiahungTai (#811)\r\n- Some Optimization of online code @you-n-g (#784)\r\n- Add Crypto dataset from coingecko @b4thesunrise (#733)\r\n- Reformat example data names: use `{region}_data` for 1-day data, and `{region}_data_1min` for 1-min data @cning112 (#781)\r\n- support optimization based strategy @evanzd (#754)\r\n- Add hook for supporting RL strategy @you-n-g (#768)\r\n- Enhance Task Dict Var @you-n-g (#778)\r\n- Add Cache to avoid frequently loading Calendar @you-n-g (#766)\r\n- Update BCELoss in MLP model @cuicorey (#756)\r\n- solve VERSION.txt bug @b4thesunrise (#732)\r\n- Hyperopt upgrade @upgradvisor-bot (#741)\r\n- Add method parameter for volume @you-n-g (#734)\r\n\r\n## 🐛 Bug Fixes\r\n\r\n- Fix the read the docs error @you-n-g (#852)\r\n- pylint code refine & Fix nested example @you-n-g (#848)\r\n- fix: highfreq_gdbt_model of prepare data @PalanQu (#846)\r\n- Fix some warnings in log.py. @ChiahungTai (#805)\r\n- Fix $volume normalization issue @2young-2simple-sometimes-naive (#792)\r\n- Fix account shared bug @you-n-g (#791)\r\n- fix dump_bin:DumpDataUpdate @zhupr (#783)\r\n- Fix torch models on cpu @cning112 (#782)\r\n- fix cn_index collector @zhupr (#780)\r\n- Use encoding=\"utf-8\" in open. @ChiahungTai (#773)\r\n- fix IndexError of the last trading day in backtest calendar @zhupr (#751)\r\n- remove unneeded code from workflow_by_code.ipynb && fix analysis_model_performance @zhupr (#740)\r\n\r\n## 📚 Documentation\r\n\r\n- Add description of the pr template. @ChiahungTai (#812)\r\n- Fix typos and comments. @ChiahungTai (#815)\r\n- Update README.md @you-n-g (#802)\r\n- Fix BaseStrategy path. @ChiahungTai (#801)\r\n- Add a more understandable example of data workflow @you-n-g (#797)\r\n- fix_typo @SunsetWolf (#790)\r\n- Update Contributor list @you-n-g (#779)\r\n- Update Docs of Alpha360 @you-n-g (#777)\r\n- Replace scripts\u002Fget_data.py to get_data.py. @ChiahungTai (#775)\r\n- Fix typo leanable to learnable. @ChiahungTai (#774)\r\n- Add docs about the patameters @you-n-g (#771)\r\n- add description of dataset document @zhupr (#742)\r\n","2022-01-15T14:58:25",{"id":245,"version":246,"summary_zh":247,"released_at":248},107376,"v0.8.0","## Changes\r\n\r\n- docs improvement @you-n-g (#730)\r\n- Fix backtest @zhupr (#719)\r\n- add logger @demon143 (#709)\r\n- Add SigAnaRecord in to workflow_by_code.py @you-n-g (#707)\r\n- support adding from date when updating pred @you-n-g (#703)\r\n- Add A New Baseline: ADD @f-cg (#704)\r\n- Fix high-freq data @zhupr (#702)\r\n- Update task_management.rst @demon143 (#700)\r\n- Update workflow_by_code.ipynb @wan9c9 (#697)\r\n- Update task_management.rst @demon143 (#654)\r\n- Merging Backtest improve @you-n-g (#694)\r\n- Add AdaRNN baseline. @lwwang1995 (#689)\r\n- add ops_warning_log to config @zhupr (#685)\r\n- Callable Exp @you-n-g (#683)\r\n- bugfix: Fix the problem that caused highfreq's yaml to be unusable @Ckend (#678)\r\n- add default protocol_version @zhupr (#677)\r\n- An example to get index from TSDataSampler @you-n-g (#679)\r\n- handler demo  cache @you-n-g (#606)\r\n- Improve the backtest design and APIs  @you-n-g (#650)\r\n- More citations @markzhao98 (#673)\r\n- Add A New Baseline: TCN @f-cg (#668)\r\n- GPU identification bug fix for GATs @markzhao98 (#669)\r\n- fix 'duplicate axis' error when updating cache @zhupr (#661)\r\n- add logs in case of ops.py errors @zhupr (#659)\r\n- Adjusting gbdt.py's parameter @you-n-g (#660)\r\n\r\n## 🌟 Features\r\n\r\n- Auto injecting model and dataset for Recorder @you-n-g (#645)\r\n- Checking dataset empty @you-n-g (#647)\r\n- Update TCTS. @lwwang1995 (#643)\r\n- Add support for MacOS-11 @zhupr (#630)\r\n\r\n## 🐛 Bug Fixes\r\n\r\n- Fix update record bug @you-n-g (#723)\r\n- improve the doc of auto init @you-n-g (#541)\r\n- fix workflow_config_lightgbm_multi_freq.yaml @zhupr (#635)\r\n- remove 3.6 @you-n-g (#629)\r\n\r\n## 📚 Documentation\r\n\r\n- Update the docs of ops.py @you-n-g (#718)\r\n- improve the doc of auto init @you-n-g (#541)\r\n- more detailed docs for workflow @you-n-g (#639)\r\n- Update manage.py @demon143 (#628)\r\n- Update benchmark based on new backtest @you-n-g (#634)\r\n","2021-12-07T23:35:35",{"id":250,"version":251,"summary_zh":252,"released_at":253},107377,"v0.8.0a1","## Changes\r\n\r\n- Merge nested main @wangwenxi-handsome (#597)\r\n\r\n## 🌟 Features\r\n\r\n- Support Highfreq Backtest with the Model\u002FRule\u002FRL Strategy @bxdd (#438)\r\n","2021-09-30T19:00:18",{"id":255,"version":256,"summary_zh":257,"released_at":258},107378,"v0.7.2","## Changes\r\n\r\n- make the prediction update more friendly @you-n-g (#609)\r\n- Fix Models @you-n-g (#483)\r\n- update change doc @demon143 (#623)\r\n- Update initialization.rst @demon143 (#622)\r\n- Share version number @you-n-g (#620)\r\n- Add file lock for MLflowExpManager @you-n-g (#619)\r\n- Update code_standard.rst @demon143 (#587)\r\n- update cvxpy version @you-n-g (#616)\r\n\r\n## 🐛 Bug Fixes\r\n\r\n- Fix the type of filter_pipe @zhupr (#611)\r\n","2021-09-30T14:58:10",{"id":260,"version":261,"summary_zh":262,"released_at":263},107379,"v0.7.1","## Changes\r\n\r\n- Update setup.py @anukaal (#600)\r\n- Fix SimpleDatasetCache @zhupr (#604)\r\n- Fix undefined names in Python code @cclauss (#599)\r\n- Supporting shared processor @you-n-g (#596)\r\n- test.yml: Remove redundant code @cclauss (#595)\r\n- fix typos @saintmalik (#592)\r\n- Fix TRA @evanzd (#591)\r\n- Modify the Feature to be case sensitive @zhupr (#589)\r\n- Update manage.py @demon143 (#586)\r\n- Update FAQ.rst @zhupr (#588)\r\n- Multiple freq support @zhupr (#580)\r\n- without_conda @Wangwuyi123 (#575)\r\n- Update ensemble.py @demon143 (#560)\r\n- Update README.md @you-n-g (#546)\r\n- Update strategy.py @ZhangTP1996 (#545)\r\n- fix TRA when logdir is None @evanzd (#542)\r\n- refactor TRA @evanzd (#531)\r\n- refactor online serving rolling api @you-n-g (#539)\r\n- sort index after loader @you-n-g (#538)\r\n- Update data.rst @panshuaiyin (#532)\r\n- Add two transformer models via upload @yingtaoluo (#508)\r\n- Fix macos test ci @zhupr (#530)\r\n- Remove the date fetch from the expression and calculate it when used instead @zhupr (#527)\r\n- Update qrun to automaticly save the config to the artifacts uri @wuzhe1234 (#525)\r\n-  Add a check if change is mutated to YahooNormalize1d @zhupr (#524)\r\n- Issue fix @slowy07 (#523)\r\n- Add filter string to mlflow experiment list_recorders function. @chaosddp (#512)\r\n- Add a check if change is mutated to YahooNormalize1d @zhupr (#514)\r\n- Bug fix: ClientProvider not set connection to calendar and instrument provider when initializing. @chaosddp (#500)\r\n- updated readme of yahoo collector where region parameter was incorrect @2796gaurav (#504)\r\n\r\n## 🌟 Features\r\n\r\n- MVP for Indian Stocks in qlib using yahooquery @2796gaurav (#513)\r\n\r\n## 🐛 Bug Fixes\r\n\r\n- check lexsort in the 'lazy_sort_index' function @markzhao98 (#566)\r\n- Fix multi-process loop calls @zhupr (#574)\r\n- Fix shared task dict BUG @you-n-g (#576)\r\n","2021-09-16T03:40:35",{"id":265,"version":266,"summary_zh":267,"released_at":268},107380,"v0.7.0","## Changes\r\n\r\n- Update workflow.rst @xiaowuhu (#497)\r\n- Update workflow.rst @xiaowuhu (#496)\r\n- Update TCTS. @lwwang1995 (#495)\r\n- support check_transform_proc module_path @bxdd (#494)\r\n- Make OnlineToolR more user-friendly and fix some bugs @lzh222333 (#475)\r\n- examples\u002Fworkflow_by_code.ipynd: fix an error in R.get_recorder() par… @docularxu (#481)\r\n- Add TRA Model @linhx25 (#479)\r\n- Support using config to register custom operators @bxdd (#476)\r\n- Set self.fitted = True instead of self._fitted. @topskychen (#478)\r\n- Support extend data @zhupr (#463)\r\n- simplify the code and prevent float when shifting @you-n-g (#473)\r\n- Update TCTS README. @lwwang1995 (#472)\r\n- Add TCTS baseline. @lwwang1995 (#464)\r\n- Remove non-existing parameter description @arisliang (#462)\r\n- fix DelayTrainerRM @lzh222333 (#459)\r\n- Multiprocessing support for Online Serving @lzh222333 (#435)\r\n- fix XGBoost predict error @zhupr (#457)\r\n- Add import stock pool in doc @arisliang (#452)\r\n- add get_feature_importance to model interpret @zhupr (#444)\r\n- Update 1min demo data in CSV format @arisliang (#442)\r\n- Remove repeated package from requirements @arisliang (#447)\r\n- Update integration.rst @arisliang (#448)\r\n- Update report.rst @arisliang (#450)\r\n- Fix YahooCollector can't download 1min data @zhupr (#441)\r\n- Update collector.py @arisliang (#440)\r\n- Update README.md @arisliang (#439)\r\n- add data storage @zhupr (#372)\r\n- Update README.md @arisliang (#433)\r\n- Fix `get_module_by_module_path` to support pickle module loaded from arbitrage source file @evanzd (#431)\r\n- LightGBM hyperparameter @ChengYen-Tang (#423)\r\n- Add configurable dataset to examples @zhupr (#416)\r\n- Add set_global_logger_level @zhupr (#412)\r\n- Add future trading date collector @zhupr (#405)\r\n- Fix online mode bugs @zhupr (#401)\r\n- update high freq demo @javaThonc (#358)\r\n- Fix print issue @D-X-Y (#381)\r\n- Modify get_exp & get_recorder api @Derek-Wds (#380)\r\n- Add DataLoader Based on DataHandler & Add Rolling Process Example & Restructure the Config & Setup_data @bxdd (#374)\r\n- Fix us_index collector @zhupr (#379)\r\n- Add MultiSegRecord and add segment kwargs in model.pred @D-X-Y (#378)\r\n- debug @lewwang1995 (#373)\r\n- Update notebook @Derek-Wds (#371)\r\n- fix docs @Flouse (#365)\r\n- Add load_object function for R @D-X-Y (#362)\r\n- Fix data doc @bxdd (#359)\r\n- Fix yahoo_collector @zhupr (#357)\r\n- Fix dump_bin.py && check_dump_bin.py @zhupr (#350)\r\n- Update __init__.py @wendili-cs (#351)\r\n- Update Contact Us Information @you-n-g (#348)\r\n- fix bug of consider TURE as boolean instead of stock code @2young-2simple-sometimes-naive (#347)\r\n- Fix errors when SignalRecord is not called before SigAna\u002FPortAna @D-X-Y (#345)\r\n- Fix bugs in Ghost BN in TabNet and typos in README @D-X-Y (#337)\r\n- another typo of docs @Rekind1e (#333)\r\n- Fix typo of docs @Rekind1e (#332)\r\n- Fixed code quality issues @withshubh (#311)\r\n- Fix Various Bugs for contrib.pytorch_ models @D-X-Y (#329)\r\n- Add BaseCollector @zhupr (#324)\r\n- Move get_path to get_or_create_path, use the best model of SFM \u002F TabNet @D-X-Y (#328)\r\n- Fix code in ops @bxdd (#318)\r\n- Fix collector doc @ChengYen-Tang (#272)\r\n- Update FAQ doc & Update ops docstring @bxdd (#300)\r\n- Update the Wrapper class to have an informative str representation @D-X-Y (#298)\r\n- Add a new method to benchmarks: DoubleEnsemble @meng-ustc (#286)\r\n- Update README.md @wendili-cs (#291)\r\n- Update filter.py @you-n-g (#277)\r\n- safe yaml loader @you-n-g (#273)\r\n- Update workflow.rst @lbaiao (#268)\r\n- Fix typo in Data Layer @miaekim (#265)\r\n- Add Qlib highfreq doc & Update DatatSet Init Method @bxdd (#257)\r\n- Fix typo in workflow_by_code.py @pingsutw (#259)\r\n- Fix Highfreq Freq @bxdd (#256)\r\n\r\n## 🌟 Features\r\n\r\n- Online bug fix, enhancement &  docs for dataset, workflow, trainer ... @you-n-g (#466)\r\n- init version of online serving and rolling @you-n-g (#290)\r\n- Modify set_global_logger_level use of contextmanager @zhupr (#418)\r\n- Stale bot update @Derek-Wds (#413)\r\n- Support start exp with given exp & recorder id @Derek-Wds (#404)\r\n- Add fund data as an example @wangershi (#292)\r\n- Support resuming recorder @Derek-Wds (#340)\r\n- Implement Enhanced Indexing as a Portfolio Optimizer @yongzhengqi (#280)\r\n- (1) Fix \u002F0 bug in double_ensemble, (2) remove _default_uri for R\u002Fexpm, (3) support model size in pytorch models @D-X-Y (#314)\r\n- Update repr for dataset\u002Fworkflow classes and add uri kwarg for QlibRecorder @D-X-Y (#302)\r\n- Add model saving for qrun and workflow example @Derek-Wds (#264)\r\n- Update models to enable save\u002Fload @Derek-Wds (#261)\r\n\r\n## 🐛 Bug Fixes\r\n\r\n- Online bug fix, enhancement &  docs for dataset, workflow, trainer ... @you-n-g (#466)\r\n- Update Recorder Wrapper to prevent reinitialization @Derek-Wds (#471)\r\n- Fix exception hook bug @Derek-Wds (#461)\r\n- Fix bug and update doc @Derek-Wds (#419)\r\n- Fix logger pickling error @Derek-Wds (#407)\r\n- Update qlib logger @Derek-Wds (#393)\r\n- Support resuming recorder @Derek-Wds (#340)\r\n- (1) Fix \u002F0 bug in double_ensembl","2021-07-11T14:43:24",{"id":270,"version":271,"summary_zh":272,"released_at":273},107381,"v0.6.2","## Changes\r\n\r\n- move `freq` params to dataloader @you-n-g (#234)\r\n- Update pytorch_nn.py @wendili-cs (#241)\r\n- Update pytorch_alstm_ts.py @wendili-cs (#243)\r\n- Update pytorch_gats.py @wendili-cs (#244)\r\n- Update pytorch_gru.py @wendili-cs (#245)\r\n- Update pytorch_gru_ts.py @wendili-cs (#246)\r\n- Update pytorch_lstm.py @wendili-cs (#247)\r\n- Update pytorch_lstm_ts.py @wendili-cs (#248)\r\n- Update pytorch_alstm.py @wendili-cs (#242)\r\n- Fix bug in alpha360 @bxdd (#236)\r\n- Add filter_pipe API @Derek-Wds (#220)\r\n- Update data handler @you-n-g (#228)\r\n- Qlib Highfreq Support & Highfreq DataHanlder\u002FOperator\u002FProcessor Examples @bxdd (#222)\r\n- Add paper year @Derek-Wds (#224)\r\n- Support yahoo 1min data @zhupr (#221)\r\n- Fix the error when the stock code is a number @zhupr (#78)\r\n- Support Register of Custom Feature Operators Easily @bxdd (#92)\r\n- Update pytorch_nn.py @wendili-cs (#213)\r\n- tabnet @javaThonc (#205)\r\n- for IDE auto-complete with global Wrapper @GoooIce (#201)\r\n- Update .gitignore @GoooIce (#203)\r\n- Add dataset standalone usage example @you-n-g (#200)\r\n- Support Return Order List in Backtest & Assign Executor in Config @bxdd (#198)\r\n- fix setup error @GoooIce (#197)\r\n- Update pytorch_lstm_ts.py @wendili-cs (#194)\r\n- Update pytorch_gru_ts.py @wendili-cs (#193)\r\n- Update pytorch_gats_ts.py @wendili-cs (#192)\r\n- Update pytorch_alstm_ts.py @wendili-cs (#191)\r\n- Security Fix for Arbitrary Code Execution - huntr.dev @huntr-helper (#189)\r\n- Update docs and add Python 3.9 CI @Derek-Wds (#178)\r\n- Update initialization.rst @GoooIce (#188)\r\n- Fix create_recorder bug @Derek-Wds (#182)\r\n- Fix unrecognized config bug @fzc621 (#183)\r\n- Fix some typo in qlib\u002Ftests\u002Fdata.py @fzc621 (#179)\r\n- Supporting dict to define strategy in `evaluate.py` @you-n-g (#177)\r\n- Update workflow_config_gru_Alpha158.yaml @wendili-cs (#175)\r\n- Update workflow_config_lstm_Alpha158.yaml @wendili-cs (#174)\r\n- Update docs @Derek-Wds (#164)\r\n- Fix the first trading day of the calendar extra in report_df @zhupr (#125)\r\n- Fix recorder temp dir bug @Derek-Wds (#148)\r\n- better MemCacheUnit implement @hadrianl (#145)\r\n- Update alpha.rst @bxdd (#143)\r\n- add more doc to PortAnaRecord @you-n-g (#138)\r\n- fixing typos #4 @maciejdomagala (#135)\r\n- fixing typos #3 @maciejdomagala (#134)\r\n- Update benchmark performance @Derek-Wds (#97)\r\n- fixing typos #2 @maciejdomagala (#130)\r\n- Config.__getattr__ should raise AttributeError @hadrianl (#129)\r\n- Refactor to Python3 style @Gwill (#119)\r\n- Demo @Derek-Wds (#122)\r\n- Add stale bot @Derek-Wds (#124)\r\n- Typo fix @maciejdomagala (#123)\r\n- Update CI and script @Derek-Wds (#118)\r\n- Update the Sign operation in ops.py @YifanDengWHU (#113)\r\n","2021-02-02T09:28:46",{"id":275,"version":276,"summary_zh":277,"released_at":278},107382,"v0.6.1","## Changes\r\n\r\n- Update the Install Method in README @bxdd (#106)\r\n- Add author names @Derek-Wds (#99)\r\n- fix typo @Gwill (#95)\r\n- Update CI @Derek-Wds (#94)\r\n- Fix readthedocs @bxdd (#89)\r\n- Fix readthedocs @bxdd (#84)\r\n- Add the Config of readthedocs @bxdd (#83)\r\n- FIX CI @you-n-g (#81)\r\n- Supporting TSDatasetH @you-n-g (#75)\r\n- Update scripts @Derek-Wds (#74)\r\n","2020-12-12T09:58:19"]