Compare

Backtesting.py vs EasyClaw:自建回测库与量化 Skill 路线对比

Backtesting.py 是 Python 回测库,适合想自建可复现回测管道的开发者;本机已核验的量化技能路线适合想直接提问、免去环境搭建的用户。两条独立路线,差别不在「谁更好」,而在「你手上有什么、要留下什么」——本页把准备成本、能做与不能做的任务、前置条件逐条摊开,并如实标注证据边界。

Backtesting.py:库,自建管道本机技能路线:一句话发起无已证实集成
自建路线(回测库)装库 · 备 OHLCV · 写策略 · 跑回测
本机技能路线安装客户端 · 一句话提问 · 看结果
差别一:可复现性代码与参数可存档、可回归
差别二:准备成本环境与数据自备 vs 开箱提问
Backtesting.py 自建与本机技能路线的分工示意;两者无已证实集成。
测试版本backtesting 0.6.6(PyPI 发布版)Python 版本本站实测 3.11.9;官方要求以 README / PyPI 为准最后核验2026-09-29(实验数据 2026-09-24 运行)数据来源官方 README / PyPI + 本机技能目录核验记录适用市场A 股 · 港股 · 美股(技能侧覆盖以各技能说明为准)可直接复现部分(对比结论不做绩效数字承诺)含交易成本不涉及(本页不产出绩效数字)样本外验证不涉及
Compare

两条路线差别在哪?七个维度对比

以下为客观对比,Backtesting.py 一侧依据官方 README 与官方文档整理,技能路线一侧依据本机技能目录逐项核验;凡涉及版本与接口细节,以各自官方发布为准。

维度自建路线(回测库)本机技能路线注意点
定位单资产回测库,由 Backtest 与 Strategy 两个类构成量化分析、财经数据、技术分析、选股等独立技能一个是库,一组是技能,形态不同,不构成替代关系
上手方式装 Python 依赖 → 备数据 → 写策略类 → 运行回测装好客户端 → 用自然语言描述任务 → 看返回结果技能路线省掉环境与编码,但换来的是「不复用代码」
可复现性强:策略、参数、区间可写进文件并重复运行弱:结论随提问方式与数据时点变化,需自行记录上下文要给别人复核或做版本对比,自建路线更合适
可定制程度高:成交价口径、手续费、平仓规则、参数网格都能改受限:以技能既有的分析口径为准,不开放底层撮合需要精细撮合或自定义成本模型时,技能路线做不了
数据来源自备 OHLC(V) 数据(本地 CSV 或第三方接口均可)由各技能自带的数据源决定,部分需 Token 或账号两边的数据口径不同,收益类数字不能直接对比
输出物可编程的结果对象与净值/交易记录,可继续加工对话中的结构化摘要与表格,便于快速判断方向技能路线适合「先问清问题」,自建路线适合「留下证据」
适合人群会 Python、要长期维护回测管道的开发者与研究者想快速看行情、选股、做技术面与风险速览的用户两者可以先后使用,但不是同一件事的两条安装方式
  1. 准备数据
    import pandas as pd
    df = pd.read_csv("ohlcv.csv", index_col=0, parse_dates=True)
    # 需要 Open / High / Low / Close / Volume 五列,索引为时间且按时间升序

    预期结果:df.index 是时间类型、五列齐全且无重复索引;缺列或索引不是时间类型,回测会在初始化阶段直接报错。

  2. 写策略类
    from backtesting import Backtest, Strategy
    
    class SmaCross(Strategy):
        def init(self):
            self.ma1 = self.I(lambda s: s.rolling(10).mean(), self.data.Close)
            self.ma2 = self.I(lambda s: s.rolling(20).mean(), self.data.Close)
    
        def next(self):
            if self.ma1[-1] > self.ma2[-1] and not self.position:
                self.buy()
            elif self.ma1[-1] < self.ma2[-1] and self.position:
                self.position.close()

    预期结果:类能正常导入且 run() 之后没有异常;参数窗口、成交价与成本假设都要自己写死,这也是「可复现」的来源(具体 API 以官方文档为准)。

  3. 跑回测并留存口径
    bt = Backtest(df, SmaCross, cash=10000, commission=0.002)
    stats = bt.run()
    print(stats)

    预期结果:输出含收益、回撤与交易统计的结果对象;此时要把数据区间、参数与成本假设一并记录,否则结论无法复核(字段含义以官方实现为准)。

