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 回测与模拟盘常见问题:怎么用、能不能上实盘
为什么我在 node 模式里找不到回测?
因为官方 README 明确写出「回测只在手动(manual)OctoBot 中可用」。node 模式是 3.0 的新形态,回测仍归手动实例;可以从 node 界面启动一个 manual 实例来做回测。
回测结果能直接指导实盘吗?
能作为筛选依据,但不能当作未来表现的证据:历史数据、手续费与滑点假设、样本期选择都会影响结果。官方免责声明也要求自负盈亏、先跑模拟模式。本站不提供任何策略有效性结论。
模拟盘和「真实行情」是一回事吗?
模拟盘用真实行情但不动真实资金,因此能验证链路与下单行为;但它仍然无法复现真实成交深度、部分成交与极端流动性下的滑点。它减少的是资金风险,不是全部风险。
回测数据存在哪?
Docker 部署中 /octobot/backtesting 是显式的数据卷,专门用于存放回测数据与结果;本地部署则落在你的数据目录里。把它挂出来,重装容器后历史回测结果才不会丢。
能回测 TradingView 与 AI 这两类模式吗?
README 只说明内置回测引擎可用于测试与优化策略,并强调其仅限手动实例,没有逐模式说明外部信号类是否可完整回放。是否支持以你的实际版本与官方文档为准,本站未做实测。
回测跑得好就一定能上实盘吗?
不等于。回测是筛选环节之一,之后还要经过模拟盘与小额实盘观察;程序缺陷、限频、交易所侧规则变化都可能让实盘表现与回测不同。这也是官方反复强调风险自担的原因。