Btc量化——freqtrade 回测数据分析

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交易模式:SpotMarginFutures 等。
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)n11
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=σpRpRf 
𝑅𝑝 :策略年化收益率
𝑅𝑓:无风险利率
𝜎𝑝:收益率标准差(总波动率)

  • 定义
    单位总风险(收益标准差)下的超额收益
  • 范围
    <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=σdownRpRf 
    𝑅𝑝​ :策略年化收益率
    𝑅𝑓:无风险利率
    𝜎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=tmaxPeaktPeaktTrought+1
𝑊%:胜率(盈利交易数 / 总交易数)
𝑊:平均盈利额
𝐿%:亏损率(亏损交易数 / 总交易数)
𝐿 :平均亏损额(取正值)

  • 定义
    每笔交易的平均盈亏或以比率形式描述盈亏比
  • 信号
    大于0 表示策略长期可盈利,数值越大,单位风险下平均收益越高。

4. 如何判断策略好坏

  • 风险调整收益优先
    首先对比 SharpeSortino,优先选择在相同或下行风险下能获得更高超额收益的策略。
  • 回撤与稳健性检验
    对比 Max DrawdownCalmar,剔除回撤过大(>30%)Calmar <1.0 的策略。
  • 盈利质量与一致性
    检查 Profit FactorSQN,优先 Profit Factor >1.5SQN >2.0 的方案。
  • 单笔期望收益
    比较 Expectancy,数值更高者从长期看更具优势。
  • 综合打分或加权
    按上面五大维度分别打分,并根据个人偏好加权(如风险调整收益 40%、回撤 20%、盈利质量 20%、期望值 20%),计算“策略综合得分”。
  • 情景与偏好调整
    若侧重稳健,提升 Calmar、Max Drawdown 权重;若追求高收益,可适当增加 CAGR 权重。

附录

本人github项目地址:https://github.com/oncecoo
欢迎关注!

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值