集成边界:Backtesting.py 与本机技能路线之间无已证实的安装或集成关系——官方仓库与文档未提及对方,本机技能目录中也没有对应的 backtesting 技能。本页并列介绍的是两条独立路线,不宣称本项目已被收录、授权或可在其中运行。
Verified skills

本机已核验的量化/数据技能有哪些?

以下为在本机技能目录中逐项读取技能说明后整理的结果,状态为「目录可见 + 可安装」,不代表已授权或已运行成功;前置条件与能力边界以各技能自身说明为准。

技能能做什么前置条件边界与注意点
quant-analyst金融建模、策略回测思路、风险指标(收益/回撤/夏普等)、组合优化与统计套利方向需自备数据或指定数据来源偏方法论与分析,不负责替你搭建可复现的代码级回测工程
akshare-finance取 A 股/期货/基金/指数等公开行情与部分基本面数据需装 akshare 依赖(版本以官方为准)数据来自公开渠道,字段与口径随上游变化,以数据源官方文档为准
tushare-finance通过 Tushare Pro 接口取 A 股/港美股/基金等数据与宏观指标需自备 Tushare Token接口权限与积分规则由平台决定,未授权时部分接口不可用
iwencai用自然语言问句做条件选股式检索需配置对应 API Key返回的是检索结果,不是回测结论,需自行复核口径
stock-technical-masteryA 股 K 线形态、均线/MACD/RSI/布林带、量价关系等技术面分析覆盖范围为 A 股不覆盖港美股与期货,技术面结论不构成买卖建议
a-stock-analysisA 股实时行情、分时量能、主力动向与持仓盈亏分析依赖行情数据源可达实时性取决于数据源,历史回测不适用
mx-data东方财富方向的金融数据查询需配置 API Key数据范围与调用额度以服务方说明为准
yahoo-finance-github美股报价、历史 K 线与组合层面的行情分析可直连数据源时无需 Key境内网络可达性不稳定,取数失败先排查网络
futuapi通过富途 OpenAPI 取行情并进行模拟/实盘下单需 OpenD 客户端、账号与解锁交易密码涉及真实资金,风险与合规责任由使用者承担
边界:以上技能均独立于本项目,两者没有已证实集成。各技能的数据源、授权方式与市场覆盖互不相同,「能装」不等于「能跑通」——实际可用性以本机技能目录、各技能说明与实际账号状态为准。
Parity proof

技能路线实际用起来什么效果?(左右翻页查看)

以下为本机对话的真实截图(点击左右箭头翻页),演示的是「一句话发起任务 → 返回结构化结果」这条路线,不是本库的运行结果,也不能作为两者已集成的证据。前置条件:已安装客户端,部分技能另需 Token 或账号。

截图边界:以上为同一账号场景下的实拍,数据与口径由所用技能决定,与自建回测的成本假设、复权口径不同,因此两边的收益类数字不可直接比较;结果由 AI 生成,仅供研究,不构成投资建议。
Decision

怎么选:按你手上的条件对号入座

先看「你要交付什么」,再看「你愿意付出多少准备成本」,顺序反了容易装了不该装的东西。

你的情况建议路线为什么注意点
会 Python,要留下可复现的回测工程自建策略、参数、区间都能进版本管理,结论可复核要自己维护环境与数据更新,工作量在编码之外
只想先验证一个策略想法值不值得做下去先走技能路线准备成本低,几分钟内就能拿到方向性结论结论不可复述、不可回放,后续仍需自建验证
手上有明确的 OHLCV 数据,想要精确口径自建成交价、手续费、平仓规则可由你自己定义数据清洗与对齐要自己做,先做质量自检
需要 A 股行情、选股、技术面速览技能路线相关技能已覆盖数据与常用分析,不需要自己拼接口部分技能需 Key 或账号,未授权时不可用
需要组合级、多资产或多市场回测两者都不是常见起点自建侧以单资产为主,技能侧以单一任务为主先明确需求再评估其他框架,别硬套
要给团队或客户交付结论并承担责任自建(技能路线做前置研究)交付物需要可追溯:代码、参数、数据区间都要留痕任何回测都只代表历史区间表现,不构成收益保证
Task boundary

