KOSPI Backtest Dashboard

run_id: 20260321T_userreq_toss_tabm_alpha_ce_parquet_20260321_tossenriched_target350_z3p4
generated_at_utc: 2026-03-21T13:55:32.620330+00:00

Top KPI

trade_return_per_trade_bp = (total_pnl_final / total_trade_notional) * 10000
metric value
total_pnl_final 29.638M
total_trade_notional 5162.457M
daily_trade_notional 125.914M
total_fee 5.162M
mdd_pnl -2.306M
alpha_vs_dynamic_notional_beta_pnl_final 24.345M
alpha_vs_avg_hold_notional_beta_pnl_final 26.904M
dynamic_alpha_mdd_pnl -1.959M
avg_hold_alpha_mdd_pnl -1.890M
dynamic_alpha_sharpe_annualized 10.5841
avg_hold_alpha_sharpe_annualized 11.115
time_avg_total_notional_position_usdt 24.544M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 24.544M
trade_return_per_trade_bp 57.41bp
roi_avg_notional_position_pct 120.75%
roi_peak_notional_position_pct 29.28%
num_trades 2,134
high_mc_trade_notional 0.000M
high_mc_sharpe_annualized
high_mc_trade_return_per_trade_bp
low_mc_trade_notional 5162.457M
low_mc_sharpe_annualized 11.222
low_mc_trade_return_per_trade_bp 57.41bp
sharpe_annualized 11.222

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.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 29.638M
total_pnl_peak 29.736M
dynamic_notional_beta_pnl_final 5.293M
alpha_vs_dynamic_notional_beta_pnl_final 24.345M
avg_hold_notional_beta_pnl_final 2.734M
alpha_vs_avg_hold_notional_beta_pnl_final 26.904M
high_mc_dynamic_notional_beta_pnl_final 0.000M
low_mc_dynamic_notional_beta_pnl_final 5.293M
high_mc_avg_hold_notional_beta_pnl_final 0.000M
low_mc_avg_hold_notional_beta_pnl_final 2.734M
high_mc_alpha_vs_dynamic_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_dynamic_notional_beta_pnl_final 24.345M
high_mc_alpha_vs_avg_hold_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_avg_hold_notional_beta_pnl_final 26.904M
dynamic_alpha_mdd_pnl -1.959M
dynamic_alpha_sharpe_annualized 10.5841
avg_hold_alpha_mdd_pnl -1.890M
avg_hold_alpha_sharpe_annualized 11.115
num_trades 2,134
total_traded_amount_sum 2.6144e+06
total_trade_notional 5162.457M
daily_trade_notional 125.914M
trading_day_count 41
total_fee 5.162M
time_avg_total_notional_position_usdt 24.544M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 24.544M
time_avg_net_position_usdt 24.544M
time_avg_abs_net_position_usdt 24.544M
peak_abs_net_position_usdt 1.01212e+08
roi_avg_notional_position_pct 120.75%
roi_peak_notional_position_pct 29.28%
mdd_pnl -2.306M
sharpe_annualized 11.222
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 29.638M
low_mc_trade_notional 5162.457M
low_mc_num_trades 2,134
low_mc_sharpe_annualized 11.222
low_mc_trade_return_per_trade_bp 57.41bp
model_zscore_pnl_final 781.239M
hedge_zscore_pnl_final 107.754M
force_zscore_pnl_final 0.000M
funding_fee_pnl_final 0.000M
funding_event_count 0
model_win_rate_20m 56.44%
hedge_win_rate_20m 46.25%
force_win_rate_20m
model_win_rate_btc_adj_20m 56.44%
hedge_win_rate_btc_adj_20m 46.25%
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 2.96377e+07 5.16246e+09 2134 11.222 57.4101
high 0 0 0
low 2.96377e+07 5.16246e+09 2134 11.222 57.4101

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 1375 3.2202e+06 0.000972174 9.72174 0.571636 0.00537679 -0.000314438 0.00128433 3.2202e+06 0.000972174 9.72174 0.571636
10 1375 7.22129e+06 0.0021801 21.801 0.587636 0.0209485 -0.00296465 0.0116484 7.22129e+06 0.0021801 21.801 0.587636
20 1375 8.52421e+06 0.00257345 25.7345 0.564364 0.0319186 -0.0052131 0.0229952 8.52421e+06 0.00257345 25.7345 0.564364
30 1375 9.00984e+06 0.00272006 27.2006 0.574545 0.0273313 -0.00396932 0.0140544 9.00984e+06 0.00272006 27.2006 0.574545
60 1373 1.2972e+07 0.00392218 39.2218 0.582666 0.0429112 -0.00640999 0.0169029 1.2972e+07 0.00392218 39.2218 0.582666
120 1358 2.59242e+07 0.00792633 79.2633 0.611929 0.028018 0.00129646 0.002367 2.59242e+07 0.00792633 79.2633 0.611929
240 1346 3.54779e+07 0.010948 109.48 0.605498 0.0506331 -0.000880815 0.00499183 3.54779e+07 0.010948 109.48 0.605498

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 759 -937012 -0.00050647 -5.0647 0.429513 0.0093208 -0.00100727 0.00911761 -937012 -0.00050647 -5.0647 0.429513
10 759 -1.08887e+06 -0.000588553 -5.88553 0.44137 0.00846485 -0.00103048 0.00450198 -1.08887e+06 -0.000588553 -5.88553 0.44137
20 759 -601376 -0.000325053 -3.25053 0.462451 0.0060815 -0.0006321 0.000765193 -601376 -0.000325053 -3.25053 0.462451
30 756 -1.54653e+06 -0.000839365 -8.39365 0.457672 0.00752311 -0.00118011 0.000463921 -1.54653e+06 -0.000839365 -8.39365 0.457672
60 755 -3.61353e+06 -0.00196392 -19.6392 0.462252 -0.010179 -0.00122446 0.000653319 -3.61353e+06 -0.00196392 -19.6392 0.462252
120 753 -4.09042e+06 -0.00222931 -22.2931 0.466135 -0.0157883 -0.00111005 0.00112237 -4.09042e+06 -0.00222931 -22.2931 0.466135
240 751 -4.50854e+06 -0.00246413 -24.6413 0.480692 -0.0341747 -0.000213432 0.00306087 -4.50854e+06 -0.00246413 -24.6413 0.480692

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 10 9722 0.00560471 56.0471
09:20 20 34097 0.0114007 114.007
09:40 30 60014 -0.00196263 -19.6263
10:00 29 61307 0.00701322 70.1322
10:20 35 74503 0.00105155 10.5155
10:40 40 76515 0.00290797 29.0797
11:00 75 158833 0.0020357 20.357
11:20 59 98297 0.00597623 59.7623
11:40 43 77088 0.00277953 27.7953
12:00 51 84344 0.00602385 60.2385
12:20 43 70443 0.00474163 47.4163
12:40 60 86355 0.00446504 44.6504
13:00 73 55383 0.00721599 72.1599
13:20 183 158975 0.033625 336.25
13:40 160 96582 0.0073218 73.218
14:00 99 33862 0.00316164 31.6164
14:20 44 39518 0.0151863 151.863
14:40 16 25020 0.010024 100.24
15:00 15 6832 0.0250627 250.627
15:20 0 0

Z-Score-Quality Scatter + Regression

Model Buy/Sell Scatter + Regression