KOSPI Backtest Dashboard

run_id: 20260322T114921Z_userreq_toss_tabm3seed_parquet_20260321_tossenriched_target350_z2p9
generated_at_utc: 2026-03-22T11:50:19.822184+00:00

Top KPI

trade_return_per_trade_bp = (total_pnl_final / total_trade_notional) * 10000
metric value
total_pnl_final 42.031M
total_trade_notional 15094.961M
daily_trade_notional 368.170M
total_fee 15.095M
mdd_pnl -4.308M
alpha_vs_dynamic_notional_beta_pnl_final 34.358M
alpha_vs_avg_hold_notional_beta_pnl_final 33.629M
dynamic_alpha_mdd_pnl -1.774M
avg_hold_alpha_mdd_pnl -1.949M
dynamic_alpha_sharpe_annualized 11.9494
avg_hold_alpha_sharpe_annualized 11.1503
time_avg_total_notional_position_usdt 75.424M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 75.424M
trade_return_per_trade_bp 27.84bp
roi_avg_notional_position_pct 55.73%
roi_peak_notional_position_pct 41.27%
num_trades 6,318
high_mc_trade_notional 0.000M
high_mc_sharpe_annualized
high_mc_trade_return_per_trade_bp
low_mc_trade_notional 15094.961M
low_mc_sharpe_annualized 12.5089
low_mc_trade_return_per_trade_bp 27.84bp
sharpe_annualized 12.5089

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.9
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 42.031M
total_pnl_peak 42.077M
dynamic_notional_beta_pnl_final 7.673M
alpha_vs_dynamic_notional_beta_pnl_final 34.358M
avg_hold_notional_beta_pnl_final 8.402M
alpha_vs_avg_hold_notional_beta_pnl_final 33.629M
high_mc_dynamic_notional_beta_pnl_final 0.000M
low_mc_dynamic_notional_beta_pnl_final 7.673M
high_mc_avg_hold_notional_beta_pnl_final 0.000M
low_mc_avg_hold_notional_beta_pnl_final 8.402M
high_mc_alpha_vs_dynamic_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_dynamic_notional_beta_pnl_final 34.358M
high_mc_alpha_vs_avg_hold_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_avg_hold_notional_beta_pnl_final 33.629M
dynamic_alpha_mdd_pnl -1.774M
dynamic_alpha_sharpe_annualized 11.9494
avg_hold_alpha_mdd_pnl -1.949M
avg_hold_alpha_sharpe_annualized 11.1503
num_trades 6,318
total_traded_amount_sum 1.12197e+07
total_trade_notional 15094.961M
daily_trade_notional 368.170M
trading_day_count 41
total_fee 15.095M
time_avg_total_notional_position_usdt 75.424M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 75.424M
time_avg_net_position_usdt 75.424M
time_avg_abs_net_position_usdt 75.424M
peak_abs_net_position_usdt 1.01851e+08
roi_avg_notional_position_pct 55.73%
roi_peak_notional_position_pct 41.27%
mdd_pnl -4.308M
sharpe_annualized 12.5089
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 42.031M
low_mc_trade_notional 15094.961M
low_mc_num_trades 6,318
low_mc_sharpe_annualized 12.5089
low_mc_trade_return_per_trade_bp 27.84bp
model_zscore_pnl_final 4725.024M
hedge_zscore_pnl_final 905.083M
force_zscore_pnl_final 0.000M
funding_fee_pnl_final 0.000M
funding_event_count 0
model_win_rate_20m 63.96%
hedge_win_rate_20m 44.01%
force_win_rate_20m
model_win_rate_btc_adj_20m 63.96%
hedge_win_rate_btc_adj_20m 44.01%
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.20313e+07 1.5095e+10 6318 12.5089 27.8446
high 0 0 0
low 4.20313e+07 1.5095e+10 6318 12.5089 27.8446

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 4122 1.37082e+07 0.00140579 14.0579 0.615721 0.00196694 0.000354368 0.000899327 1.37082e+07 0.00140579 14.0579 0.615721
10 4122 1.93454e+07 0.00198389 19.8389 0.639981 0.00455779 -0.000457766 0.00312841 1.93454e+07 0.00198389 19.8389 0.639981
20 4118 2.28745e+07 0.00234822 23.4822 0.639631 0.00441663 2.98106e-05 0.00211837 2.28745e+07 0.00234822 23.4822 0.639631
30 4112 2.23757e+07 0.00230055 23.0055 0.638132 0.00154016 0.00139835 0.00018095 2.23757e+07 0.00230055 23.0055 0.638132
60 4108 2.6194e+07 0.00269586 26.9586 0.62999 0.00135786 0.0019335 9.45552e-05 2.6194e+07 0.00269586 26.9586 0.62999
120 4103 4.44173e+07 0.0045773 45.773 0.613941 -0.0048658 0.0069708 0.000464169 4.44173e+07 0.0045773 45.773 0.613941
240 4084 4.98425e+07 0.00516155 51.6155 0.58619 -0.00156391 0.00593576 3.2693e-05 4.98425e+07 0.00516155 51.6155 0.58619

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 2196 -3.37073e+06 -0.000630784 -6.30784 0.379326 0.0016493 -0.000899922 0.00158508 -3.37073e+06 -0.000630784 -6.30784 0.379326
10 2196 -3.63225e+06 -0.000679723 -6.79723 0.417577 0.000610261 -0.000769635 9.86133e-05 -3.63225e+06 -0.000679723 -6.79723 0.417577
20 2195 -5.11428e+06 -0.000957523 -9.57523 0.440091 0.00241123 -0.00137254 0.000938417 -5.11428e+06 -0.000957523 -9.57523 0.440091
30 2193 -5.39132e+06 -0.00101036 -10.1036 0.445964 0.00227095 -0.00140449 0.000571658 -5.39132e+06 -0.00101036 -10.1036 0.445964
60 2188 -6.12225e+06 -0.00115007 -11.5007 0.47075 0.00300286 -0.0017159 0.00047783 -6.12225e+06 -0.00115007 -11.5007 0.47075
120 2185 -5.57503e+06 -0.00104875 -10.4875 0.480549 0.00651124 -0.00220013 0.00129333 -5.57503e+06 -0.00104875 -10.4875 0.480549
240 2177 -4.42515e+06 -0.000835629 -8.35629 0.50023 0.00393657 -0.00158066 0.000225439 -4.42515e+06 -0.000835629 -8.35629 0.50023

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 207 331870 0.00716572 71.6572
09:20 172 284211 0.00566495 56.6495
09:40 177 403115 -0.00209558 -20.9558
10:00 186 348079 0.00394488 39.4488
10:20 186 349776 0.00196814 19.6814
10:40 197 427284 0.0033871 33.871
11:00 225 484635 0.00294046 29.4046
11:20 209 430747 0.00453791 45.3791
11:40 146 347789 0.00408619 40.8619
12:00 135 232320 0.00556253 55.6253
12:20 128 294575 0.00373304 37.3304
12:40 142 244391 0.00399047 39.9047
13:00 164 330822 0.00368464 36.8464
13:20 274 332465 0.0247737 247.737
13:40 235 273471 0.00633682 63.3682
14:00 170 241993 0.00196762 19.6762
14:20 129 100551 0.00501917 50.1917
14:40 56 40100 0.00846895 84.6895
15:00 105 130891 0.00540069 54.0069
15:20 0 0

Z-Score-Quality Scatter + Regression

Model Buy/Sell Scatter + Regression