KOSPI Backtest Dashboard

run_id: 20260321T_userreq_toss_tabm_alpha_ce_parquet_20260321_tossenriched_target350_z2p6
generated_at_utc: 2026-03-21T14:00:15.470731+00:00

Top KPI

trade_return_per_trade_bp = (total_pnl_final / total_trade_notional) * 10000
metric value
total_pnl_final 36.363M
total_trade_notional 12858.874M
daily_trade_notional 313.631M
total_fee 12.859M
mdd_pnl -7.984M
alpha_vs_dynamic_notional_beta_pnl_final 30.568M
alpha_vs_avg_hold_notional_beta_pnl_final 29.679M
dynamic_alpha_mdd_pnl -1.305M
avg_hold_alpha_mdd_pnl -2.332M
dynamic_alpha_sharpe_annualized 11.6533
avg_hold_alpha_sharpe_annualized 10.7713
time_avg_total_notional_position_usdt 60.006M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 60.006M
trade_return_per_trade_bp 28.28bp
roi_avg_notional_position_pct 60.60%
roi_peak_notional_position_pct 35.95%
num_trades 5,480
high_mc_trade_notional 0.000M
high_mc_sharpe_annualized
high_mc_trade_return_per_trade_bp
low_mc_trade_notional 12858.874M
low_mc_sharpe_annualized 9.48136
low_mc_trade_return_per_trade_bp 28.28bp
sharpe_annualized 9.48136

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.6
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 36.363M
total_pnl_peak 37.709M
dynamic_notional_beta_pnl_final 5.795M
alpha_vs_dynamic_notional_beta_pnl_final 30.568M
avg_hold_notional_beta_pnl_final 6.684M
alpha_vs_avg_hold_notional_beta_pnl_final 29.679M
high_mc_dynamic_notional_beta_pnl_final 0.000M
low_mc_dynamic_notional_beta_pnl_final 5.795M
high_mc_avg_hold_notional_beta_pnl_final 0.000M
low_mc_avg_hold_notional_beta_pnl_final 6.684M
high_mc_alpha_vs_dynamic_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_dynamic_notional_beta_pnl_final 30.568M
high_mc_alpha_vs_avg_hold_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_avg_hold_notional_beta_pnl_final 29.679M
dynamic_alpha_mdd_pnl -1.305M
dynamic_alpha_sharpe_annualized 11.6533
avg_hold_alpha_mdd_pnl -2.332M
avg_hold_alpha_sharpe_annualized 10.7713
num_trades 5,480
total_traded_amount_sum 6.01396e+06
total_trade_notional 12858.874M
daily_trade_notional 313.631M
trading_day_count 41
total_fee 12.859M
time_avg_total_notional_position_usdt 60.006M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 60.006M
time_avg_net_position_usdt 60.006M
time_avg_abs_net_position_usdt 60.006M
peak_abs_net_position_usdt 1.0114e+08
roi_avg_notional_position_pct 60.60%
roi_peak_notional_position_pct 35.95%
mdd_pnl -7.984M
sharpe_annualized 9.48136
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 36.363M
low_mc_trade_notional 12858.874M
low_mc_num_trades 5,480
low_mc_sharpe_annualized 9.48136
low_mc_trade_return_per_trade_bp 28.28bp
model_zscore_pnl_final 1671.081M
hedge_zscore_pnl_final 190.669M
force_zscore_pnl_final 0.000M
funding_fee_pnl_final 0.000M
funding_event_count 0
model_win_rate_20m 57.39%
hedge_win_rate_20m 47.51%
force_win_rate_20m
model_win_rate_btc_adj_20m 57.39%
hedge_win_rate_btc_adj_20m 47.51%
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.63632e+07 1.28589e+10 5480 9.48136 28.2787
high 0 0 0
low 3.63632e+07 1.28589e+10 5480 9.48136 28.2787

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 3872 5.67458e+06 0.000627878 6.27878 0.537448 3.30894e-05 0.000545996 4.98954e-08 5.67458e+06 0.000627878 6.27878 0.537448
10 3872 1.03882e+07 0.00114943 11.4943 0.561983 0.00783915 -0.000462015 0.00212505 1.03882e+07 0.00114943 11.4943 0.561983
20 3872 1.3685e+07 0.00151421 15.1421 0.573864 0.00817049 -0.000192941 0.00156595 1.3685e+07 0.00151421 15.1421 0.573864
30 3869 1.45063e+07 0.00160643 16.0643 0.569398 0.0069741 0.000132782 0.000999785 1.45063e+07 0.00160643 16.0643 0.569398
60 3861 1.71588e+07 0.0019035 19.035 0.575758 0.010568 -0.000177778 0.00150787 1.71588e+07 0.0019035 19.035 0.575758
120 3775 3.27136e+07 0.00371561 37.1561 0.581722 0.0216059 -0.000357261 0.00197877 3.27136e+07 0.00371561 37.1561 0.581722
240 3724 4.04268e+07 0.00465832 46.5832 0.562836 0.0299721 -0.000694978 0.00219294 4.04268e+07 0.00465832 46.5832 0.562836

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 1608 -2.33541e+06 -0.000611178 -6.11178 0.436567 -0.00120967 -0.000528486 0.000117539 -2.33541e+06 -0.000611178 -6.11178 0.436567
10 1608 -2.12915e+06 -0.000557201 -5.57201 0.445896 -0.00671569 -0.000156659 0.00200339 -2.12915e+06 -0.000557201 -5.57201 0.445896
20 1606 -2.27086e+06 -0.00059506 -5.9506 0.475093 0.000742699 -0.000611409 1.14534e-05 -2.27086e+06 -0.00059506 -5.9506 0.475093
30 1605 -3.50857e+06 -0.000920008 -9.20008 0.457944 -0.00169501 -0.000833212 3.63523e-05 -3.50857e+06 -0.000920008 -9.20008 0.457944
60 1601 -5.32772e+06 -0.00140073 -14.0073 0.475953 -0.0139645 -0.000777073 0.00137198 -5.32772e+06 -0.00140073 -14.0073 0.475953
120 1593 -4.72923e+06 -0.00124998 -12.4998 0.472065 -0.0178175 -0.000508341 0.00154463 -4.72923e+06 -0.00124998 -12.4998 0.472065
240 1581 -7.49362e+06 -0.00199652 -19.9652 0.468058 -0.0229801 -0.000962318 0.00149172 -7.49362e+06 -0.00199652 -19.9652 0.468058

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 66 99588 0.0106483 106.483
09:20 64 101247 0.00646728 64.6728
09:40 87 185975 -0.00188562 -18.8562
10:00 86 140704 0.00588216 58.8216
10:20 96 135298 -0.000299443 -2.99443
10:40 110 166501 0.00164027 16.4027
11:00 170 251221 0.000479888 4.79888
11:20 141 176621 0.00363301 36.3301
11:40 115 136777 0.00303031 30.3031
12:00 120 169428 0.00475412 47.5412
12:20 137 177546 0.00390171 39.0171
12:40 164 139958 0.00310096 31.0096
13:00 187 216950 0.00416759 41.6759
13:20 425 364883 0.0162388 162.388
13:40 342 204365 0.00308005 30.8005
14:00 217 172413 0.0024827 24.827
14:20 135 110044 0.00750088 75.0088
14:40 79 27871 0.00723158 72.3158
15:00 83 40784 0.00249995 24.9995
15:20 0 0

Z-Score-Quality Scatter + Regression

Model Buy/Sell Scatter + Regression