KOSPI Backtest Dashboard

run_id: 20260321T_userreq_toss_tabm_alpha_ce_parquet_20260321_tossenriched_target350_z2p4
generated_at_utc: 2026-03-21T14:00:15.409391+00:00

Top KPI

trade_return_per_trade_bp = (total_pnl_final / total_trade_notional) * 10000
metric value
total_pnl_final 38.894M
total_trade_notional 15852.075M
daily_trade_notional 386.636M
total_fee 15.852M
mdd_pnl -7.855M
alpha_vs_dynamic_notional_beta_pnl_final 31.802M
alpha_vs_avg_hold_notional_beta_pnl_final 30.755M
dynamic_alpha_mdd_pnl -1.637M
avg_hold_alpha_mdd_pnl -2.114M
dynamic_alpha_sharpe_annualized 11.7023
avg_hold_alpha_sharpe_annualized 11.0852
time_avg_total_notional_position_usdt 73.069M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 73.069M
trade_return_per_trade_bp 24.54bp
roi_avg_notional_position_pct 53.23%
roi_peak_notional_position_pct 38.21%
num_trades 6,984
high_mc_trade_notional 0.000M
high_mc_sharpe_annualized
high_mc_trade_return_per_trade_bp
low_mc_trade_notional 15852.075M
low_mc_sharpe_annualized 9.53136
low_mc_trade_return_per_trade_bp 24.54bp
sharpe_annualized 9.53136

Run Parameters

source: not_found
param value
active_minutes_ratio 0.5
confidence_median_adjust_multiplier 1
force_hedge_timeout_window 300
force_taker_start_hhmm 1540
hedge_max_amount_krw 2.5e+06
hedge_pred_threshold 0
hedge_slippage 0
high_speed 1
model_slippage 0
one_coin_max_neg_position_krw 0
one_coin_max_pos_position_krw 2.5e+06
position_close_timeout_minutes 120
pred_sma_len 1
total_max_abs_position_krw 1e+08
trade_end_hhmm 1520
trade_start_hhmm 905
z_score_threshold 2.4
z_score_time_window 120

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 38.894M
total_pnl_peak 39.845M
dynamic_notional_beta_pnl_final 7.092M
alpha_vs_dynamic_notional_beta_pnl_final 31.802M
avg_hold_notional_beta_pnl_final 8.139M
alpha_vs_avg_hold_notional_beta_pnl_final 30.755M
high_mc_dynamic_notional_beta_pnl_final 0.000M
low_mc_dynamic_notional_beta_pnl_final 7.092M
high_mc_avg_hold_notional_beta_pnl_final 0.000M
low_mc_avg_hold_notional_beta_pnl_final 8.139M
high_mc_alpha_vs_dynamic_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_dynamic_notional_beta_pnl_final 31.802M
high_mc_alpha_vs_avg_hold_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_avg_hold_notional_beta_pnl_final 30.755M
dynamic_alpha_mdd_pnl -1.637M
dynamic_alpha_sharpe_annualized 11.7023
avg_hold_alpha_mdd_pnl -2.114M
avg_hold_alpha_sharpe_annualized 11.0852
num_trades 6,984
total_traded_amount_sum 7.0981e+06
total_trade_notional 15852.075M
daily_trade_notional 386.636M
trading_day_count 41
total_fee 15.852M
time_avg_total_notional_position_usdt 73.069M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 73.069M
time_avg_net_position_usdt 73.069M
time_avg_abs_net_position_usdt 73.069M
peak_abs_net_position_usdt 1.01788e+08
roi_avg_notional_position_pct 53.23%
roi_peak_notional_position_pct 38.21%
mdd_pnl -7.855M
sharpe_annualized 9.53136
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 38.894M
low_mc_trade_notional 15852.075M
low_mc_num_trades 6,984
low_mc_sharpe_annualized 9.53136
low_mc_trade_return_per_trade_bp 24.54bp
model_zscore_pnl_final 2007.531M
hedge_zscore_pnl_final 198.489M
force_zscore_pnl_final 0.000M
funding_fee_pnl_final 0.000M
funding_event_count 0
model_win_rate_20m 56.52%
hedge_win_rate_20m 46.31%
force_win_rate_20m
model_win_rate_btc_adj_20m 56.52%
hedge_win_rate_btc_adj_20m 46.31%
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 3.88943e+07 1.58521e+10 6984 9.53136 24.5358
high 0 0 0
low 3.88943e+07 1.58521e+10 6984 9.53136 24.5358

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 5126 6.38027e+06 0.000551857 5.51857 0.532969 -0.0036856 0.00107527 0.000653892 6.38027e+06 0.000551857 5.51857 0.532969
10 5126 1.22232e+07 0.00105724 10.5724 0.554819 0.00257283 0.000400749 0.000257169 1.22232e+07 0.00105724 10.5724 0.554819
20 5124 1.58041e+07 0.00136727 13.6727 0.565183 3.89672e-05 0.00111002 3.42808e-08 1.58041e+07 0.00136727 13.6727 0.565183
30 5120 1.6009e+07 0.00138594 13.8594 0.558594 -0.000587385 0.00123371 7.01638e-06 1.6009e+07 0.00138594 13.8594 0.558594
60 5103 1.84438e+07 0.00160154 16.0154 0.562022 0.00574505 0.000398174 0.000409973 1.84438e+07 0.00160154 16.0154 0.562022
120 4993 3.30947e+07 0.00293573 29.3573 0.566794 0.0228304 -0.00119029 0.00245464 3.30947e+07 0.00293573 29.3573 0.566794
240 4907 4.29504e+07 0.00388161 38.8161 0.555533 0.0299995 -0.00150075 0.00238151 4.29504e+07 0.00388161 38.8161 0.555533

