KOSPI Backtest Dashboard

run_id: 20260322T114921Z_userreq_toss_tabm3seed_parquet_20260321_tossenriched_target350_z3p1
generated_at_utc: 2026-03-22T11:50:38.269766+00:00

Top KPI

trade_return_per_trade_bp = (total_pnl_final / total_trade_notional) * 10000
metric value
total_pnl_final 39.882M
total_trade_notional 12066.866M
daily_trade_notional 294.314M
total_fee 12.067M
mdd_pnl -2.989M
alpha_vs_dynamic_notional_beta_pnl_final 32.395M
alpha_vs_avg_hold_notional_beta_pnl_final 33.241M
dynamic_alpha_mdd_pnl -1.694M
avg_hold_alpha_mdd_pnl -1.841M
dynamic_alpha_sharpe_annualized 11.5877
avg_hold_alpha_sharpe_annualized 11.4492
time_avg_total_notional_position_usdt 59.618M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 59.618M
trade_return_per_trade_bp 33.05bp
roi_avg_notional_position_pct 66.90%
roi_peak_notional_position_pct 39.51%
num_trades 4,914
high_mc_trade_notional 0.000M
high_mc_sharpe_annualized
high_mc_trade_return_per_trade_bp
low_mc_trade_notional 12066.866M
low_mc_sharpe_annualized 12.807
low_mc_trade_return_per_trade_bp 33.05bp
sharpe_annualized 12.807

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 3.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 39.882M
total_pnl_peak 39.928M
dynamic_notional_beta_pnl_final 7.488M
alpha_vs_dynamic_notional_beta_pnl_final 32.395M
avg_hold_notional_beta_pnl_final 6.641M
alpha_vs_avg_hold_notional_beta_pnl_final 33.241M
high_mc_dynamic_notional_beta_pnl_final 0.000M
low_mc_dynamic_notional_beta_pnl_final 7.488M
high_mc_avg_hold_notional_beta_pnl_final 0.000M
low_mc_avg_hold_notional_beta_pnl_final 6.641M
high_mc_alpha_vs_dynamic_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_dynamic_notional_beta_pnl_final 32.395M
high_mc_alpha_vs_avg_hold_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_avg_hold_notional_beta_pnl_final 33.241M
dynamic_alpha_mdd_pnl -1.694M
dynamic_alpha_sharpe_annualized 11.5877
avg_hold_alpha_mdd_pnl -1.841M
avg_hold_alpha_sharpe_annualized 11.4492
num_trades 4,914
total_traded_amount_sum 9.32731e+06
total_trade_notional 12066.866M
daily_trade_notional 294.314M
trading_day_count 41
total_fee 12.067M
time_avg_total_notional_position_usdt 59.618M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 59.618M
time_avg_net_position_usdt 59.618M
time_avg_abs_net_position_usdt 59.618M
peak_abs_net_position_usdt 1.00936e+08
roi_avg_notional_position_pct 66.90%
roi_peak_notional_position_pct 39.51%
mdd_pnl -2.989M
sharpe_annualized 12.807
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 39.882M
low_mc_trade_notional 12066.866M
low_mc_num_trades 4,914
low_mc_sharpe_annualized 12.807
low_mc_trade_return_per_trade_bp 33.05bp
model_zscore_pnl_final 3855.174M
hedge_zscore_pnl_final 788.120M
force_zscore_pnl_final 0.000M
funding_fee_pnl_final 0.000M
funding_event_count 0
model_win_rate_20m 64.76%
hedge_win_rate_20m 44.37%
force_win_rate_20m
model_win_rate_btc_adj_20m 64.76%
hedge_win_rate_btc_adj_20m 44.37%
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.98823e+07 1.20669e+10 4914 12.807 33.0511
high 0 0 0
low 3.98823e+07 1.20669e+10 4914 12.807 33.0511

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 3094 1.11306e+07 0.00147391 14.7391 0.615708 0.00312201 -0.000289686 0.00189142 1.11306e+07 0.00147391 14.7391 0.615708
10 3094 1.67333e+07 0.00221582 22.1582 0.642534 0.00527036 -0.000755207 0.00377222 1.67333e+07 0.00221582 22.1582 0.642534
20 3093 2.004e+07 0.00265457 26.5457 0.647591 0.00682379 -0.00118762 0.00451546 2.004e+07 0.00265457 26.5457 0.647591
30 3090 2.03625e+07 0.00269995 26.9995 0.652427 0.00488451 -0.000138733 0.00173425 2.03625e+07 0.00269995 26.9995 0.652427
60 3088 2.35327e+07 0.00312234 31.2234 0.646373 0.00330447 0.00102667 0.00058777 2.35327e+07 0.00312234 31.2234 0.646373
120 3084 4.11571e+07 0.00546804 54.6804 0.624514 -0.00716655 0.00877884 0.000975398 4.11571e+07 0.00546804 54.6804 0.624514
240 3073 4.85605e+07 0.00647525 64.7525 0.60039 0.00269898 0.00478457 9.2051e-05 4.85605e+07 0.00647525 64.7525 0.60039

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 1820 -3.39297e+06 -0.000751466 -7.51466 0.365385 0.00118252 -0.000958078 0.00079984 -3.39297e+06 -0.000751466 -7.51466 0.365385
10 1820 -3.32738e+06 -0.00073694 -7.3694 0.424176 0.000306892 -0.000795122 2.74775e-05 -3.32738e+06 -0.00073694 -7.3694 0.424176
20 1819 -3.88114e+06 -0.000860075 -8.60075 0.44365 0.00120885 -0.00111975 0.000286896 -3.88114e+06 -0.000860075 -8.60075 0.44365
30 1817 -4.71683e+06 -0.00104642 -10.4642 0.44689 0.000901167 -0.00124417 9.48121e-05 -4.71683e+06 -0.00104642 -10.4642 0.44689
60 1816 -6.56252e+06 -0.0014567 -14.567 0.462004 0.00371188 -0.00219685 0.000733589 -6.56252e+06 -0.0014567 -14.567 0.462004
120 1813 -6.90382e+06 -0.00153505 -15.3505 0.4738 0.00549153 -0.00258716 0.000914869 -6.90382e+06 -0.00153505 -15.3505 0.4738
240 1807 -5.29277e+06 -0.00118083 -11.8083 0.500277 -4.39456e-05 -0.00125314 2.78349e-08 -5.29277e+06 -0.00118083 -11.8083 0.500277

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 140 240266 0.0111225 111.225
09:20 126 199844 0.0048681 48.681
09:40 137 351601 -0.00153526 -15.3526
10:00 139 284119 0.00391299 39.1299
10:20 151 298904 0.00227727 22.7727
10:40 160 363397 0.00341197 34.1197
11:00 184 436755 0.00135484 13.5484
11:20 163 384037 0.00502746 50.2746
11:40 108 250706 0.00401123 40.1123
12:00 105 236427 0.00667579 66.7579
12:20 92 221928 0.00629689 62.9689
12:40 113 229120 0.00327717 32.7717
13:00 117 210471 0.00558928 55.8928
13:20 223 313553 0.0275763 275.763
13:40 214 281337 0.00501674 50.1674
14:00 133 151472 0.0029268 29.268
14:20 89 108003 0.00266413 26.6413
14:40 39 52405 0.00245044 24.5044
15:00 61 58830 0.00147292 14.7292
15:20 0 0

Z-Score-Quality Scatter + Regression

Model Buy/Sell Scatter + Regression