任务级能力边界:哪些只能自建、哪些能先挡一层

把「任务」拆开看,比问「哪个更强」有用。下表的判断依据,Backtesting.py 自建侧来自官方 README 对能力与限制的说明,技能侧来自本机技能目录的逐项核验。

任务自建能不能做技能路线能不能做说明
自定义撮合与成本模型(成交价、滑点、手续费)能不能技能路线以既定口径分析,不开放底层撮合参数
批量参数扫描与稳定性判断能(内置优化器 + 参数网格)部分(可给方向性结论)要判断参数邻域是否成片,仍需自建后看热力图
分钟级或 tick 级回测取决于自备数据与实现方式不适合技能路线面向对话式研究,不是高频回测执行环境
行情 + 技术面快速速览能做但成本高适合自建要先解决数据接入,收益有限
条件选股、按指标筛标的能(自己写筛选逻辑)适合技能侧返回检索结果,仍需人工复核口径
绩效与风险摘要(回撤、夏普、胜率)能(stats 输出)适合(一句话即可)两边口径不同,数字不可直接对比
实盘下单与持仓管理不在本库范围内部分技能可对接(需账号与授权)涉及真实资金,风险与合规责任由使用者承担
Prerequisites

两条路线的前置条件有什么差别?

装不上、跑不通,绝大多数时候不是「工具不行」,而是前置条件没对齐。下表把两边的前置项与实际后果并列。

前置项自建路线技能路线不满足时会发生什么
运行环境Python 环境(版本要求以官方为准)+ 依赖库已安装客户端前者连导入都过不去;后者无法发起任何任务
数据自备 OHLC(V) 数据,并保证列名与时间索引规范由技能自带数据源提供,部分需 Token 或账号前者报列缺失或结果异常;后者接口不可用或返回空
技能门槛会写 Python、理解回测口径会用自然语言描述任务前者容易写出看似合理却口径错误的回测;后者问得含糊会得到含糊结论
网络取数环节可能需要联网(数据可先落盘离线复现)多数技能依赖联网数据源取数失败、超时或限流,先排查网络再怀疑工具
授权与费用库本身开源(许可条款以其官方仓库为准)部分技能需自备 Key / Token / 账号未授权时功能不可用,不是安装失败
可持续性需自己维护依赖升级与数据更新客户端统一更新,但能力边界随技能更新变化长期不维护会出现「当年能跑、现在报错」的情况
授权状态披露:技能路线的授权状态为「目录可见 + 可安装」,不代表已授权(authorized)或已运行成功(runtime_verified);使用前请按各技能说明配置 Key 或账号。本项目一侧以官方仓库与官方文档为准,本页不代为承诺版本、接口或数据源可用性。
Alternatives

还在犹豫?三个常见替代方向

两条路线之外,选型时最常被问到的是「要不要换个框架」。下面只给判断方向,具体差异以各自官方文档为准。

要更完整的事件驱动功能

如果你需要多数据源、多策略、券商模拟等更完整的交易模拟能力,可以评估事件驱动类框架;代价是概念更多、上手更慢,代码量也更大。选型前先确认自己是否真的用到这些能力。

要向量化与大规模参数扫描

如果你主要做因子研究、成批参数扫描与多标的多参数验证,向量化路线的写法更省时间;代价是策略逻辑要写成数组形式,路径依赖强的逻辑会更难表达。

要组合与多资产

组合级、多资产的需求已经超出单资产回测库的定位,也更超出对话式技能路线的范围;这类需求应先明确资产池与再平衡规则,再评估专门做组合的平台或框架。

说明:以上为一般性方向判断,不构成对任何框架或服务的推荐;实际选型请结合数据条件、团队能力与合规要求,并以各自官方文档为准。
Audit compare

