[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-polakowo--vectorbt":3,"tool-polakowo--vectorbt":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 真正成长为懂上",140436,2,"2026-04-05T23:32:43",[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":79,"owner_twitter":79,"owner_website":79,"owner_url":80,"languages":81,"stars":97,"forks":98,"last_commit_at":99,"license":100,"difficulty_score":101,"env_os":102,"env_gpu":103,"env_ram":103,"env_deps":104,"category_tags":117,"github_topics":118,"view_count":23,"oss_zip_url":79,"oss_zip_packed_at":79,"status":16,"created_at":133,"updated_at":134,"faqs":135,"releases":165},3105,"polakowo\u002Fvectorbt","vectorbt","⚡️ Lightning-fast backtesting engine to find your trading edge.","vectorbt 是一款专为量化交易打造的高性能回测引擎，旨在帮助投资者和研究人员在极短时间内验证成千上万种交易策略。它解决了传统回测工具运行缓慢、代码繁琐以及难以进行大规模参数优化的痛点，让用户只需编写少量代码，即可快速发现具有盈利潜力的交易逻辑。\n\n这款工具特别适合量化开发者、金融数据科学家以及希望利用 AI 代理自动化探索市场的研究人员使用。无论是个人交易者还是机构团队，都能通过它高效地分析多资产组合在不同市场和时间周期下的表现。\n\nvectorbt 的核心技术亮点在于其“向量化”架构。它基于 pandas 和 NumPy 构建，并利用 Numba 进行加速，实现了闪电般的运算速度。其原生支持灵活的广播机制，可轻松应对多资产分析和海量参数扫描。此外，它还集成了丰富的技术指标库、专业的投资组合分析功能（如回撤、绩效统计）以及交互式可视化图表。从数据获取到机器学习工作流的标签生成，vectorbt 提供了一套完整且可组合的 Python API，让策略研发过程既严谨又充满灵活性。","\u003Cdiv align=\"center\">\n    \u003Ca href=\"https:\u002F\u002Fvectorbt.pro\u002F\" title=\"VectorBT PRO\">\n        \u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fpolakowo\u002Fvectorbt\u002Fmaster\u002Fdocs\u002Fdocs\u002Fassets\u002Flogo\u002Fheader-pro.svg\" \u002F>\n    \u003C\u002Fa>\n\u003C\u002Fdiv>\n\u003Cdiv align=\"center\">\n    \u003Ca href=\"https:\u002F\u002Fvectorbt.dev\u002F\" title=\"vectorbt\">\n        \u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fpolakowo\u002Fvectorbt\u002Fmaster\u002Fdocs\u002Fdocs\u002Fassets\u002Flogo\u002Fheader.svg\" \u002F>\n    \u003C\u002Fa>\n\u003C\u002Fdiv>\n\n\u003Cbr>\n\n\u003Cp align=\"center\">\n    \u003Ca href=\"https:\u002F\u002Fpepy.tech\u002Fproject\u002Fvectorbt\" title=\"Downloads\">\n        \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpolakowo_vectorbt_readme_34c50e933400.png\" \u002F>\n    \u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fpolakowo\u002Fvectorbt\u002Fstargazers\" title=\"Stars\">\n        \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Fpolakowo\u002Fvectorbt?style=flat\" \u002F>\n    \u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fpolakowo\u002Fvectorbt\u002Fnetwork\u002Fmembers\" title=\"Forks\">\n        \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fforks\u002Fpolakowo\u002Fvectorbt?style=flat\" \u002F>\n    \u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fpolakowo\u002Fvectorbt\u002Fgraphs\u002Fcontributors\" title=\"Contributors\">\n        \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fcontributors\u002Fpolakowo\u002Fvectorbt?style=flat\" \u002F>\n    \u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fpypi.org\u002Fproject\u002Fvectorbt\" title=\"PyPI\">\n        \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Fvectorbt?color=blueviolet\" \u002F>\n    \u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fpolakowo\u002Fvectorbt\u002Fblob\u002Fmaster\u002FLICENSE.md\" title=\"License\">\n        \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-Fair%20Code-yellow\" \u002F>\n    \u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fcodecov.io\u002Fgh\u002Fpolakowo\u002Fvectorbt\" title=\"codecov\">\n        \u003Cimg src=\"https:\u002F\u002Fcodecov.io\u002Fgh\u002Fpolakowo\u002Fvectorbt\u002Fbranch\u002Fmaster\u002Fgraph\u002Fbadge.svg?token=YTLNAI7PS3\" \u002F>\n    \u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fvectorbt.dev\u002F\" title=\"Website\">\n        \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fwebsite?url=https:\u002F\u002Fvectorbt.dev\u002F\" \u002F>\n    \u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fmybinder.org\u002Fv2\u002Fgh\u002Fpolakowo\u002Fvectorbt\u002FHEAD?urlpath=lab\" title=\"Launch Binder\">\n        \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flaunch-binder-d6604a\" \u002F>\n    \u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fgitter.im\u002Fvectorbt\u002Fcommunity?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge\" title=\"Join the chat\">\n        \u003Cimg src=\"https:\u002F\u002Fbadges.gitter.im\u002Fvectorbt.svg\" \u002F>\n    \u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fpypi.org\u002Fproject\u002Fvectorbt\" title=\"Supported Python versions\">\n        \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fpyversions\u002Fvectorbt.svg?logo=python&logoColor=white\" \u002F>\n    \u003C\u002Fa>\n\u003C\u002Fp>\n\nTest thousands of trading ideas in seconds, analyze portfolios across markets and timeframes, and uncover what works with minimal code. Built for both human researchers and AI agents, VectorBT combines rapid experimentation with a mature, battle-tested backtesting stack shaped by years of community use.\n\nVectorBT is the open-source, community edition of [VectorBT PRO](https:\u002F\u002Fvectorbt.pro\u002F), a state-of-the-art hybrid backtesting library.\n\n## Features\n\n- Fast, vectorized backtesting and strategy research on pandas\u002FNumPy, accelerated with Numba\n- Pandas-native API with custom accessors and high-performance operations\n- Flexible broadcasting for multi-asset analysis and large parameter sweeps\n- Rich indicator ecosystem with support for custom indicators and popular TA libraries (TA-Lib, Pandas TA, etc.)\n- Portfolio backtesting with trades, positions, drawdowns, and performance analysis (incl. QuantStats)\n- Signal-based tooling for generation, ranking, mapping, and distribution analysis\n- Built-in data access (Yahoo Finance, CCXT, Alpaca, etc.), preprocessing, and random data generation\n- Robustness testing, walk-forward optimization, and label generation for ML workflows\n- Interactive visualization with Plotly, Jupyter widgets, and browser-friendly dashboards\n- Automation support for scheduled updates and Telegram notifications\n- Composable Python API suitable for rapid experimentation and AI agent-driven workflows\n\n## Installation\n\n```sh\npip install -U vectorbt\n```\n\nTo install optional dependencies as well:\n\n```sh\npip install -U \"vectorbt[full]\"\n```\n\n## Usage\n\nVectorBT lets you backtest strategies in just a few lines of Python.\n\n* Profit from investing $100 in Bitcoin since 2014:\n\n```python\nimport vectorbt as vbt\n\ndata = vbt.YFData.download(\"BTC-USD\")\nprice = data.get(\"Close\")\n\npf = vbt.Portfolio.from_holding(price, init_cash=100)\nprint(pf.total_profit())\n```\n\n```plaintext\n19501.10906763755\n```\n\n* Buy when the 10-day SMA crosses above the 50-day SMA, and sell on the opposite crossover:\n\n```python\nfast_ma = vbt.MA.run(price, 10)\nslow_ma = vbt.MA.run(price, 50)\nentries = fast_ma.ma_crossed_above(slow_ma)\nexits = fast_ma.ma_crossed_below(slow_ma)\n\npf = vbt.Portfolio.from_signals(price, entries, exits, init_cash=100)\nprint(pf.total_profit())\n```\n\n```plaintext\n34417.80960086067\n```\n\n* Generate 1,000 strategies with random signals and test them on BTC and ETH:\n\n```python\nimport numpy as np\n\nsymbols = [\"BTC-USD\", \"ETH-USD\"]\ndata = vbt.YFData.download(symbols, missing_index=\"drop\")\nprice = data.get(\"Close\")\n\nn = np.random.randint(10, 101, size=1000).tolist()\npf = vbt.Portfolio.from_random_signals(price, n=n, init_cash=100, seed=42)\n\nmean_expectancy = pf.trades.expectancy().groupby([\"randnx_n\", \"symbol\"]).mean()\nfig = mean_expectancy.unstack().vbt.scatterplot(xaxis_title=\"randnx_n\", yaxis_title=\"mean_expectancy\")\nfig.show()\n```\n\n![](https:\u002F\u002Fraw.githubusercontent.com\u002Fpolakowo\u002Fvectorbt\u002Fmaster\u002Fdocs\u002Fdocs\u002Fassets\u002Fimages\u002Fusage_rand_scatter.svg)\n\n* For hyperparameter optimization fans: test 10,000 window combinations of a dual-SMA crossover strategy on BTC, ETH, and XRP:\n\n```python\nsymbols = [\"BTC-USD\", \"ETH-USD\", \"XRP-USD\"]\ndata = vbt.YFData.download(symbols, missing_index=\"drop\")\nprice = data.get(\"Close\")\n\nwindows = np.arange(2, 101)\nfast_ma, slow_ma = vbt.MA.run_combs(price, window=windows, r=2, short_names=[\"fast\", \"slow\"])\nentries = fast_ma.ma_crossed_above(slow_ma)\nexits = fast_ma.ma_crossed_below(slow_ma)\n\npf = vbt.Portfolio.from_signals(price, entries, exits, size=np.inf, fees=0.001, freq=\"1D\")\n\nfig = pf.total_return().vbt.heatmap(\n    x_level=\"fast_window\", y_level=\"slow_window\", slider_level=\"symbol\", symmetric=True,\n    trace_kwargs=dict(colorbar=dict(title=\"Total return\", tickformat=\"%\")))\nfig.show()\n```\n\n\u003Cimg width=\"750\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpolakowo_vectorbt_readme_8b7111fee86f.gif\">\n\nInspect any strategy configuration by indexing with pandas:\n\n```python\nprint(pf[(10, 20, \"ETH-USD\")].stats())\n```\n\n```plaintext\nStart                          2017-11-09 00:00:00+00:00\nEnd                            2026-01-03 00:00:00+00:00\nPeriod                                2978 days 00:00:00\nStart Value                                        100.0\nEnd Value                                    1604.093789\nTotal Return [%]                             1504.093789\nBenchmark Return [%]                          866.094127\nMax Gross Exposure [%]                             100.0\nTotal Fees Paid                               204.226289\nMax Drawdown [%]                               70.734951\nMax Drawdown Duration                 1095 days 00:00:00\nTotal Trades                                          81\nTotal Closed Trades                                   80\nTotal Open Trades                                      1\nOpen Trade PnL                                -14.232533\nWin Rate [%]                                       41.25\nBest Trade [%]                                120.511071\nWorst Trade [%]                               -27.772271\nAvg Winning Trade [%]                          27.265519\nAvg Losing Trade [%]                           -9.022864\nAvg Winning Trade Duration    32 days 20:21:49.090909091\nAvg Losing Trade Duration      8 days 16:51:03.829787234\nProfit Factor                                   1.275515\nExpectancy                                     18.979079\nSharpe Ratio                                    0.861945\nCalmar Ratio                                    0.572758\nOmega Ratio                                      1.20277\nSortino Ratio                                   1.301377\nName: (10, 20, ETH-USD), dtype: object\n```\n\nSame goes for plotting:\n\n```python\npf[(10, 20, \"ETH-USD\")].plot().show()\n```\n\n![](https:\u002F\u002Fraw.githubusercontent.com\u002Fpolakowo\u002Fvectorbt\u002Fmaster\u002Fdocs\u002Fdocs\u002Fassets\u002Fimages\u002Fusage_dmac_portfolio.svg)\n\nIt's not all about backtesting! VectorBT can also help with financial data analysis and visualization.\n\n* Create a GIF that animates Bollinger Bands %B and bandwidth across multiple symbols:\n\n```python\nsymbols = [\"BTC-USD\", \"ETH-USD\", \"XRP-USD\"]\ndata = vbt.YFData.download(symbols, period=\"6mo\", missing_index=\"drop\")\nprice = data.get(\"Close\")\nbbands = vbt.BBANDS.run(price)\n\ndef plot(index, bbands):\n    bbands = bbands.loc[index]\n    fig = vbt.make_subplots(\n        rows=2, cols=1, shared_xaxes=True, vertical_spacing=0.15,\n        subplot_titles=(\"%B\", \"Bandwidth\"))\n    fig.update_layout(showlegend=False, width=750, height=400)\n    bbands.percent_b.vbt.ts_heatmap(\n        trace_kwargs=dict(zmin=0, zmid=0.5, zmax=1, colorscale=\"Spectral\", colorbar=dict(\n            y=(fig.layout.yaxis.domain[0] + fig.layout.yaxis.domain[1]) \u002F 2, len=0.5\n        )), add_trace_kwargs=dict(row=1, col=1), fig=fig)\n    bbands.bandwidth.vbt.ts_heatmap(\n        trace_kwargs=dict(colorbar=dict(\n            y=(fig.layout.yaxis2.domain[0] + fig.layout.yaxis2.domain[1]) \u002F 2, len=0.5\n        )), add_trace_kwargs=dict(row=2, col=1), fig=fig)\n    return fig\n\nvbt.save_animation(\"bbands.gif\", bbands.wrapper.index, plot, bbands, delta=90, step=3, fps=3)\n```\n\n```plaintext\n100%|██████████| 31\u002F31 [00:21\u003C00:00,  1.21it\u002Fs]\n```\n\n\u003Cimg width=\"750\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpolakowo_vectorbt_readme_2e77aa035024.gif\">\n\nThis is just the tip of the iceberg. Visit the [website](https:\u002F\u002Fvectorbt.dev\u002F) to learn more.\n\n## Apps\n\n### Candlestick Patterns ([here](https:\u002F\u002Fgithub.com\u002Fpolakowo\u002Fvectorbt\u002Fblob\u002Fmaster\u002Fapps\u002Fcandlestick-patterns\u002F))\n\nExplore candlestick-pattern signals interactively and backtest them with VectorBT.\n\n[![teaser.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpolakowo_vectorbt_readme_1ba1388b4df4.png)](https:\u002F\u002Fgithub.com\u002Fpolakowo\u002Fvectorbt\u002Fblob\u002Fmaster\u002Fapps\u002Fcandlestick-patterns\u002F)\n\n## Links\n\n* [Website](https:\u002F\u002Fvectorbt.dev\u002F)\n* [Docker images](https:\u002F\u002Fhub.docker.com\u002Fr\u002Fpolakowo\u002Fvectorbt)\n* [Colab notebook](https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F1ibqyrf6LPFlzRb6mkPpl3hxqL6ryNBXI?usp=sharing)\n\n## License\n\nThis work is [fair-code](http:\u002F\u002Ffaircode.io\u002F) distributed under the [Apache 2.0 with Commons Clause](https:\u002F\u002Fgithub.com\u002Fpolakowo\u002Fvectorbt\u002Fblob\u002Fmaster\u002FLICENSE.md) license.\n\nThe source code is open, and everyone (individuals and organizations) may use it for free. However, you may not sell products or services that are primarily this software.\n\nIf you have questions or want to request a license exception, please [contact the author](mailto:olegpolakow@vectorbt.pro).\n\nInstalling optional dependencies may be subject to a more restrictive license.\n\n## Star history\n\n[![Star History Chart](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpolakowo_vectorbt_readme_1214b99cb06d.png)](https:\u002F\u002Fstar-history.com\u002F#polakowo\u002Fvectorbt&Timeline)\n\n## Disclaimer\n\nThis software is for educational purposes only. Do not risk money you cannot afford to lose.\n\nUSE THE SOFTWARE AT YOUR OWN RISK. THE AUTHORS AND ALL AFFILIATES ASSUME NO RESPONSIBILITY FOR YOUR TRADING RESULTS.\n","\u003Cdiv align=\"center\">\n    \u003Ca href=\"https:\u002F\u002Fvectorbt.pro\u002F\" title=\"VectorBT PRO\">\n        \u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fpolakowo\u002Fvectorbt\u002Fmaster\u002Fdocs\u002Fdocs\u002Fassets\u002Flogo\u002Fheader-pro.svg\" \u002F>\n    \u003C\u002Fa>\n\u003C\u002Fdiv>\n\u003Cdiv align=\"center\">\n    \u003Ca href=\"https:\u002F\u002Fvectorbt.dev\u002F\" title=\"vectorbt\">\n        \u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fpolakowo\u002Fvectorbt\u002Fmaster\u002Fdocs\u002Fdocs\u002Fassets\u002Flogo\u002Fheader.svg\" \u002F>\n    \u003C\u002Fa>\n\u003C\u002Fdiv>\n\n\u003Cbr>\n\n\u003Cp align=\"center\">\n    \u003Ca href=\"https:\u002F\u002Fpepy.tech\u002Fproject\u002Fvectorbt\" title=\"下载量\">\n        \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpolakowo_vectorbt_readme_34c50e933400.png\" \u002F>\n    \u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fpolakowo\u002Fvectorbt\u002Fstargazers\" title=\"星标数\">\n        \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Fpolakowo\u002Fvectorbt?style=flat\" \u002F>\n    \u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fpolakowo\u002Fvectorbt\u002Fnetwork\u002Fmembers\" title=\"复刻数\">\n        \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fforks\u002Fpolakowo\u002Fvectorbt?style=flat\" \u002F>\n    \u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fpolakowo\u002Fvectorbt\u002Fgraphs\u002Fcontributors\" title=\"贡献者\">\n        \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fcontributors\u002Fpolakowo\u002Fvectorbt?style=flat\" \u002F>\n    \u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fpypi.org\u002Fproject\u002Fvectorbt\" title=\"PyPI\">\n        \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Fvectorbt?color=blueviolet\" \u002F>\n    \u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fpolakowo\u002Fvectorbt\u002Fblob\u002Fmaster\u002FLICENSE.md\" title=\"许可证\">\n        \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-Fair%20Code-yellow\" \u002F>\n    \u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fcodecov.io\u002Fgh\u002Fpolakowo\u002Fvectorbt\" title=\"代码覆盖率\">\n        \u003Cimg src=\"https:\u002F\u002Fcodecov.io\u002Fgh\u002Fpolakowo\u002Fvectorbt\u002Fbranch\u002Fmaster\u002Fgraph\u002Fbadge.svg?token=YTLNAI7PS3\" \u002F>\n    \u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fvectorbt.dev\u002F\" title=\"官网\">\n        \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fwebsite?url=https:\u002F\u002Fvectorbt.dev\u002F\" \u002F>\n    \u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fmybinder.org\u002Fv2\u002Fgh\u002Fpolakowo\u002Fvectorbt\u002FHEAD?urlpath=lab\" title=\"启动Binder\">\n        \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flaunch-binder-d6604a\" \u002F>\n    \u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fgitter.im\u002Fvectorbt\u002Fcommunity?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge\" title=\"加入聊天\">\n        \u003Cimg src=\"https:\u002F\u002Fbadges.gitter.im\u002Fvectorbt.svg\" \u002F>\n    \u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fpypi.org\u002Fproject\u002Fvectorbt\" title=\"支持的Python版本\">\n        \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fpyversions\u002Fvectorbt.svg?logo=python&logoColor=white\" \u002F>\n    \u003C\u002Fa>\n\u003C\u002Fp>\n\n在几秒钟内测试成千上万种交易策略，跨市场和不同时间周期分析投资组合，并以最少的代码找出有效的交易方法。VectorBT专为人类研究者和AI智能体设计，将快速实验与经过多年社区使用验证的成熟回测框架相结合。\n\nVectorBT是[VectorBT PRO](https:\u002F\u002Fvectorbt.pro\u002F)的开源社区版，后者是一款最先进的混合型回测库。\n\n## 功能特性\n\n- 基于pandas\u002FNumPy的快速向量化回测与策略研究，通过Numba加速\n- 原生pandas API，配备自定义访问器和高性能操作\n- 灵活的广播机制，适用于多资产分析和大规模参数扫描\n- 丰富的指标生态系统，支持自定义指标及主流技术分析库（TA-Lib、Pandas TA等）\n- 投资组合回测，包含交易、持仓、回撤及绩效分析（包括QuantStats）\n- 基于信号的工具链，用于信号生成、排序、映射及分布分析\n- 内置数据接入功能（Yahoo Finance、CCXT、Alpaca等），以及数据预处理和随机数据生成\n- 鲁棒性测试、向前优化及ML工作流中的标签生成\n- 交互式可视化，支持Plotly、Jupyter widgets及浏览器友好的仪表盘\n- 自动化支持，可实现定时更新和Telegram通知\n- 可组合的Python API，适合快速实验和AI智能体驱动的工作流\n\n## 安装\n\n```sh\npip install -U vectorbt\n```\n\n若需同时安装可选依赖：\n\n```sh\npip install -U \"vectorbt[full]\"\n```\n\n## 使用方法\n\nVectorBT 让你只需几行 Python 代码就能对策略进行回测。\n\n* 自 2014 年以来，投资 100 美元于比特币所获得的收益：\n\n```python\nimport vectorbt as vbt\n\ndata = vbt.YFData.download(\"BTC-USD\")\nprice = data.get(\"Close\")\n\npf = vbt.Portfolio.from_holding(price, init_cash=100)\nprint(pf.total_profit())\n```\n\n```plaintext\n19501.10906763755\n```\n\n* 当 10 日均线金叉 50 日均线时买入，反之死叉时卖出：\n\n```python\nfast_ma = vbt.MA.run(price, 10)\nslow_ma = vbt.MA.run(price, 50)\nentries = fast_ma.ma_crossed_above(slow_ma)\nexits = fast_ma.ma_crossed_below(slow_ma)\n\npf = vbt.Portfolio.from_signals(price, entries, exits, init_cash=100)\nprint(pf.total_profit())\n```\n\n```plaintext\n34417.80960086067\n```\n\n* 生成 1,000 个带有随机信号的策略，并在 BTC 和 ETH 上进行测试：\n\n```python\nimport numpy as np\n\nsymbols = [\"BTC-USD\", \"ETH-USD\"]\ndata = vbt.YFData.download(symbols, missing_index=\"drop\")\nprice = data.get(\"Close\")\n\nn = np.random.randint(10, 101, size=1000).tolist()\npf = vbt.Portfolio.from_random_signals(price, n=n, init_cash=100, seed=42)\n\nmean_expectancy = pf.trades.expectancy().groupby([\"randnx_n\", \"symbol\"]).mean()\nfig = mean_expectancy.unstack().vbt.scatterplot(xaxis_title=\"randnx_n\", yaxis_title=\"mean_expectancy\")\nfig.show()\n```\n\n![](https:\u002F\u002Fraw.githubusercontent.com\u002Fpolakowo\u002Fvectorbt\u002Fmaster\u002Fdocs\u002Fdocs\u002Fassets\u002Fimages\u002Fusage_rand_scatter.svg)\n\n* 对于超参数优化爱好者：在 BTC、ETH 和 XRP 上测试双均线交叉策略的 10,000 种窗口组合：\n\n```python\nsymbols = [\"BTC-USD\", \"ETH-USD\", \"XRP-USD\"]\ndata = vbt.YFData.download(symbols, missing_index=\"drop\")\nprice = data.get(\"Close\")\n\nwindows = np.arange(2, 101)\nfast_ma, slow_ma = vbt.MA.run_combs(price, window=windows, r=2, short_names=[\"fast\", \"slow\"])\nentries = fast_ma.ma_crossed_above(slow_ma)\nexits = fast_ma.ma_crossed_below(slow_ma)\n\npf = vbt.Portfolio.from_signals(price, entries, exits, size=np.inf, fees=0.001, freq=\"1D\")\n\nfig = pf.total_return().vbt.heatmap(\n    x_level=\"fast_window\", y_level=\"slow_window\", slider_level=\"symbol\", symmetric=True,\n    trace_kwargs=dict(colorbar=dict(title=\"Total return\", tickformat=\"%\")))\nfig.show()\n```\n\n\u003Cimg width=\"750\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpolakowo_vectorbt_readme_8b7111fee86f.gif\">\n\n通过 Pandas 索引可以检查任何策略配置：\n\n```python\nprint(pf[(10, 20, \"ETH-USD\")].stats())\n```\n\n```plaintext\nStart                          2017-11-09 00:00:00+00:00\nEnd                            2026-01-03 00:00:00+00:00\nPeriod                                2978 days 00:00:00\nStart Value                                        100.0\nEnd Value                                    1604.093789\nTotal Return [%]                             1504.093789\nBenchmark Return [%]                          866.094127\nMax Gross Exposure [%]                             100.0\nTotal Fees Paid                               204.226289\nMax Drawdown [%]                               70.734951\nMax Drawdown Duration                 1095 days 00:00:00\nTotal Trades                                          81\nTotal Closed Trades                                   80\nTotal Open Trades                                      1\nOpen Trade PnL                                -14.232533\nWin Rate [%]                                       41.25\nBest Trade [%]                                120.511071\nWorst Trade [%]                               -27.772271\nAvg Winning Trade [%]                          27.265519\nAvg Losing Trade [%]                           -9.022864\nAvg Winning Trade Duration    32 days 20:21:49.090909091\nAvg Losing Trade Duration      8 days 16:51:03.829787234\nProfit Factor                                   1.275515\nExpectancy                                     18.979079\nSharpe Ratio                                    0.861945\nCalmar Ratio                                    0.572758\nOmega Ratio                                      1.20277\nSortino Ratio                                   1.301377\nName: (10, 20, ETH-USD), dtype: object\n```\n\n绘图也是如此：\n\n```python\npf[(10, 20, \"ETH-USD\")].plot().show()\n```\n\n![](https:\u002F\u002Fraw.githubusercontent.com\u002Fpolakowo\u002Fvectorbt\u002Fmaster\u002Fdocs\u002Fdocs\u002Fassets\u002Fimages\u002Fusage_dmac_portfolio.svg)\n\nVectorBT 不仅仅用于回测！它还能帮助进行金融数据分析和可视化。\n\n* 创建一个 GIF 动画，展示多个标的的布林带百分比 B 值和带宽变化：\n\n```python\nsymbols = [\"BTC-USD\", \"ETH-USD\", \"XRP-USD\"]\ndata = vbt.YFData.download(symbols, period=\"6mo\", missing_index=\"drop\")\nprice = data.get(\"Close\")\nbbands = vbt.BBANDS.run(price)\n\ndef plot(index, bbands):\n    bbands = bbands.loc[index]\n    fig = vbt.make_subplots(\n        rows=2, cols=1, shared_xaxes=True, vertical_spacing=0.15,\n        subplot_titles=(\"%B\", \"Bandwidth\"))\n    fig.update_layout(showlegend=False, width=750, height=400)\n    bbands.percent_b.vbt.ts_heatmap(\n        trace_kwargs=dict(zmin=0, zmid=0.5, zmax=1, colorscale=\"Spectral\", colorbar=dict(\n            y=(fig.layout.yaxis.domain[0] + fig.layout.yaxis.domain[1]) \u002F 2, len=0.5\n        )), add_trace_kwargs=dict(row=1, col=1), fig=fig)\n    bbands.bandwidth.vbt.ts_heatmap(\n        trace_kwargs=dict(colorbar=dict(\n            y=(fig.layout.yaxis2.domain[0] + fig.layout.yaxis2.domain[1]) \u002F 2, len=0.5\n        )), add_trace_kwargs=dict(row=2, col=1), fig=fig)\n    return fig\n\nvbt.save_animation(\"bbands.gif\", bbands.wrapper.index, plot, bbands, delta=90, step=3, fps=3)\n```\n\n```plaintext\n100%|██████████| 31\u002F31 [00:21\u003C00:00,  1.21it\u002Fs]\n```\n\n\u003Cimg width=\"750\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpolakowo_vectorbt_readme_2e77aa035024.gif\">\n\n这还只是冰山一角。访问 [网站](https:\u002F\u002Fvectorbt.dev\u002F) 以了解更多信息。\n\n## 应用程序\n\n### 蜡烛图形态（[这里](https:\u002F\u002Fgithub.com\u002Fpolakowo\u002Fvectorbt\u002Fblob\u002Fmaster\u002Fapps\u002Fcandlestick-patterns\u002F)）\n\n以交互方式探索蜡烛图形态信号，并使用 VectorBT 进行回测。\n\n[![teaser.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpolakowo_vectorbt_readme_1ba1388b4df4.png)](https:\u002F\u002Fgithub.com\u002Fpolakowo\u002Fvectorbt\u002Fblob\u002Fmaster\u002Fapps\u002Fcandlestick-patterns\u002F)\n\n## 链接\n\n* [网站](https:\u002F\u002Fvectorbt.dev\u002F)\n* [Docker 镜像](https:\u002F\u002Fhub.docker.com\u002Fr\u002Fpolakowo\u002Fvectorbt)\n* [Colab 笔记本](https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F1ibqyrf6LPFlzRb6mkPpl3hxqL6ryNBXI?usp=sharing)\n\n## 许可证\n\n本作品采用 [Fair Code](http:\u002F\u002Ffaircode.io\u002F) 协议，并根据 [Apache 2.0 with Commons Clause](https:\u002F\u002Fgithub.com\u002Fpolakowo\u002Fvectorbt\u002Fblob\u002Fmaster\u002FLICENSE.md) 许可证发布。\n\n源代码是开放的，个人和组织都可以免费使用。但是，您不得销售主要基于此软件的产品或服务。\n\n如果您有任何疑问或希望申请许可例外，请 [联系作者](mailto:olegpolakow@vectorbt.pro)。\n\n安装可选依赖项可能受更严格的许可证约束。\n\n## 星标历史\n\n[![星标历史图表](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpolakowo_vectorbt_readme_1214b99cb06d.png)](https:\u002F\u002Fstar-history.com\u002F#polakowo\u002Fvectorbt&Timeline)\n\n## 免责声明\n\n本软件仅用于教育目的。请勿使用您无法承受损失的资金进行交易。\n\n使用本软件的风险由您自行承担。作者及所有关联方对您的交易结果不承担任何责任。","# VectorBT 快速上手指南\n\nVectorBT 是一款基于 Python 的高性能量化回测与研究库，利用向量化运算和 Numba 加速，能够在秒级测试成千上万种交易策略。它原生支持 Pandas\u002FNumPy，非常适合进行多资产分析、参数扫描以及 AI 驱动的策略研发。\n\n## 环境准备\n\n*   **操作系统**：Windows、macOS 或 Linux\n*   **Python 版本**：3.8 及以上（推荐 3.9+）\n*   **核心依赖**：安装时会自动处理 `pandas`, `numpy`, `numba`, `plotly` 等依赖。\n*   **可选依赖**：若需使用技术指标库（如 TA-Lib）或更多数据源，建议安装完整版。\n\n> **国内加速提示**：推荐使用清华或阿里镜像源加速安装过程。\n\n## 安装步骤\n\n### 1. 基础安装\n仅安装核心功能，适用于大多数回测场景：\n\n```sh\npip install -U vectorbt -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n\n### 2. 完整安装（推荐）\n安装包含所有可选依赖（如额外数据源、高级绘图功能等）的版本：\n\n```sh\npip install -U \"vectorbt[full]\" -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n\n## 基本使用\n\nVectorBT 的核心优势在于用极少的代码完成复杂策略的回测。以下是三个典型场景：\n\n### 场景一：简单持有策略\n计算自 2014 年以来持有 100 美元比特币的收益：\n\n```python\nimport vectorbt as vbt\n\n# 下载数据\ndata = vbt.YFData.download(\"BTC-USD\")\nprice = data.get(\"Close\")\n\n# 构建投资组合并计算总利润\npf = vbt.Portfolio.from_holding(price, init_cash=100)\nprint(pf.total_profit())\n```\n\n### 场景二：双均线交叉策略\n实现经典的“金叉买入，死叉卖出”策略（10 日均线上穿 50 日均线）：\n\n```python\nimport vectorbt as vbt\n\ndata = vbt.YFData.download(\"BTC-USD\")\nprice = data.get(\"Close\")\n\n# 计算移动平均线\nfast_ma = vbt.MA.run(price, 10)\nslow_ma = vbt.MA.run(price, 50)\n\n# 生成信号\nentries = fast_ma.ma_crossed_above(slow_ma)\nexits = fast_ma.ma_crossed_below(slow_ma)\n\n# 回测并输出结果\npf = vbt.Portfolio.from_signals(price, entries, exits, init_cash=100)\nprint(pf.total_profit())\n```\n\n### 场景三：批量参数优化（热力图）\n一次性测试 10,000 组均线参数组合，并可视化总收益率热力图：\n\n```python\nimport numpy as np\nimport vectorbt as vbt\n\nsymbols = [\"BTC-USD\", \"ETH-USD\", \"XRP-USD\"]\ndata = vbt.YFData.download(symbols, missing_index=\"drop\")\nprice = data.get(\"Close\")\n\n# 生成参数组合 (2 到 100)\nwindows = np.arange(2, 101)\nfast_ma, slow_ma = vbt.MA.run_combs(price, window=windows, r=2, short_names=[\"fast\", \"slow\"])\n\n# 生成信号\nentries = fast_ma.ma_crossed_above(slow_ma)\nexits = fast_ma.ma_crossed_below(slow_ma)\n\n# 执行回测\npf = vbt.Portfolio.from_signals(price, entries, exits, size=np.inf, fees=0.001, freq=\"1D\")\n\n# 绘制热力图\nfig = pf.total_return().vbt.heatmap(\n    x_level=\"fast_window\", y_level=\"slow_window\", slider_level=\"symbol\", symmetric=True,\n    trace_kwargs=dict(colorbar=dict(title=\"Total return\", tickformat=\"%\")))\nfig.show()\n```\n\n### 查看详细统计与绘图\n你可以像操作 Pandas DataFrame 一样索引特定的策略配置，查看详细统计或绘图：\n\n```python\n# 查看特定参数 (快线 10, 慢线 20, 标的 ETH-USD) 的详细统计\nprint(pf[(10, 20, \"ETH-USD\")].stats())\n\n# 绘制该策略的资金曲线\npf[(10, 20, \"ETH-USD\")].plot().show()\n```\n\n---\n*免责声明：本软件仅供教育和研究用途。市场有风险，投资需谨慎。作者不对任何交易结果承担责任。*","一位量化研究员需要在周末前对比特币、以太坊等 50 种加密货币进行多参数策略回测，以筛选出具备超额收益的交易组合。\n\n### 没有 vectorbt 时\n- **回测速度极慢**：使用传统循环方式逐行处理数据，测试单个参数组合需数分钟，完成全市场扫描预计耗时数天，无法在截止日期前交付结果。\n- **代码复杂且易错**：手动编写状态机来管理持仓、计算滑点和手续费，逻辑冗长，稍有不慎就会引入“未来函数”导致回测失真。\n- **参数优化困难**：想要测试不同均线周期和止损比例的排列组合，需要嵌套多层循环，内存占用高且难以并行化，经常导致程序崩溃。\n- **可视化割裂**：回测结果与图表展示分离，每次调整策略后需重新运行绘图代码，无法即时直观地观察资金曲线和最大回撤变化。\n\n### 使用 vectorbt 后\n- **秒级完成全量回测**：利用 Numba 加速的向量化引擎，将原本数天的计算压缩至几秒钟，瞬间完成 50 种资产、上千组参数的暴力扫描。\n- **声明式策略构建**：通过简洁的 Pandas 风格 API 直接定义买卖信号，自动处理持仓跟踪和绩效统计，大幅降低代码量并消除逻辑漏洞。\n- **高效参数广播**：内置灵活的广播机制，轻松生成多维参数网格，一次性输出所有组合的夏普比率和胜率热力图，快速锁定最优区间。\n- **交互式即时反馈**：集成 Plotly 交互图表，只需一行代码即可生成动态仪表盘，随意缩放查看特定时间段的交易细节，极大提升分析效率。\n\nvectorbt 将量化研究员从繁琐的代码工程中解放出来，使其能专注于策略逻辑本身，真正实现“想法即验证”的高效迭代。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpolakowo_vectorbt_1ba1388b.png","polakowo","Oleg Polakow","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fpolakowo_bc0e33f2.jpg","@python, @datascience, @MachineLearning, @Trading",null,"https:\u002F\u002Fgithub.com\u002Fpolakowo",[82,86,90,94],{"name":83,"color":84,"percentage":85},"Python","#3572A5",99.8,{"name":87,"color":88,"percentage":89},"CSS","#663399",0.2,{"name":91,"color":92,"percentage":93},"Dockerfile","#384d54",0,{"name":95,"color":96,"percentage":93},"Procfile","#3B2F63",7070,906,"2026-04-04T03:05:23","NOASSERTION",1,"Linux, macOS, Windows","未说明",{"notes":105,"python":106,"dependencies":107},"该工具主要基于 CPU 进行向量化加速（使用 Numba），未明确要求 GPU。安装完整功能需使用 'pip install -U vectorbt[full]'。部分技术指标计算可能需要系统级安装 TA-Lib 库。许可证为 Fair-code (Apache 2.0 + Commons Clause)，禁止将本软件作为主要产品进行销售。","3.8+",[108,109,110,111,112,113,114,115,116],"pandas","numpy","numba","plotly","scipy","ta-lib (可选)","pandas-ta (可选)","ccxt (可选)","yfinance (内置数据源依赖)",[54,13,51],[119,120,121,122,123,124,125,126,127,128,129,130,131,132],"backtesting","trading","algorithmic-trading","trading-strategies","cryptocurrency","data-visualization","time-series","data-science","finance","machine-learning","portfolio-optimization","quantitative-finance","quantitative-analysis","algorithmic-traiding","2026-03-27T02:49:30.150509","2026-04-06T11:30:50.313763",[136,141,146,151,156,161],{"id":137,"question_zh":138,"answer_zh":139,"source_url":140},14290,"为什么 dashboard 显示的统计数据与 portfolio.stats() 输出的结果不一致？","这种差异通常是因为统计计算的范围或方法不同。维护者建议参考相关讨论（如 Issue #78），通常 dashboard 可能展示的是实时或部分数据，而 `portfolio.stats()` 提供的是完整的回测统计报告，包括已实现和未实现的指标。请确保比较的是同一时间段和相同计算逻辑下的数据。","https:\u002F\u002Fgithub.com\u002Fpolakowo\u002Fvectorbt\u002Fissues\u002F113",{"id":142,"question_zh":143,"answer_zh":144,"source_url":145},14291,"运行示例代码时遇到 'TypeError: No matching definition for argument type(s)' 错误怎么办？","这是一个已知的环境或版本兼容性问题。维护者已在主分支（master branch）中修复了该问题。解决方法是完全卸载并重新安装 vectorbt 库：\n1. 卸载：`pip uninstall vectorbt`\n2. 重新安装最新开发版：`pip install git+https:\u002F\u002Fgithub.com\u002Fpolakowo\u002Fvectorbt.git`\n重新安装后，README 中的示例代码应能正常运行。","https:\u002F\u002Fgithub.com\u002Fpolakowo\u002Fvectorbt\u002Fissues\u002F17",{"id":147,"question_zh":148,"answer_zh":149,"source_url":150},14292,"使用 TargetPercent 订单类型时，交易图表上的入场\u002F出场日期显示不正确怎么办？","这是由于默认统计方式包含了未平仓头寸导致的视觉混淆。大多数回测库仅统计已平仓交易的指标。vectorbt 在 v0.13.4 版本中增加了一个切换开关（toggle），允许用户选择仅统计“已实现”（realized-only）的交易数据。请升级库至 0.13.4 或更高版本，并在生成统计或绘图时启用该选项，以获得准确的入场和出场日期显示。","https:\u002F\u002Fgithub.com\u002Fpolakowo\u002Fvectorbt\u002Fissues\u002F31",{"id":152,"question_zh":153,"answer_zh":154,"source_url":155},14293,"from_random 策略生成方法与原始策略有什么关系？它是如何工作的？","`from_random` 方法用于生成随机策略以进行基准对比。它的核心逻辑是“洗牌”（Shuffling）：它会统计原始策略生成的入场和出场信号的总数量，然后在保持这些总数不变的前提下，随机打乱信号发生的时间点。这意味着生成的随机策略具有与原始策略相同的交易频率（概率），但具体的进出场时机是完全随机的，常用于验证原始策略是否具有超额收益能力。","https:\u002F\u002Fgithub.com\u002Fpolakowo\u002Fvectorbt\u002Fissues\u002F111",{"id":157,"question_zh":158,"answer_zh":159,"source_url":160},14294,"为什么纯做空（short only）组合在使用 size_type='percent' 时无法正常工作（份额流动为 0）？","这是一个在特定版本中存在的逻辑缺陷，导致在做空方向且使用百分比仓位大小时，系统未能正确计算份额流动（share_flow）。虽然具体修复代码未在片段中完全展示，但这属于库的内部逻辑错误。如果遇到此问题，建议：\n1. 检查是否已升级到最新版本，此类逻辑错误通常会在后续版本中修复。\n2. 临时变通方法是使用固定的份额大小（size_type='value' 或直接指定数量）而非百分比，或者手动计算做空所需的份额数量传入。","https:\u002F\u002Fgithub.com\u002Fpolakowo\u002Fvectorbt\u002Fissues\u002F131",{"id":162,"question_zh":163,"answer_zh":164,"source_url":140},14295,"内置的 vbt.RSI 指标输出结果与 TA-Lib 或 TradingView 不一致，原因是什么？","这种差异通常源于移动平均计算方式的不同。vectorbt 的 RSI 实现默认可能使用简单的移动平均（SMA），而 TradingView 或 TA-Lib 有时使用指数移动平均（EMA）或其他平滑方式。尝试将 `ewm` 参数设置为 `True`（即 `vbt.RSI.run(close, window=14, ewm=True)`），这会使计算基于指数加权移动平均，结果通常会与主流平台更接近。如果仍有细微差别，可能是初始值处理或舍入精度的差异。",[166,171],{"id":167,"version":168,"summary_zh":169,"released_at":170},81043,"v0.28.5","## 变更内容\n* 由 @wavebyrd 在 https:\u002F\u002Fgithub.com\u002Fpolakowo\u002Fvectorbt\u002Fpull\u002F832 中修复了在 pandas 2.x 版本下 Styler.render() 方法引发的 AttributeError。\n* 由 @ChadThackray 在 https:\u002F\u002Fgithub.com\u002Fpolakowo\u002Fvectorbt\u002Fpull\u002F835 中添加了绘图相关的回归测试。\n* 修复：对于分组投资组合，gross_exposure() 方法现在使用 abs(asset_value) 来计算总敞口，该修复由 @coryvirok 在 https:\u002F\u002Fgithub.com\u002Fpolakowo\u002Fvectorbt\u002Fpull\u002F837 中完成。\n\n## 新贡献者\n* @wavebyrd 在 https:\u002F\u002Fgithub.com\u002Fpolakowo\u002Fvectorbt\u002Fpull\u002F832 中完成了首次贡献。\n* @coryvirok 在 https:\u002F\u002Fgithub.com\u002Fpolakowo\u002Fvectorbt\u002Fpull\u002F837 中完成了首次贡献。\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fpolakowo\u002Fvectorbt\u002Fcompare\u002Fv0.28.4...v0.28.5","2026-03-26T22:17:22",{"id":172,"version":173,"summary_zh":174,"released_at":175},81044,"v0.28.4","## 变更内容\n* 由 @polakowo 在 https:\u002F\u002Fgithub.com\u002Fpolakowo\u002Fvectorbt\u002Fpull\u002F297 中开发\n* 由 @haxdds 在 https:\u002F\u002Fgithub.com\u002Fpolakowo\u002Fvectorbt\u002Fpull\u002F310 中添加 AlpacaData 自定义数据源\n* 由 @forLinDre 在 https:\u002F\u002Fgithub.com\u002Fpolakowo\u002Fvectorbt\u002Fpull\u002F417 中修改 utils 模块中的 'datetime_.py' 文件里的 'to_timezone' 函数\n* 由 @izikeros 在 https:\u002F\u002Fgithub.com\u002Fpolakowo\u002Fvectorbt\u002Fpull\u002F500 中将示例笔记本中使用的额外包移至单独的 requirements 文件\n* 修复：from_signals 中 size_granularity 不生效的问题，由 @manhinhang 在 https:\u002F\u002Fgithub.com\u002Fpolakowo\u002Fvectorbt\u002Fpull\u002F533 中修复\n* 更新 _settings.py 文件以适配 Seaborn，由 @Kalindro 在 https:\u002F\u002Fgithub.com\u002Fpolakowo\u002Fvectorbt\u002Fpull\u002F552 中完成\n* 修复 custom.py 文件中的一个小拼写错误，由 @FrankTianTT 在 https:\u002F\u002Fgithub.com\u002Fpolakowo\u002Fvectorbt\u002Fpull\u002F701 中完成\n* 杂项：修复注释中的部分错别字，由 @hidewrong 在 https:\u002F\u002Fgithub.com\u002Fpolakowo\u002Fvectorbt\u002Fpull\u002F702 中完成\n* 更新 LICENSE.md 文件，修正版权许可年份，由 @JasonnnW3000 在 https:\u002F\u002Fgithub.com\u002Fpolakowo\u002Fvectorbt\u002Fpull\u002F762 中完成\n* 由 @polakowo 创建 scorecard.yml 文件，见 https:\u002F\u002Fgithub.com\u002Fpolakowo\u002Fvectorbt\u002Fpull\u002F794\n* 修复：datetime_to_ms 测试失败的问题，由 @ChadThackray 在 https:\u002F\u002Fgithub.com\u002Fpolakowo\u002Fvectorbt\u002Fpull\u002F818 中修复\n* 修复：移除 value_counts(sort_uniques=False) 相关测试，由 @ChadThackray 在 https:\u002F\u002Fgithub.com\u002Fpolakowo\u002Fvectorbt\u002Fpull\u002F819 中完成\n* 修复：将 anywidgets 添加到基础依赖项中，由 @ChadThackray 在 https:\u002F\u002Fgithub.com\u002Fpolakowo\u002Fvectorbt\u002Fpull\u002F820 中完成\n* 迁移到 pyproject.toml，支持 pandas 2.0 并提升与新 Python 版本的兼容性，由 @ChadThackray 在 https:\u002F\u002Fgithub.com\u002Fpolakowo\u002Fvectorbt\u002Fpull\u002F824 中完成\n\n## 新贡献者\n* @haxdds 在 https:\u002F\u002Fgithub.com\u002Fpolakowo\u002Fvectorbt\u002Fpull\u002F310 中完成了首次贡献\n* @forLinDre 在 https:\u002F\u002Fgithub.com\u002Fpolakowo\u002Fvectorbt\u002Fpull\u002F417 中完成了首次贡献\n* @izikeros 在 https:\u002F\u002Fgithub.com\u002Fpolakowo\u002Fvectorbt\u002Fpull\u002F500 中完成了首次贡献\n* @manhinhang 在 https:\u002F\u002Fgithub.com\u002Fpolakowo\u002Fvectorbt\u002Fpull\u002F533 中完成了首次贡献\n* @Kalindro 在 https:\u002F\u002Fgithub.com\u002Fpolakowo\u002Fvectorbt\u002Fpull\u002F552 中完成了首次贡献\n* @FrankTianTT 在 https:\u002F\u002Fgithub.com\u002Fpolakowo\u002Fvectorbt\u002Fpull\u002F701 中完成了首次贡献\n* @hidewrong 在 https:\u002F\u002Fgithub.com\u002Fpolakowo\u002Fvectorbt\u002Fpull\u002F702 中完成了首次贡献\n* @JasonnnW3000 在 https:\u002F\u002Fgithub.com\u002Fpolakowo\u002Fvectorbt\u002Fpull\u002F762 中完成了首次贡献\n* @ChadThackray 在 https:\u002F\u002Fgithub.com\u002Fpolakowo\u002Fvectorbt\u002Fpull\u002F818 中完成了首次贡献\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fpolakowo\u002Fvectorbt\u002Fcompare\u002Fv0.21.0...v0.28.4","2026-01-26T17:10:16"]