OctoBot 项目研究站 · 回测与模拟盘
OctoBot 回测与模拟盘:先用假钱把策略跑一遍
OctoBot 自带两个验证工具:内置回测引擎(用模拟组合和历史交易所数据在较长区间上测试策略)与模拟盘 paper trading(用真实行情、假资金跑)。官方 README 里有一条容易被忽略的限制——回测只在手动(manual)OctoBot 实例中可用。这一页讲清两者的差别、各自能回答什么,以及从回测走到实盘前该确认哪些事。
OctoBot 的回测和模拟盘有什么区别:先分清它们
一个跑历史、一个跑现在,OctoBot 里这两件事回答的问题不一样。
| 对比项 | 内置回测引擎 | 模拟盘 paper trading | 注意点 |
|---|---|---|---|
| 时间轴 | 历史区间回放 | 当下真实行情 | 两者互补:一个看长期,一个看实时 |
| 资金 | 模拟组合 | 假资金(README 称 risk-free) | 都不动用真实资金 |
| 数据来源 | 历史交易所数据 | 实时行情与订单簿状态 | 回测受历史数据质量影响 |
| 可用实例 | ⚠️ README 明确「仅手动 OctoBot 可用」 | README 未加此限制 | 这条限制直接影响你选 node 模式还是手动实例 |
| 数据持久化 | Docker 部署时 /octobot/backtesting 是独立数据卷 | 随运行数据存放 | 不挂卷则回测结果随容器删除丢失 |
| 典型用途 | 参数取舍、策略形态验证 | 链路连通性、下单行为观察 | 都不能替代对风险的理解 |
| 本站立场 | 只说明机制与边界,不引用任何收益/回撤数字 | 同上 | 官方仓库中的回测报告截图含具体数字,本站不复制也不引用 |
OctoBot 回测能回答什么、不能回答哪些问题
把 OctoBot 的回测当成筛选工具,而不是结论机器。
| 问题 | 回测能回答吗 | 说明 | 本站立场 |
|---|---|---|---|
| 参数 A 与参数 B 哪个在历史区间里更稳 | 能对比 | 官方称回测可给出过往表现与行为,用来在实盘前挑出更合适的版本 | 只描述能力,不提供任何参数建议 |
| 策略在未来是否赚钱 | 不能 | 回测基于历史数据与假设,市场结构会变 | 本站不发布任何收益承诺或预测 |
| 回测结果能否直接等于实盘 | 不能 | 手续费、滑点、滑移、限频、成交深度都会造成差异 | 建议把回测当筛选,实盘小额验证 |
| 过拟合是否能被发现 | 部分可以 | 换样本期、换标的再跑一遍,看是否同样稳定 | 多做几组对照是用户自己的功课 |
| 极端行情下的表现 | 取决于历史样本是否包含类似阶段 | 样本期太短会系统性低估尾部风险 | 官方免责声明同样强调风险自担 |
| 程序本身的 bug 是否能被回测发现 | 不一定 | 回测与实盘走的是不同执行路径 | 仓库有单元/功能测试与 CI,但没有实盘等价性证明 |
跑 OctoBot 回测前要做哪些准备:顺序与检查点
界面与命令随版本变化,这里给的是可核对的顺序与检查点。
确认实例形态
回测只在手动(manual)OctoBot 实例中可用。若你默认跑的是 node 模式,需要另外起一个 manual 实例(README 说明可从 node 界面启动 manual 实例)。
准备历史数据
回测需要历史交易所数据。Docker 部署时把
/octobot/backtesting挂成数据卷,避免结果与数据随容器删除而丢失。选定策略与交易对
在界面里选模式(网格/DCA/篮子/TradingView/AI)与交易对,填参数。参数越多越要记清楚基线,否则无法解释结果差异。
跑回测并记录配置
回测会给出过往表现与行为指标。建议把「参数组合 + 区间 + 标的」记录下来,便于对照;官方 README 未承诺任何指标阈值。
切到模拟盘再看一段
用同样的参数在 paper trading 里跑一段实时行情,观察下单、撤单、限频在真实环境下的表现。这一步用于发现回测覆盖不到的链路问题。
从 OctoBot 回测到实盘,要先检查哪些项
官方免责声明要求先跑模拟模式,下面是把它落到具体动作上。
| 检查项 | 怎么做 | 为什么要做 | 风险点 |
|---|---|---|---|
| 样本期是否覆盖不同行情 | 至少包含上涨、下跌与震荡三类阶段 | 单一趋势下表现好不代表稳健 | 样本期越短,尾部风险越被低估 |
| 是否考虑手续费与滑点 | 在回测里确认相关设置项;不同所费率差异很大 | 高频动作(如网格)对费率极敏感 | 忽略成本会系统性高估结果 |
| API Key 权限最小化 | 只开读与交易,不提现 | 限制泄露后果 | 权限越大,出错与泄露代价越高 |
| 仓位与资金上限 | 先用可承受损失的小资金 | 程序缺陷与极端行情都可能放大亏损 | 官方免责声明:不要投入你怕亏掉的钱 |
| 监控与止损预案 | 确认日志、通知与手动停机方式 | 实盘需要人能在异常时介入 | 无人值守的自动化在极端行情下风险集中 |
| 版本与更新策略 | 决定是否启用自动更新(如 watchtower) | 版本切换可能改变行为 | 当前最新版是 beta,是否跟随需自己决定 |
OctoBot 回测记录模板:哪些字段必须留档
本站没有运行 OctoBot,也没有生成可引用的回测结果。下表是用户自己做实验时应记录的复现字段,不能用空缺字段或单次结果包装成收益结论。
| 记录项 | 要填写的内容 | 为什么必要 | 缺失时的限制 |
|---|---|---|---|
| 软件版本与实例形态 | OctoBot release/commit、manual 或 node、Tentacles 版本 | 版本和实例会影响策略与回测可用性 | 无法复现运行环境;回测需确认 manual 实例 |
| 策略、交易所与标的 | 模式名称、交易所、现货/合约、交易对/篮子成分 | 不同市场和标的不能直接横向比较 | 结果适用范围不明,不可外推到其他市场 |
| 数据与时间范围 | 数据来源、起止时间、K 线周期、缺失数据处理 | 决定样本覆盖的行情阶段与数据质量 | 不能判断是否只挑了有利样本;需说明数据源口径 |
| 资金、费用与参数 | 初始模拟资金、手续费档位、滑点假设、全部策略参数 | 高频策略对费用敏感,参数决定订单行为 | 未计费用的数值不等同净表现;本站不建议具体参数 |
| 结果指标与基准 | 报告原始输出、交易次数、回撤类指标、对照基准及计算口径 | 单看累计收益无法说明风险和机会成本 | 只描述观察值,不代表未来;没有相同区间基准就不能归因 |
| 异常与复现步骤 | 日志、断线/限频、重跑步骤、配置文件与随机/时间边界 | 识别运行失败、数据中断或偶然结果 | 异常未披露会让结果失去解释力,应标记未完成而非补造数据 |
| 常见误区 | 为什么有问题 | 更稳妥的做法 | 注意点 |
|---|---|---|---|
| 只展示表现更佳的区间 | 样本选择偏差,等于事后挑数据 | 覆盖上涨、下跌与震荡阶段,并公布完整区间 | 不公布区间与数据的结论无法复核 |
| 忽略手续费与滑点 | 系统性高估结果,动作越频繁偏差越大 | 按实际费率与可承受的成交假设设置,再做敏感性对比 | 不同交易所与账户档位费率不同 |
| 把回测当未来预测 | 历史区间不代表未来市场结构 | 把回测当筛选工具,再走模拟盘与小额观察 | 回测结果不代表未来收益,不构成投资建议 |
| 参数越多越精准 | 过拟合风险上升,换个区间就失效 | 减少参数数量,换样本期与标的再跑一遍复核稳定性 | 多项参数同时调优时很难判断哪个真正起作用 |
| 在 node 形态里找内置回测 | 官方明确回测只在手动(manual)实例可用 | 另起一个 manual 实例专门做参数验证 | 这是形态限制,不是配置错误 |
| 回测通过就立刻实盘 | 回测与实盘执行路径不同,限频、断线与部分成交都会被漏掉 | 先模拟盘,检查订单状态、日志与重连行为,再用可承受的小额 | 官方免责声明要求风险自担,并建议先跑模拟模式 |
OctoBot 回测与模拟盘常见问题:怎么用、能不能上实盘
为什么我在 node 模式里找不到回测?
因为官方 README 明确写出「回测只在手动(manual)OctoBot 中可用」。node 模式是 3.0 的新形态,回测仍归手动实例;可以从 node 界面启动一个 manual 实例来做回测。
回测结果能直接指导实盘吗?
能作为筛选依据,但不能当作未来表现的证据:历史数据、手续费与滑点假设、样本期选择都会影响结果。官方免责声明也要求自负盈亏、先跑模拟模式。本站不提供任何策略有效性结论。
模拟盘和「真实行情」是一回事吗?
模拟盘用真实行情但不动真实资金,因此能验证链路与下单行为;但它仍然无法复现真实成交深度、部分成交与极端流动性下的滑点。它减少的是资金风险,不是全部风险。
回测数据存在哪?
Docker 部署中 /octobot/backtesting 是显式的数据卷,专门用于存放回测数据与结果;本地部署则落在你的数据目录里。把它挂出来,重装容器后历史回测结果才不会丢。
能回测 TradingView 与 AI 这两类模式吗?
README 只说明内置回测引擎可用于测试与优化策略,并强调其仅限手动实例,没有逐模式说明外部信号类是否可完整回放。是否支持以你的实际版本与官方文档为准,本站未做实测。
回测跑得好就一定能上实盘吗?
不等于。回测是筛选环节之一,之后还要经过模拟盘与小额实盘观察;程序缺陷、限频、交易所侧规则变化都可能让实盘表现与回测不同。这也是官方反复强调风险自担的原因。