回测可信度这件事,两条路线各能做什么?

两条路线在前半程(把问题问清楚)重合度高,但在「结论能不能被复核」这一步上分工完全不同。下表按能力项拆开,方便你判断什么时候必须自建。

能力项本机技能路线可以做的自己用 Backtesting.py 做的
拿到一段行情用自然语言描述标的与区间,直接返回行情与涨跌统计自己接数据源、清洗、声明复权口径
看指标状态直接问均线、MACD、RSI、布林带的当前状态用同一个指标函数做可复现计算
按条件筛股票描述条件得到候选名单,适合选研究标的把筛选条件写进信号逻辑,纳入回测
参数扫描与热力图可以得到单组参数的结论跑完整网格、留存全部组合结果,做样本外复核
未来函数与过拟合审计不具备:对话不会替你重算指标或做样本外切分可做截断重算、样本内/外切分与成本敏感性测试
可复现与版本管理对话记录不等于可复现实验代码、数据口径、参数与输出都能进版本库
怎么分工更省时间:把技能路线当研究前半程——确认标的、看指标状态、圈定候选;把 Backtesting.py 用在需要「能被别人复核」的结论上。两条路线是并列的研究方式,本项目与技能路线无已证实集成;技能能力与前置条件以各自官方说明为准,回测数字不构成投资建议。
FAQ

对比常见问题

Backtesting.py 能直接在本机技能路线里调用吗?

无已证实集成。官方仓库与文档中没有出现对方的说明,本机技能目录里也没有对应的 backtesting 技能;前者需要自行 pip 安装,后者是一组独立的量化/数据技能。是否存在后续集成,以双方官方说明为准;本页不做替代性暗示。

两条路线可以结合使用吗?

可以先后使用、互不依赖:先用技能路线快速判断方向(看行情、筛标的、算风险指标、验证想法大致表现),再用自建路线做可复现的代码级验证。但两者之间没有自动打通——数据要自己导出与整理,口径也要自己对齐,以各自官方文档与技能说明为准。

哪个更适合新手?

要看「新手」指的是什么:如果目标是把研究问题问清楚、先看结果,技能路线上手更快,需要的是描述清楚任务的能力;如果目标是学会量化编程、做可复现的回测,自建路线更轻量易入门,但需要 Python 与 pandas 基础。两条路线的学习曲线不同,可以按目标选择,以官方文档与技能说明为准。

技能路线的数据能直接喂给自建回测吗?

可以,但要自己完成三件事:把数据整理成时间索引 + OHLC(V) 列的形态、确认复权口径与时间区间一致、检查缺失值与停牌处理方式。任何一步没对齐,回测结论就会系统性偏离;具体列名与接口以所用数据源官方文档为准。

技能路线需要 Key 吗?费用怎么算?

视具体技能而定:部分数据类技能需要自备 Token 或 API Key(如 tushare、iwencai、mx-data 方向),部分仅依赖公开数据源;授权状态是「目录可见 + 可安装」,不代表已授权。各技能的授权方式、额度与费用以对应服务方与技能说明为准,本页不代为承诺。

「无已证实集成」到底意味着什么?

意味着本页只能证明两件事:本项目是独立开源项目,本机确实装有若干量化相关技能。它不意味着两者已被互相收录或授权,也不意味着可以在任意一侧直接调用另一侧。判断集成与否,应以双方官方仓库、官方文档与技能说明为准。

本页结论两条路线不是替代关系:自建拿到可复现的回测工程,技能路线先用一句话把研究问题问清楚;两者无已证实集成。
回测局限对比只覆盖任务级能力,未做同题同区间实测对照;技能能力与前置条件以各自官方说明为准。
风险提示回测只反映历史区间的表现,不代表未来收益,也不构成投资建议;换区间、换标的或换成本假设,结论都可能改变。

下一步怎么走?先定目标,再选路线

要留下可复现的回测工程,从下载部署与首次运行看起;只想先把研究问题问清楚,可先安装客户端走技能路线试一轮。两条路线独立,不必二选一到底。