# 回测 (/zh/features/backtesting)

在 Python
中回测交易策略，清楚查看它们原本会怎样交易。本节面向希望将信号、订单或自定义逻辑转化为投资组合的交易者与研究者，介绍如何模拟成交及其成本，并核算每笔持仓和现金流。每页涵盖工作流的一部分：模拟引擎、信号与编译回调、新数据上的回测延续、日内成交、离场、仓位、成本，以及确保回测可信的检查。

## 从这里开始 \[#start-here]

先阅读[回测引擎](/zh/features/backtesting/backtesting-engine/)，了解三种模拟方式，以及一次调用可运行多少回测。也可以按已有内容选择起点：

| 您已有               | 从哪里开始                                                                                                                                                  |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| 来自指标或模型的买卖信号      | [信号回测](/zh/features/backtesting/signal-backtesting/)，介绍多空持仓、反转和加仓                                                                                      |
| 订单数量或目标投资组合权重     | [回测引擎](/zh/features/backtesting/backtesting-engine/#three-ways-to-simulate)，将订单数组转化为投资组合，再看[仓位管理](/zh/features/backtesting/position-sizing/)，了解数量与配置目标 |
| 依赖当前现金、持仓或此前成交的规则 | [事件驱动回测](/zh/features/backtesting/event-driven-backtesting/)，介绍模拟期间决策的回调                                                                               |
| 希望在新数据到达时继续的回测    | [实时模拟](/zh/features/backtesting/live-simulation/)，将投资组合状态传入下次运行                                                                                        |

信号也可以使用回调，因此可保留内置止损和限价，同时添加自定义决策。[事件驱动回测](/zh/features/backtesting/event-driven-backtesting/)介绍如何在扩展信号模拟与自行编写订单逻辑之间选择。

## 探索回测功能 \[#explore-backtesting-features]

*   [回测引擎](/zh/features/backtesting/backtesting-engine): 同时跨多个资产和参数模拟订单、信号与回调
*   [信号回测](/zh/features/backtesting/signal-backtesting): 将入场与离场信号转化为多头、空头、反转和金字塔加仓持仓
*   [事件驱动回测](/zh/features/backtesting/event-driven-backtesting): 编写用于冷却期、持仓限制和自定义模拟器的编译回调
*   [实时模拟](/zh/features/backtesting/live-simulation): 在新 K 线上延续回测、串联运行，并向外部交易系统提供结果
*   [日内与逐笔回测](/zh/features/backtesting/intraday-and-tick-backtesting): 回测分钟线、逐笔与交易时段，并用更细数据判断止损
*   [真实回测](/zh/features/backtesting/backtest-realism): 避免回测中的前视偏差、不可能成交和幸存者偏差
*   [订单与执行](/zh/features/backtesting/orders-and-execution): 模拟限价与止损入场订单、成交价格、时机、拒单及实际成交
*   [止损与止盈](/zh/features/backtesting/stop-loss-and-take-profit): 回测止损、移动止损、止盈、时间止损和阶梯离场
*   [仓位管理](/zh/features/backtesting/position-sizing): 按单位数、现金、净值比例、目标权重或每笔风险确定仓位
*   [手续费、滑点与杠杆](/zh/features/backtesting/fees-slippage-and-leverage): 模拟佣金、滑点、杠杆、期货乘数和负价格
*   [投资组合记账](/zh/features/backtesting/portfolio-accounting): 逐根跟踪共享现金、入金、股息、持仓、记录和敞口

## 模拟您要交易的账户 \[#model-the-account-you-want-to-trade]

多资产策略可先通过[共享现金](/zh/features/backtesting/portfolio-accounting/#shared-cash)和[仓位管理](/zh/features/backtesting/position-sizing/)，决定资产如何共享资金。加入[手续费、滑点和杠杆](/zh/features/backtesting/fees-slippage-and-leverage/)，再通过[投资组合记账](/zh/features/backtesting/portfolio-accounting/)跟踪入金、股息和初始持仓。

对于成交方式重要的策略，可探索[订单与执行](/zh/features/backtesting/orders-and-execution/)、[止损与止盈](/zh/features/backtesting/stop-loss-and-take-profit/)，以及[日内与逐笔回测](/zh/features/backtesting/intraday-and-tick-backtesting/)。[真实回测](/zh/features/backtesting/backtest-realism/)将信号时机、价格假设和前视偏差检查整合起来。

## 检查结果并比较策略 \[#inspect-results-and-compare-strategies]

运行后，通过[交易分析](/zh/features/analytics/trade-analytics/)检查交易，或通过[绩效与风险度量](/zh/features/analytics/performance-metrics/)比较收益和风险。准备探索变体时，[参数优化](/zh/features/optimization/strategy-optimization/)介绍参数组合测试，[前向滚动与交叉验证](/zh/features/optimization/time-series-cross-validation/)介绍在未见时期上测试。

若要深入代码，可阅读[投资组合文档](/zh/documentation/portfolio/)了解模拟生命周期，或通过[止损信号教程](/zh/tutorials/stop-signals/)学习信号驱动示例。
