文章目录
freqtrade 回测数据分析
1. 解决问题
a. 回测数据分为哪些部分,表达了什么信息
b. 如何判断回测结果总体表现和风险
2. 回测数据主体
Backtesting Report Table
列出所有已完成的交易记录及关键绩效指标。Left Open Trades Table
列出在回测截止时仍未平仓的交易。Exit Reason Stats
统计各退出原因及其获利情况。Summary Metrics
汇总全期回测的总体表现和风险收益指标。
2.1 Backtesting Report Table
| 列名 | 含义 |
|---|---|
| Pair | 交易对名称(Base/Quote),如 ADA/BTC。(freqtrade.io) |
| Trades | 在该交易对上打开并关闭的完整交易次数。(freqtrade.io) |
| Avg Profit % | 每笔交易的平均收益率(%),等于所有交易收益率之和除以交易数。(freqtrade.io) |
| Tot Profit BTC | 该交易对所有交易的绝对收益,以 BTC 计,总和形式展示。(freqtrade.io) |
| Tot Profit % | 相对于初始本金的总收益率: (Final balance – Starting balance) / Starting balance × 100%。(freqtrade.io) |
| Avg Duration | 平均持仓时长(时:分:秒),所有交易时长的算术平均。(freqtrade.io) |
| Wins | 盈利交易总数。(freqtrade.io) |
| Draws | 持平交易(零损益)总数。(freqtrade.io) |
| Loss | 亏损交易总数。(freqtrade.io) |
| Win % | 胜率:Wins / Trades × 100%。(freqtrade.io) |
================================================ BACKTESTING REPORT =================================================
| Pair | Trades | Avg Profit % | Tot Profit BTC | Tot Profit % | Avg Duration | Wins Draws Loss Win% |
|----------+--------+----------------+------------------+----------------+--------------+--------------------------|
| ADA/BTC | 35 | -0.11 | -0.00019428 | -1.94 | 4:35:00 | 14 0 21 40.0 |
| ARK/BTC | 11 | -0.41 | -0.00022647 | -2.26 | 2:03:00 | 3 0 8 27.3 |
| BTS/BTC | 32 | 0.31 | 0.00048938 | 4.89 | 5:05:00 | 18 0 14 56.2 |
| DASH/BTC | 13 | -0.08 | -0.00005343 | -0.53 | 4:39:00 | 6 0 7 46.2 |
| ENG/BTC | 18 | 1.36 | 0.00122807 | 12.27 | 2:50:00 | 8 0 10 44.4 |
| EOS/BTC | 36 | 0.08 | 0.00015304 | 1.53 | 3:34:00 | 16 0 20 44.4 |
| ETC/BTC | 26 | 0.37 | 0.00047576 | 4.75 | 6:14:00 | 11 0 15 42.3 |
| ETH/BTC | 33 | 0.30 | 0.00049856 | 4.98 | 7:31:00 | 16 0 17 48.5 |
| IOTA/BTC | 32 | 0.03 | 0.00005444 | 0.54 | 3:12:00 | 14 0 18 43.8 |
| LSK/BTC | 15 | 1.75 | 0.00131413 | 13.13 | 2:58:00 | 6 0 9 40.0 |
| LTC/BTC | 32 | -0.04 | -0.00006886 | -0.69 | 4:49:00 | 11 0 21 34.4 |
| NANO/BTC | 17 | 1.26 | 0.00107058 | 10.70 | 1:55:00 | 10 0 7 58.5 |
| NEO/BTC | 23 | 0.82 | 0.00094936 | 9.48 | 2:59:00 | 10 0 13 43.5 |
| REQ/BTC | 9 | 1.17 | 0.00052734 | 5.27 | 3:47:00 | 4 0 5 44.4 |
| XLM/BTC | 16 | 1.22 | 0.00097800 | 9.77 | 3:15:00 | 7 0 9 43.8 |
| XMR/BTC | 23 | -0.18 | -0.00020696 | -2.07 | 5:30:00 | 12 0 11 52.2 |
| XRP/BTC | 35 | 0.66 | 0.00114897 | 11.48 | 3:49:00 | 12 0 23 34.3 |
| ZEC/BTC | 22 | -0.46 | -0.00050971 | -5.09 | 2:22:00 | 7 0 15 31.8 |
| TOTAL | 429 | 0.36 | 0.00762792 | 76.20 | 4:12:00 | 186 0 243 43.4 |
2.2 Left Open Trades Table
| 列出回测结束时仍未平仓的交易(被 force_exit 强行退出)。字段含义与“Backtesting Report Table”一致
============================================= LEFT OPEN TRADES REPORT =============================================
| Pair | Trades | Avg Profit % | Tot Profit BTC | Tot Profit % | Avg Duration | Win Draw Loss Win% |
|----------+---------+----------------+------------------+----------------+----------------+---------------------|
| ADA/BTC | 1 | 0.89 | 0.00004434 | 0.44 | 6:00:00 | 1 0 0 100 |
| LTC/BTC | 1 | 0.68 | 0.00003421 | 0.34 | 2:00:00 | 1 0 0 100 |
| TOTAL | 2 | 0.78 | 0.00007855 | 0.78 | 4:00:00 | 2 0 0 100 |
2.3 Exit Reason Stats
| 列名 | 含义 |
|---|---|
| Exit Reason | 触发平仓的原因,如 trailing_stop_loss(跟踪止盈)、stop_loss(止损)、exit_signal(策略信号)、force_exit(强制退出)等。(freqtrade.io) |
| Exits | 由于该原因退出的交易总数。(freqtrade.io) |
| Wins | 因该退出原因获利的交易数。(freqtrade.io) |
| Draws | 因该退出原因持平的交易数。(freqtrade.io) |
| Losses | 因该退出原因亏损的交易数。(freqtrade.io) |
==================== EXIT REASON STATS ====================
| Exit Reason | Exits | Wins | Draws | Losses |
|--------------------+---------+-------+--------+---------|
| trailing_stop_loss | 205 | 150 | 0 | 55 |
| stop_loss | 166 | 0 | 0 | 166 |
| exit_signal | 56 | 36 | 0 | 20 |
| force_exit | 2 | 0 | 0 | 2 |
2.4 Summary Metrics
| 指标 | 含义 |
|---|---|
| Backtesting from/to | 回测数据的起讫时间戳。 |
| Trading Mode | 交易模式:Spot、Margin、Futures 等。 |
| Max open trades | 同时最大持仓数。 |
| Total/Daily Avg Trades | 总交易数 / 平均每天交易数。 |
| Starting balance | 初始本金(BTC)。 |
| Final balance | 回测结束时的本金(BTC)。 |
| Absolute profit | 最终盈亏,Final balance – Starting balance(BTC)。 |
| Total profit % | 回测总收益率,与上文 Tot Profit % 等价。 |
| CAGR % | 年化复合增长率(Compound Annual Growth Rate):衡量资金按相同比率增长时的年化收益。(freqtrade.io) |
| Sortino | 年化 Sortino 比率:以下行波动率为风险度量的风险调整收益指标。(Investopedia) |
| Sharpe | 年化 Sharpe 比率:以标准差为风险度量的风险调整收益指标。(Option Alpha) |
| Calmar | 年化 Calmar 比率:年化收益率与最大回撤比值,衡量回撤风险。(freqtrade.io) |
| SQN | 系统质量数(System Quality Number):衡量交易系统表现的综合指标。(freqtrade.io) |
| Profit factor | 盈亏比:Gross Profit / Gross Loss,>1 表示总体盈利。(Option Alpha) |
| Expectancy (Ratio) | 期望值:(Win%×Average Win) – (Loss%×Average Loss),每笔交易的平均期望收益。(Babypips.com) |
| Avg. stake amount | 每笔下单的平均投入。 |
| Total trade volume | 所有交易的总成交量(BTC)。 |
| Long / Short | 多头 / 空头交易次数分布。 |
| Total profit Long/Short % | 多头/空头的总收益率。 |
| Absolute profit Long/Short | 多头/空头的绝对收益(BTC)。 |
| Best/Worst Pair | 最佳/最差交易对及其回报率。 |
| Best/Worst Trade | 单笔最佳/最差交易及收益率。 |
| Best/Worst day | 单日最大盈利/亏损(BTC)。 |
| Days win/draw/lose | 盈/平/亏的交易日数量。 |
| Avg. Duration Winners/Losers | 盈利/亏损交易的平均持仓时长。 |
| Max Consecutive Wins/Loss | 最大连赢/连亏笔数。 |
| Rejected Entry signals | 被策略或风险控件拒绝的进场信号数量。 |
| Entry/Exit Timeouts | 进场/出场因超时而放弃的信号数。 |
| Canceled Trade Entries | 人为/机制取消的开仓交易数。 |
| Canceled/Replaced Entry Orders | 在交易所层面被取消或被重发的委托数。 |
| Min/Max balance | 回测期间账户余额最低/最高值(BTC)。 |
| Max % of account underwater | 最大账户回撤百分比。 |
| Absolute Drawdown (Account) | 账户余额绝对回撤百分比:(Peak balance – Trough balance) / Peak balance × 100%。 |
| Drawdown / high / low / start / end | 回撤金额及其发生的峰值、谷值及时间。 |
| Market change | 基准市场(通常为持有 BTC)同期涨跌幅。 |
================== SUMMARY METRICS ==================
| Metric | Value |
|-----------------------------+---------------------|
| Backtesting from | 2019-01-01 00:00:00 |
| Backtesting to | 2019-05-01 00:00:00 |
| Trading Mode | Spot |
| Max open trades | 3 |
| | |
| Total/Daily Avg Trades | 429 / 3.575 |
| Starting balance | 0.01000000 BTC |
| Final balance | 0.01762792 BTC |
| Absolute profit | 0.00762792 BTC |
| Total profit % | 76.2% |
| CAGR % | 460.87% | # 年化复合增长率(Compound Annual Growth Rate):衡量资金按相同比率增长时的年化收益。
| Sortino | 1.88 | # 年化 Sortino 比率:以下行波动率为风险度量的风险调整收益指标。
| Sharpe | 2.97 | # 年化 Sharpe 比率:以标准差为风险度量的风险调整收益指标。
| Calmar | 6.29 | # 年化 Calmar 比率:年化收益率与最大回撤比值,衡量回撤风险。
| SQN | 2.45 | # 系统质量数(System Quality Number):衡量交易系统表现的综合指标。
| Profit factor | 1.11 | # 盈亏比:Gross Profit / Gross Loss,>1 表示总体盈利。
| Expectancy (Ratio) | -0.15 (-0.05) | # 期望值:(Win%×Average Win) – (Loss%×Average Loss),每笔交易的平均期望收益。
| Avg. stake amount | 0.001 BTC | # 每笔下单的平均投入。
| Total trade volume | 0.429 BTC | # 所有交易的总成交量(BTC)
| | | # 多头 / 空头交易次数分布。
| Long / Short | 352 / 77 | # 多头/空头的总收益率。
| Total profit Long % | 1250.58% |
| Total profit Short % | -15.02% | # 多头/空头的绝对收益(BTC)。
| Absolute profit Long | 0.00838792 BTC |
| Absolute profit Short | -0.00076 BTC | # 多头/空头的绝对收益(BTC)。
| | |
| Best Pair | LSK/BTC 26.26% |
| Worst Pair | ZEC/BTC -10.18% | # 最佳/最差交易对及其回报率。
| Best Trade | LSK/BTC 4.25% |
| Worst Trade | ZEC/BTC -10.25% | # 单笔最佳/最差交易及收益率。
| Best day | 0.00076 BTC |
| Worst day | -0.00036 BTC | # 单日最大盈利/亏损(BTC)。
| Days win/draw/lose | 12 / 82 / 25 |
| Avg. Duration Winners | 4:23:00 |
| Avg. Duration Loser | 6:55:00 | # 盈利/亏损交易的平均持仓时长。
| Max Consecutive Wins / Loss | 3 / 4 | # 最大连赢/连亏笔数。
| Rejected Entry signals | 3089 | # 被策略或风险控件拒绝的进场信号数量。
| Entry/Exit Timeouts | 0 / 0 | # 进场/出场因超时而放弃的信号数。
| Canceled Trade Entries | 34 | # 人为/机制取消的开仓交易数。
| Canceled Entry Orders | 123 |
| Replaced Entry Orders | 89 | # 在交易所层面被取消或被重发的委托数。
| | |
| Min balance | 0.00945123 BTC |
| Max balance | 0.01846651 BTC | # 回测期间账户余额最低/最高值(BTC)。
| Max % of account underwater | 25.19% | # 最大账户回撤百分比
| Absolute Drawdown (Account) | 13.33% | # 账户余额绝对回撤百分比:(Peak balance – Trough balance) / Peak balance × 100%。
| Drawdown | 0.0015 BTC |
| Drawdown high | 0.0013 BTC |
| Drawdown low | -0.0002 BTC |
| Drawdown Start | 2019-02-15 14:10:00 |
| Drawdown End | 2019-04-11 18:15:00 | # 回撤金额及其发生的峰值、谷值及时间。
| Market change | -5.88% | # 基准市场(通常为持有 BTC)同期涨跌幅。
=====================================================
3. 关键指标
在评估量化策略优劣时,不能仅看收益率(如 CAGR),也要结合风险调整收益(Sharpe、Sortino、Calmar)、回撤(Max Drawdown)、盈利质量(Profit Factor、SQN)及期望值(Expectancy)等多维度信号。通过对这些指标的典型范围与“好/差”信号进行解读,再按照既定流程逐项对比,最终才能做出更全面的策略优选决策。
3.1 复合年化增长率 (CAGR)
C
A
G
R
=
(
E
n
d
i
n
g
V
a
l
u
e
B
e
g
i
n
n
i
n
g
V
a
l
u
e
)
1
n
−
1
\mathrm{CAGR} = \left(\frac{\mathrm{Ending\ Value}}{\mathrm{Beginning\ Value}}\right)^{\tfrac{1}{n}} - 1
CAGR=(Beginning ValueEnding Value)n1−1
Ending Value:期末价值
Beginning Value:期初价值
n:投资周期(年)
- 定义
在给定时间段内,假设收益按同一比率复利增长的年化收益率 - 范围
5–15%:常见传统资产或基金表现 - 信号
CAGR 越高,整体盈利能力越强,但单看易忽略波动性
3.2 Sharpe 比率
Sharpe
=
R
p
−
R
f
σ
p
\text{Sharpe} = \frac{R_p - R_f}{\sigma_{\text{p}}} \
Sharpe=σpRp−Rf
𝑅𝑝 :策略年化收益率
𝑅𝑓:无风险利率
𝜎𝑝:收益率标准差(总波动率)
- 定义
单位总风险(收益标准差)下的超额收益 - 范围
<1.0:表现一般或偏差;
1.0–2.0:良好;
2.0–3.0:优秀;
3.0:卓越 - 信号
越高说明每承担一单位总风险获得的超额收益越sdasdad
3.3 Sortino 比率
-
定义
仅以下行波动率(负收益标准差)衡量风险的风险调整收益:
Sortino = R p − R f σ down \text{Sortino} = \frac{R_p - R_f}{\sigma_{\text{down}}} \ Sortino=σdownRp−Rf
𝑅𝑝 :策略年化收益率
𝑅𝑓:无风险利率
𝜎down:下行标准差(仅计算低于门槛的波动) -
范围
<1.0:偏低;
1.0–2.0:可接受;
2.0:稳健;
3.0:卓越 -
信号
-更侧重防范亏损,对高波动或短线策略尤为重要。
3.4 Calmar 比率
Calmar = CAGR Max Drawdown \text{Calmar} = \frac{\text{CAGR}}{\text{Max Drawdown}} Calmar=Max DrawdownCAGR
- 定义
年化收益率与最大回撤之比: - 范围
<0.5:风险过高;
0.5–1.0:可接受;
1.0–2.0:优良;
2.0:卓越 - 信号
反映收益规模与最大回撤的权衡程度。
3.5 系统质量数 (SQN)
S
Q
N
=
P
/
L
‾
×
N
σ
P
/
L
\mathrm{SQN} = \frac{\overline{P/L} \times \sqrt{N}}{\sigma_{P/L}}
SQN=σP/LP/L×N
𝑃/𝐿:每笔交易平均盈亏
𝑁:交易总次数
𝜎𝑃/𝐿:每笔交易盈亏的标准差
-
定义
衡量交易系统的风险调整表现及一致性 -
范围
<1.6:差;
1.6–2.0:可接受;
2.0–2.5:良好;
2.5:非常好;
3.0:卓越 -
信号
越高表明系统表现越稳定、值得信赖。
3.6 期望值 (Expectancy)
M
a
x
D
r
a
w
d
o
w
n
=
max
t
P
e
a
k
t
−
T
r
o
u
g
h
t
+
1
P
e
a
k
t
\mathrm{Max\ Drawdown} = \max_{t}\;\frac{\mathrm{Peak}_{t} - \mathrm{Trough}_{t+1}}{\mathrm{Peak}_{t}}
Max Drawdown=tmaxPeaktPeakt−Trought+1
𝑊%:胜率(盈利交易数 / 总交易数)
𝑊:平均盈利额
𝐿%:亏损率(亏损交易数 / 总交易数)
𝐿 :平均亏损额(取正值)
- 定义
每笔交易的平均盈亏或以比率形式描述盈亏比 - 信号
大于0 表示策略长期可盈利,数值越大,单位风险下平均收益越高。
4. 如何判断策略好坏
- 风险调整收益优先
首先对比Sharpe与Sortino,优先选择在相同或下行风险下能获得更高超额收益的策略。 - 回撤与稳健性检验
对比Max Drawdown与Calmar,剔除回撤过大(>30%)或Calmar <1.0的策略。 - 盈利质量与一致性
检查Profit Factor与SQN,优先Profit Factor >1.5且SQN >2.0的方案。 - 单笔期望收益
比较Expectancy,数值更高者从长期看更具优势。 - 综合打分或加权
按上面五大维度分别打分,并根据个人偏好加权(如风险调整收益 40%、回撤 20%、盈利质量 20%、期望值 20%),计算“策略综合得分”。 - 情景与偏好调整
若侧重稳健,提升 Calmar、Max Drawdown 权重;若追求高收益,可适当增加 CAGR 权重。
附录
本人github项目地址:https://github.com/oncecoo
欢迎关注!
1996

被折叠的 条评论
为什么被折叠?



