KOSPI Backtest Dashboard

run_id: 20260321T_userreq_toss_tabm_alpha_ce_parquet_20260321_tossenriched_target350_z2p1
generated_at_utc: 2026-03-21T13:57:54.904203+00:00

Top KPI

trade_return_per_trade_bp = (total_pnl_final / total_trade_notional) * 10000
metric value
total_pnl_final 40.842M
total_trade_notional 19569.694M
daily_trade_notional 477.310M
total_fee 19.570M
mdd_pnl -8.889M
alpha_vs_dynamic_notional_beta_pnl_final 30.848M
alpha_vs_avg_hold_notional_beta_pnl_final 31.037M
dynamic_alpha_mdd_pnl -1.267M
avg_hold_alpha_mdd_pnl -1.629M
dynamic_alpha_sharpe_annualized 11.65
avg_hold_alpha_sharpe_annualized 11.5406
time_avg_total_notional_position_usdt 88.022M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 88.022M
trade_return_per_trade_bp 20.87bp
roi_avg_notional_position_pct 46.40%
roi_peak_notional_position_pct 38.54%
num_trades 9,235
high_mc_trade_notional 0.000M
high_mc_sharpe_annualized
high_mc_trade_return_per_trade_bp
low_mc_trade_notional 19569.694M
low_mc_sharpe_annualized 9.24918
low_mc_trade_return_per_trade_bp 20.87bp
sharpe_annualized 9.24918

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.1
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 40.842M
total_pnl_peak 41.768M
dynamic_notional_beta_pnl_final 9.993M
alpha_vs_dynamic_notional_beta_pnl_final 30.848M
avg_hold_notional_beta_pnl_final 9.805M
alpha_vs_avg_hold_notional_beta_pnl_final 31.037M
high_mc_dynamic_notional_beta_pnl_final 0.000M
low_mc_dynamic_notional_beta_pnl_final 9.993M
high_mc_avg_hold_notional_beta_pnl_final 0.000M
low_mc_avg_hold_notional_beta_pnl_final 9.805M
high_mc_alpha_vs_dynamic_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_dynamic_notional_beta_pnl_final 30.848M
high_mc_alpha_vs_avg_hold_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_avg_hold_notional_beta_pnl_final 31.037M
dynamic_alpha_mdd_pnl -1.267M
dynamic_alpha_sharpe_annualized 11.65
avg_hold_alpha_mdd_pnl -1.629M
avg_hold_alpha_sharpe_annualized 11.5406
num_trades 9,235
total_traded_amount_sum 8.70229e+06
total_trade_notional 19569.694M
daily_trade_notional 477.310M
trading_day_count 41
total_fee 19.570M
time_avg_total_notional_position_usdt 88.022M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 88.022M
time_avg_net_position_usdt 88.022M
time_avg_abs_net_position_usdt 88.022M
peak_abs_net_position_usdt 1.05963e+08
roi_avg_notional_position_pct 46.40%
roi_peak_notional_position_pct 38.54%
mdd_pnl -8.889M
sharpe_annualized 9.24918
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 40.842M
low_mc_trade_notional 19569.694M
low_mc_num_trades 9,235
low_mc_sharpe_annualized 9.24918
low_mc_trade_return_per_trade_bp 20.87bp
model_zscore_pnl_final 2439.870M
hedge_zscore_pnl_final 177.655M
force_zscore_pnl_final 0.000M
funding_fee_pnl_final 0.000M
funding_event_count 0
model_win_rate_20m 55.17%
hedge_win_rate_20m 45.14%
force_win_rate_20m
model_win_rate_btc_adj_20m 55.17%
hedge_win_rate_btc_adj_20m 45.14%
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 4.08418e+07 1.95697e+10 9235 9.24918 20.8699
high 0 0 0
low 4.08418e+07 1.95697e+10 9235 9.24918 20.8699

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 7263 8.12126e+06 0.000532793 5.32793 0.522236 0.00352149 -0.000126656 0.000804179 8.12126e+06 0.000532793 5.32793 0.522236
10 7263 1.32946e+07 0.000872186 8.72186 0.543577 0.00873281 -0.000719305 0.00358228 1.32946e+07 0.000872186 8.72186 0.543577
20 7261 1.66058e+07 0.00108978 10.8978 0.551715 0.0109137 -0.00085132 0.00375377 1.66058e+07 0.00108978 10.8978 0.551715
30 7252 1.58632e+07 0.00104206 10.4206 0.550193 0.00838104 -0.000458876 0.00168449 1.58632e+07 0.00104206 10.4206 0.550193
60 7224 1.86785e+07 0.00123073 12.3073 0.54928 0.00927466 -0.000427633 0.00111646 1.86785e+07 0.00123073 12.3073 0.54928
120 7130 3.66596e+07 0.00244531 24.4531 0.557784 0.029823 -0.00235161 0.00454123 3.66596e+07 0.00244531 24.4531 0.557784
240 6980 4.23404e+07 0.00288868 28.8868 0.544842 0.0280332 -0.00165439 0.00208703 4.23404e+07 0.00288868 28.8868 0.544842

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 1972 -3.52727e+06 -0.000815196 -8.15196 0.394016 0.00134829 -0.00085149 0.000174553 -3.52727e+06 -0.000815196 -8.15196 0.394016
10 1972 -3.69137e+06 -0.000853123 -8.53123 0.429513 0.00341607 -0.000953096 0.000648934 -3.69137e+06 -0.000853123 -8.53123 0.429513
20 1967 -4.07516e+06 -0.000944548 -9.44548 0.451449 0.0125364 -0.00136451 0.00507347 -4.07516e+06 -0.000944548 -9.44548 0.451449
30 1965 -5.80346e+06 -0.00134667 -13.4667 0.444784 0.0091256 -0.00147196 0.00159186 -5.80346e+06 -0.00134667 -13.4667 0.444784
60 1955 -7.34085e+06 -0.00171221 -17.1221 0.471611 -0.00242633 -0.00137564 5.02987e-05 -7.34085e+06 -0.00171221 -17.1221 0.471611
120 1943 -6.09752e+06 -0.00143031 -14.3031 0.473495 0.00880761 -0.00155204 0.00037199 -6.09752e+06 -0.00143031 -14.3031 0.473495
240 1920 -6.90994e+06 -0.00164002 -16.4002 0.461979 0.0140164 -0.00217185 0.000457363 -6.90994e+06 -0.00164002 -16.4002 0.461979

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 165 232611 0.000921701 9.21701
09:20 162 199679 0.00177397 17.7397
09:40 146 262554 0.000858368 8.58368
10:00 170 211505 0.00520256 52.0256
10:20 211 273240 0.000654724 6.54724
10:40 229 284523 0.00280469 28.0469
11:00 337 379971 -0.000413796 -4.13796
11:20 237 308295 0.00149014 14.9014
11:40 240 292525 0.00330079 33.0079
12:00 258 265147 0.00379917 37.9917
12:20 300 201936 0.00307627 30.7627
12:40 354 287569 0.00276753 27.6753
13:00 320 269461 0.00283269 28.3269
13:20 501 356421 0.0167563 167.563
13:40 439 178126 0.00504749 50.4749
14:00 284 122159 0.00197037 19.7037
14:20 205 94660 0.00554291 55.4291
14:40 198 52816 0.00571569 57.1569
15:00 157 87833 0.00437569 43.7569
15:20 0 0

Z-Score-Quality Scatter + Regression

Model Buy/Sell Scatter + Regression