KOSPI Backtest Dashboard

run_id: 20260321T011607Z_userreq_toss_tabm_enhanced_129feat_20260320_target350_z2p8
generated_at_utc: 2026-03-21T01:16:49.337133+00:00

Top KPI

trade_return_per_trade_bp = (total_pnl_final / total_trade_notional) * 10000
metric value
total_pnl_final 35.831M
total_trade_notional 13353.191M
daily_trade_notional 325.688M
total_fee 13.353M
mdd_pnl -16.283M
alpha_vs_dynamic_notional_beta_pnl_final 24.850M
alpha_vs_avg_hold_notional_beta_pnl_final 25.234M
dynamic_alpha_mdd_pnl -4.470M
avg_hold_alpha_mdd_pnl -3.772M
dynamic_alpha_sharpe_annualized 6.82711
avg_hold_alpha_sharpe_annualized 6.88488
time_avg_total_notional_position_usdt 95.129M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 95.129M
trade_return_per_trade_bp 26.83bp
roi_avg_notional_position_pct 37.67%
roi_peak_notional_position_pct 34.91%
num_trades 7,038
high_mc_trade_notional 0.000M
high_mc_sharpe_annualized
high_mc_trade_return_per_trade_bp
low_mc_trade_notional 13353.191M
low_mc_sharpe_annualized 7.24662
low_mc_trade_return_per_trade_bp 26.83bp
sharpe_annualized 7.24662

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.8
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 35.831M
total_pnl_peak 37.356M
dynamic_notional_beta_pnl_final 10.981M
alpha_vs_dynamic_notional_beta_pnl_final 24.850M
avg_hold_notional_beta_pnl_final 10.597M
alpha_vs_avg_hold_notional_beta_pnl_final 25.234M
high_mc_dynamic_notional_beta_pnl_final 0.000M
low_mc_dynamic_notional_beta_pnl_final 10.981M
high_mc_avg_hold_notional_beta_pnl_final 0.000M
low_mc_avg_hold_notional_beta_pnl_final 10.597M
high_mc_alpha_vs_dynamic_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_dynamic_notional_beta_pnl_final 24.850M
high_mc_alpha_vs_avg_hold_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_avg_hold_notional_beta_pnl_final 25.234M
dynamic_alpha_mdd_pnl -4.470M
dynamic_alpha_sharpe_annualized 6.82711
avg_hold_alpha_mdd_pnl -3.772M
avg_hold_alpha_sharpe_annualized 6.88488
num_trades 7,038
total_traded_amount_sum 1.77902e+07
total_trade_notional 13353.191M
daily_trade_notional 325.688M
trading_day_count 41
total_fee 13.353M
time_avg_total_notional_position_usdt 95.129M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 95.129M
time_avg_net_position_usdt 95.129M
time_avg_abs_net_position_usdt 95.129M
peak_abs_net_position_usdt 1.02646e+08
roi_avg_notional_position_pct 37.67%
roi_peak_notional_position_pct 34.91%
mdd_pnl -16.283M
sharpe_annualized 7.24662
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 35.831M
low_mc_trade_notional 13353.191M
low_mc_num_trades 7,038
low_mc_sharpe_annualized 7.24662
low_mc_trade_return_per_trade_bp 26.83bp
model_zscore_pnl_final 5606.708M
hedge_zscore_pnl_final 470.670M
force_zscore_pnl_final 0.000M
funding_fee_pnl_final 0.000M
funding_event_count 0
model_win_rate_20m 56.07%
hedge_win_rate_20m 44.82%
force_win_rate_20m
model_win_rate_btc_adj_20m 56.07%
hedge_win_rate_btc_adj_20m 44.82%
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.58308e+07 1.33532e+10 7038 7.24662 26.8331
high 0 0 0
low 3.58308e+07 1.33532e+10 7038 7.24662 26.8331

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 4999 1.19656e+07 0.00133412 13.3412 0.529306 0.0038494 -0.00130229 0.00804482 1.19656e+07 0.00133412 13.3412 0.529306
10 4999 1.50091e+07 0.00167346 16.7346 0.545509 0.00593831 -0.0023148 0.0119273 1.50091e+07 0.00167346 16.7346 0.545509
20 4997 1.77254e+07 0.00197735 19.7735 0.560736 0.00701728 -0.00283746 0.0101035 1.77254e+07 0.00197735 19.7735 0.560736
30 4993 1.9169e+07 0.00214004 21.4004 0.572001 0.00685921 -0.0024448 0.00752613 1.9169e+07 0.00214004 21.4004 0.572001
60 4987 2.37074e+07 0.00264932 26.4932 0.565671 0.0109411 -0.00434114 0.0125315 2.37074e+07 0.00264932 26.4932 0.565671
120 4973 2.79797e+07 0.00313725 31.3725 0.559622 0.0147576 -0.00616621 0.0115518 2.79797e+07 0.00313725 31.3725 0.559622
240 4944 3.19659e+07 0.00361283 36.1283 0.533778 0.00931362 -0.00232298 0.00277919 3.19659e+07 0.00361283 36.1283 0.533778

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 2039 -4.49357e+06 -0.00102492 -10.2492 0.393821 -0.000502985 -0.00101901 6.38729e-05 -4.49357e+06 -0.00102492 -10.2492 0.393821
10 2039 -4.08297e+06 -0.000931273 -9.31273 0.417361 -0.0014438 -0.000870922 0.000429593 -4.08297e+06 -0.000931273 -9.31273 0.417361
20 2037 -4.22293e+06 -0.000964259 -9.64259 0.448208 -0.002722 -0.000725615 0.00103051 -4.22293e+06 -0.000964259 -9.64259 0.448208
30 2034 -4.33824e+06 -0.000992318 -9.92318 0.472468 -0.00224904 -0.000665324 0.000341805 -4.33824e+06 -0.000992318 -9.92318 0.472468
60 2028 -4.36754e+06 -0.00100201 -10.0201 0.490631 -0.00123552 -0.000776285 8.08476e-05 -4.36754e+06 -0.00100201 -10.0201 0.490631
120 2020 172718 3.98108e-05 0.398108 0.526238 0.0160116 -0.00179497 0.00791877 172718 3.98108e-05 0.398108 0.526238
240 2010 -2.7445e+06 -0.000636934 -6.36934 0.519403 0.00538676 -0.00144185 0.000479084 -2.7445e+06 -0.000636934 -6.36934 0.519403

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 561 474939 0.0105478 105.478
09:20 240 137663 0.00184864 18.4864
09:40 171 166127 -0.00367525 -36.7525
10:00 136 157285 0.00763174 76.3174
10:20 149 201954 0.000484718 4.84718
10:40 192 310549 0.00472339 47.2339
11:00 390 875254 0.0035434 35.434
11:20 284 853703 0.0015151 15.151
11:40 221 689885 0.00423521 42.3521
12:00 180 566530 0.00565267 56.5267
12:20 201 818631 0.00340895 34.0895
12:40 217 832971 0.00334012 33.4012
13:00 263 797077 0.000952317 9.52317
13:20 189 497927 0.00573642 57.3642
13:40 108 265158 0.0084567 84.567
14:00 104 183311 0.00411601 41.1601
14:20 117 262330 0.00273961 27.3961
14:40 121 422480 0.00257426 25.7426
15:00 152 417999 0.00161475 16.1475
15:20 0 0

Z-Score-Quality Scatter + Regression

Model Buy/Sell Scatter + Regression