Quality By Horizon (Hedge)

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 1858 -2.48497e+06 -0.000579166 -5.79166 0.426265 0.00125323 -0.000639485 0.000152996 -2.48497e+06 -0.000579166 -5.79166 0.426265
10 1858 -2.03416e+06 -0.000474097 -4.74097 0.449946 -0.00298839 -0.000350205 0.000580301 -2.03416e+06 -0.000474097 -4.74097 0.449946
20 1855 -3.01874e+06 -0.000704599 -7.04599 0.463073 0.00823505 -0.00107753 0.00205305 -3.01874e+06 -0.000704599 -7.04599 0.463073
30 1853 -4.08283e+06 -0.000954065 -9.54065 0.457636 0.00560394 -0.00117206 0.000660048 -4.08283e+06 -0.000954065 -9.54065 0.457636
60 1846 -6.1664e+06 -0.00144692 -14.4692 0.471289 -0.00630251 -0.0011217 0.000326674 -6.1664e+06 -0.00144692 -14.4692 0.471289
120 1838 -4.24838e+06 -0.00100112 -10.0112 0.464091 -0.00389517 -0.000912957 8.27335e-05 -4.24838e+06 -0.00100112 -10.0112 0.464091
240 1818 -7.1221e+06 -0.00169846 -16.9846 0.469747 0.00037034 -0.0016921 3.54068e-07 -7.1221e+06 -0.00169846 -16.9846 0.469747

Quality By Horizon (Force)

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 0 0 NaN NaN NaN 0 0 0 0 NaN NaN NaN
10 0 0 NaN NaN NaN 0 0 0 0 NaN NaN NaN
20 0 0 NaN NaN NaN 0 0 0 0 NaN NaN NaN
30 0 0 NaN NaN NaN 0 0 0 0 NaN NaN NaN
60 0 0 NaN NaN NaN 0 0 0 0 NaN NaN NaN
120 0 0 NaN NaN NaN 0 0 0 0 NaN NaN NaN
240 0 0 NaN NaN NaN 0 0 0 0 NaN NaN NaN

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 93 116205 0.00401812 40.1812
09:20 89 131184 0.0040521 40.521
09:40 119 219233 -0.00103445 -10.3445
10:00 115 176668 0.00576892 57.6892
10:20 127 142573 -0.000630127 -6.30127
10:40 147 205809 0.00239463 23.9463
11:00 226 306517 9.38965e-05 0.938965
11:20 182 225780 0.00320302 32.0302
11:40 138 177206 0.00251073 25.1073
12:00 160 204795 0.00353416 35.3416
12:20 198 211716 0.00487677 48.7677
12:40 230 205916 0.00248122 24.8122
13:00 238 271303 0.00297021 29.7021
13:20 494 405826 0.0148102 148.102
13:40 429 212154 0.00358776 35.8776
14:00 257 136608 0.00233557 23.3557
14:20 161 126494 0.00553823 55.3823
14:40 134 39696 0.00264466 26.4466
15:00 102 43461 0.00629142 62.9142
15:20 0 0

Z-Score-Quality Scatter + Regression

Model Buy/Sell Scatter + Regression