回测与模拟交易

策略写好后,回测是验证逻辑的第一道关。米筐支持日、分钟、tick 三级回测频率,并提供实时模拟交易。本章讲清楚回测怎么配、撮合怎么工作、风险指标怎么看,以及如何从回测平滑过渡到模拟盘。

一、回测基本配置

在策略编辑页右侧设置核心参数:

参数说明
开始/结束日期回测区间,结束日期超过今天则自动用最后一天历史数据
起始资金股票/期货初始资金,混合策略可分别设置
回测频率1d 日回测、1m 分钟回测、tick 级回测(企业版)
基准合约默认沪深 300 指数 000300.XSHG,用于对比超额收益

高阶设置还包括佣金倍率、保证金倍率、撮合方式、滑点、分红再投资、允许买空、限制成交量等。

动态复权

米筐回测默认使用动态前复权:以策略回测当前日期为基准做前复权,避免混入未来复权因子(这是「未来数据」的隐蔽来源)。history_bars 返回动态复权数据,get_price 返回静态前复权数据。

二、撮合机制

撮合方式决定订单以什么参考价成交:

撮合方式适用频率说明
当前 bar 收盘价日/分钟当前 bar 发单,立刻按收盘价撮合
下一 bar 开盘价分钟当前 bar 发单,下一 bar 开盘时统一撮合
己方最优 / 对手方最优 / 最新价tick(期货)按 tick 盘口价撮合

默认单笔成交不超过当前 bar 成交量的 25%,超限部分市价单自动撤单、限价单排队等待。tick 回测无此限制。

涨跌停单边市下,对应的买单(涨停)或卖单(跌停)无法成交,即使 bar 有成交量。

三、交易费用

  • A 股:佣金双边收取,默认万分之 8,单笔最低 5 元;印花税卖出单边 0.1%(已内置)。佣金倍率不影响最低 5 元和印花税。
  • 期货:按成交额或成交合约张数收取,区分开仓/平仓/平今费率,可在代码中用 __config__ 自定义各品种费率。
  • 期权/现货:企业版支持,费率表类似期货。
# 在策略中自定义期货佣金(SC 品种)
__config__ = {
    "base": {
        "future_info": {
            "SC": {
                "open_commission_ratio": 0.0002,
                "close_commission_ratio": 0.0001,
                "close_commission_today_ratio": 0,
                "commission_type": "BY_MONEY",
            }
        }
    }
}

四、仓位管理与分红

  • T+1:A 股当日买入的股票次日才能卖出;退市股票仓位自动清零。
  • 期货逐日盯市:每日盘后结算,浮盈浮亏计入现金;到期按结算价现金交割。
  • 分红:股权登记日持有即享分红,除权除息日计入 dividend_receivable,到账日转入可用现金。

五、读懂风险指标

回测结果页会给出收益与风险两大类指标,核心几个:

指标含义怎么看
年化收益率复利累积的年度回报和基准比,是否跑赢
最大回撤净值从高点回撤的最大幅度越小越稳,关系能否拿住
夏普率(Sharpe)超额收益 ÷ 波动率,衡量风险溢价多空策略看这个,越高越好
索提诺比率(Sortino)超额收益 ÷ 下行波动率只惩罚下跌,比夏普更贴合直觉
信息比率(IR)主动收益 ÷ 跟踪误差纯多头主动策略看这个
Alpha(α)选股能力,CAPM 残余项正值说明跑赢市场选股
Beta(β)对市场波动的敏感度>1 进攻型,<1 防守型

一个好策略:合理的年化 + 可控的回撤 + 稳健的夏普/IR,而非只看收益率。

六、模拟交易

回测验证逻辑后,用模拟交易检验实时表现。模拟盘数据与实盘同步(Level-1,约 3-5 秒延迟)。

启动流程

  1. 先跑一次完整的分钟回测。
  2. 在回测结果页点击「模拟交易」启动。
  3. 启动后进入模拟详情页,可查看实时收益、持仓、成交记录。

控制操作

  • 暂停:挂起策略,仍接收行情计算指标但不发单。
  • 启动:从暂停恢复发单。
  • 停止:彻底终止,不可恢复。

代码替换与状态保存

模拟盘每天收盘后保存状态(账户、持仓、context 对象),次日恢复。注意:

  • context 中不可序列化的对象(如 query() 返回值)不会被保存,重启后丢失——应把这类逻辑放在 before_trading 中。
  • 可在「设置」中替换代码,原仓位和资金保留;若勾选「立即运行 init」,则清空原 context。

微信通知

开启微信通知后,每次调仓记录会实时推送到微信,点击可跳转米筐组合调仓页面,方便手动跟单。

小结

  • 回测配置:频率(日/分钟/tick)+ 撮合方式 + 佣金/滑点;默认动态前复权避免未来数据。
  • 撮合默认限 25% 成交量,涨跌停单边市无法成交对应方向。
  • 重点看年化收益、最大回撤、夏普/索提诺/信息比率、Alpha/Beta。
  • 模拟交易从分钟回测结果页启动,支持暂停/停止/换代码/微信推送。

回测和模拟都跑通后,下一步进入因子研究与技术分析:因子与技术分析