回测与模拟交易
策略写好后,回测是验证逻辑的第一道关。米筐支持日、分钟、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 秒延迟)。
启动流程
- 先跑一次完整的分钟回测。
- 在回测结果页点击「模拟交易」启动。
- 启动后进入模拟详情页,可查看实时收益、持仓、成交记录。
控制操作
- 暂停:挂起策略,仍接收行情计算指标但不发单。
- 启动:从暂停恢复发单。
- 停止:彻底终止,不可恢复。
代码替换与状态保存
模拟盘每天收盘后保存状态(账户、持仓、context 对象),次日恢复。注意:
context中不可序列化的对象(如query()返回值)不会被保存,重启后丢失——应把这类逻辑放在before_trading中。- 可在「设置」中替换代码,原仓位和资金保留;若勾选「立即运行 init」,则清空原 context。
微信通知
开启微信通知后,每次调仓记录会实时推送到微信,点击可跳转米筐组合调仓页面,方便手动跟单。
小结
- 回测配置:频率(日/分钟/tick)+ 撮合方式 + 佣金/滑点;默认动态前复权避免未来数据。
- 撮合默认限 25% 成交量,涨跌停单边市无法成交对应方向。
- 重点看年化收益、最大回撤、夏普/索提诺/信息比率、Alpha/Beta。
- 模拟交易从分钟回测结果页启动,支持暂停/停止/换代码/微信推送。
回测和模拟都跑通后,下一步进入因子研究与技术分析:因子与技术分析。