Core KPI
roi_avg_notional_position_pct = total_pnl_final / time_avg_abs_net_position_usdt * 100
roi_peak_notional_position_pct = total_pnl_final / peak_abs_net_position_usdt * 100
dynamic_notional_beta = cumsum(total_notional_position_usdt(t) * mean(close c2c return across all coins at t))
avg_hold_notional_beta = cumsum(avg_total_notional_position_usdt * mean(close c2c return across all coins at t))
high/low dynamic_notional_beta = cumsum(segment_notional_position_usdt(t) * mean(close c2c return in each segment at t))
high/low avg_hold_notional_beta = cumsum(avg_segment_notional_position_usdt * mean(close c2c return in each segment at t))
alpha_vs_dynamic = pnl - dynamic_notional_beta, alpha_vs_avg_hold = pnl - avg_hold_notional_beta
dynamic_alpha_mdd_pnl / avg_hold_alpha_mdd_pnl = min(alpha - cummax(alpha)) on each alpha series
dynamic_alpha_sharpe_annualized / avg_hold_alpha_sharpe_annualized = mean(Δalpha) / std(Δalpha) * sqrt(252 * 390)
mdd_pnl = min(total_pnl - cummax(total_pnl))
sharpe_annualized = mean(Δpnl) / std(Δpnl) * sqrt(252 * 390)
total_fee = sum(execution fee)
| metric |
value |
| total_pnl_final |
9.646M |
| total_pnl_peak |
10.839M |
| dynamic_notional_beta_pnl_final |
7.389M |
| alpha_vs_dynamic_notional_beta_pnl_final |
2.258M |
| avg_hold_notional_beta_pnl_final |
4.812M |
| alpha_vs_avg_hold_notional_beta_pnl_final |
4.835M |
| high_mc_dynamic_notional_beta_pnl_final |
0.000M |
| low_mc_dynamic_notional_beta_pnl_final |
7.389M |
| high_mc_avg_hold_notional_beta_pnl_final |
0.000M |
| low_mc_avg_hold_notional_beta_pnl_final |
4.812M |
| high_mc_alpha_vs_dynamic_notional_beta_pnl_final |
0.000M |
| low_mc_alpha_vs_dynamic_notional_beta_pnl_final |
2.258M |
| high_mc_alpha_vs_avg_hold_notional_beta_pnl_final |
0.000M |
| low_mc_alpha_vs_avg_hold_notional_beta_pnl_final |
4.835M |
| dynamic_alpha_mdd_pnl |
-1.841M |
| dynamic_alpha_sharpe_annualized |
3.14185 |
| avg_hold_alpha_mdd_pnl |
-2.920M |
| avg_hold_alpha_sharpe_annualized |
4.02613 |
| num_trades |
1,736 |
| total_traded_amount_sum |
87216 |
| total_trade_notional |
4158.862M |
| daily_trade_notional |
166.354M |
| trading_day_count |
25 |
| total_fee |
4.159M |
| time_avg_total_notional_position_usdt |
51.558M |
| time_avg_high_mc_notional_position_usdt |
0.000M |
| time_avg_low_mc_notional_position_usdt |
51.558M |
| time_avg_net_position_usdt |
51.558M |
| time_avg_abs_net_position_usdt |
51.558M |
| peak_abs_net_position_usdt |
1.00709e+08 |
| roi_avg_notional_position_pct |
18.71% |
| roi_peak_notional_position_pct |
9.58% |
| mdd_pnl |
-10.623M |
| sharpe_annualized |
3.52184 |
| high_mc_pnl_final |
0.000M |
| high_mc_trade_notional |
0.000M |
| high_mc_num_trades |
0 |
| high_mc_sharpe_annualized |
|
| high_mc_trade_return_per_trade_bp |
|
| low_mc_pnl_final |
9.646M |
| low_mc_trade_notional |
4158.862M |
| low_mc_num_trades |
1,736 |
| low_mc_sharpe_annualized |
3.52184 |
| low_mc_trade_return_per_trade_bp |
23.19bp |
| model_zscore_pnl_final |
307.513M |
| hedge_zscore_pnl_final |
60.272M |
| force_zscore_pnl_final |
0.000M |
| funding_fee_pnl_final |
0.000M |
| funding_event_count |
0 |
| model_win_rate_20m |
50.80% |
| hedge_win_rate_20m |
48.42% |
| force_win_rate_20m |
|
| model_win_rate_btc_adj_20m |
50.80% |
| hedge_win_rate_btc_adj_20m |
48.42% |
| force_win_rate_btc_adj_20m |
|
MC Segment KPI
segment in [total, high, low] computed by the same metric function over coin subsets
trade_return_per_trade_bp = pnl_final / trade_notional * 10000
| segment |
pnl_final |
trade_notional |
num_trades |
sharpe_annualized |
trade_return_per_trade_bp |
| total |
9.64645e+06 |
4.15886e+09 |
1736 |
3.52184 |
23.1949 |
| high |
0 |
0 |
0 |
|
|
| low |
9.64645e+06 |
4.15886e+09 |
1736 |
3.52184 |
23.1949 |
Quality By Horizon (Model)
quality = side_sign * (mid_price(next_n_bars) - execution_price) / execution_price - (fee / notional)
quality_btc_adj = quality - side_sign * ((btc_mid(t+n) - btc_mid(t)) / btc_mid(t))
quality_per_notional = quality_pnl / sum(notional_usdt)
quality_per_notional_bp = quality_per_notional * 10000
| n_min |
pair_count |
quality_pnl_final |
quality_per_notional |
quality_per_notional_bp |
win_rate |
reg_a |
reg_b |
reg_r2 |
quality_btc_adj_pnl_final |
quality_btc_adj_per_notional |
quality_btc_adj_per_notional_bp |
win_rate_btc_adj |
| 5 |
1133 |
1.10291e+06 |
0.000410134 |
4.10134 |
0.525154 |
0.00477684 |
-0.000335102 |
0.00384648 |
1.10291e+06 |
0.000410134 |
4.10134 |
0.525154 |
| 10 |
1133 |
1.3187e+06 |
0.000490378 |
4.90378 |
0.538394 |
0.00248545 |
2.14715e-05 |
0.000777376 |
1.3187e+06 |
0.000490378 |
4.90378 |
0.538394 |
| 20 |
1132 |
2.30857e+06 |
0.000859283 |
8.59283 |
0.507951 |
0.00136855 |
0.000549633 |
0.000115051 |
2.30857e+06 |
0.000859283 |
8.59283 |
0.507951 |
| 30 |
1131 |
2.40663e+06 |
0.000896578 |
8.96578 |
0.514589 |
-0.000848265 |
0.00087145 |
3.00142e-05 |
2.40663e+06 |
0.000896578 |
8.96578 |
0.514589 |
| 60 |
1125 |
5.77258e+06 |
0.00216229 |
21.6229 |
0.519111 |
-0.00189469 |
0.00211122 |
7.81711e-05 |
5.77258e+06 |
0.00216229 |
21.6229 |
0.519111 |
| 120 |
1089 |
9.27024e+06 |
0.00359047 |
35.9047 |
0.527089 |
0.00312553 |
0.00272994 |
8.56579e-05 |
9.27024e+06 |
0.00359047 |
35.9047 |
0.527089 |
| 240 |
1064 |
1.02606e+07 |
0.00406936 |
40.6936 |
0.526316 |
0.0086079 |
0.00328184 |
0.000316501 |
1.02606e+07 |
0.00406936 |
40.6936 |
0.526316 |
PnL / Exposure
Model Buy 120m Relative Quality By Entry Time (20m, 09:00-15:30 KST)
quality_120m_mean = average of quality_120m for tag=model_buy in each 20-minute entry-time bucket
quality_120m_mean_bp = quality_120m_mean * 10000, total_amount = sum(abs(amount))
| entry_time_bucket |
trade_count |
total_amount |
quality_120m_mean |
quality_120m_mean_bp |
| 09:00 |
8 |
124 |
0.00987792 |
98.7792 |
| 09:20 |
14 |
734 |
0.0166524 |
166.524 |
| 09:40 |
31 |
1390 |
0.00379298 |
37.9298 |
| 10:00 |
36 |
1515 |
-0.00757332 |
-75.7332 |
| 10:20 |
43 |
3389 |
-6.7458e-05 |
-0.67458 |
| 10:40 |
47 |
2887 |
0.000217339 |
2.17339 |
| 11:00 |
83 |
4322 |
0.00350785 |
35.0785 |
| 11:20 |
124 |
5830 |
0.00373885 |
37.3885 |
| 11:40 |
125 |
5870 |
0.0038582 |
38.582 |
| 12:00 |
83 |
4563 |
-0.00404104 |
-40.4104 |
| 12:20 |
78 |
3625 |
0.0027916 |
27.916 |
| 12:40 |
56 |
3310 |
0.00605445 |
60.5445 |
| 13:00 |
31 |
1124 |
-0.0150896 |
-150.896 |
| 13:20 |
49 |
2234 |
0.0118517 |
118.517 |
| 13:40 |
29 |
1550 |
0.00336043 |
33.6043 |
| 14:00 |
29 |
1036 |
0.0311369 |
311.369 |
| 14:20 |
12 |
245 |
0.0121584 |
121.584 |
| 14:40 |
7 |
171 |
0.0383851 |
383.851 |
| 15:00 |
12 |
323 |
0.0164927 |
164.927 |
| 15:20 |
0 |
0 |
|
|