先能用一句话解释收益来源
说不清钱从哪来,就不许进入回测优化,更不许谈论实盘。

- 回测使用真实可成交的 bid/ask,不用中间价假装成交。
- 手续费、滑点、资金费率、借贷成本和失败订单全部计入。
- 每个策略都要和“持稳定币”“买入持有”比较。
- 不删除亏损时期,不用未来数据优化过去参数。
- 参数搜索和最终测试必须切开时间区间。
最小账本必须能算出总权益
总权益 = 现金 + 现货可卖价值 + 合约未实现盈亏 - 未计费用
净收益 = 期末总权益 - 净入金还要记录:现货成本、合约均价、已实现盈亏、冻结余额。不要只记订单。
回测最常在这些地方撒谎
前视用当时尚未知的数据做决策。
幸存者只研究现在还活着的币和平台。
成交假设触价即全量成交。
过拟合试了很多参数,只报告最好的那组。
费用低估忽略 spread、滑点、费率等级和提现。
容量小额有效不代表大额仍能成交。
数据层最低要求
时间戳与服务器时间、tick/step/最小名义、bid/ask/深度、标记价与指数价、资金费率、交割规则、费率等级。还要处理断线、缺口、重复、乱序、限频和时钟偏差。
指标要能回答“最坏会怎样”
收益总收益、年化,但必须标注样本长度。
回撤最大回撤和恢复时间。
分布波动率、最坏单日、连续亏损。
摩擦成交次数、换手、费用占毛利比例。
基准相对稳定币和持币的超额。
资金极端场景下的最大资金需求。
运行三天赚 0.2% 再乘 365,没有决策价值。
保持小到能对账
- Python 做研究、数据和回测。
- TypeScript 做 API、实时服务和看板。
- SQLite 足够第一版。
- 价格和数量用 Decimal,不用二进制浮点做资金计算。
- 单进程、单交易所、单策略。
完成证据
用真实历史 bid/ask 回放一天,输出总权益曲线,并列出你主动避免的至少两种偏差。截图界面收益不算证据。
课末自测
为什么已实现网格利润为正,仍可能说明策略在亏钱?
信心