KOSPI Backtest Dashboard

run_id: 20260320T091838Z_userreq_toss_full_tabm_256_alpha101_20260320_target350_z1p5
generated_at_utc: 2026-03-20T09:19:05.050368+00:00

Top KPI

trade_return_per_trade_bp = (total_pnl_final / total_trade_notional) * 10000
metric value
total_pnl_final 24.142M
total_trade_notional 12249.635M
daily_trade_notional 298.772M
total_fee 12.250M
mdd_pnl -7.318M
alpha_vs_dynamic_notional_beta_pnl_final 19.565M
alpha_vs_avg_hold_notional_beta_pnl_final 18.851M
dynamic_alpha_mdd_pnl -3.152M
avg_hold_alpha_mdd_pnl -1.843M
dynamic_alpha_sharpe_annualized 8.96529
avg_hold_alpha_sharpe_annualized 10.3109
time_avg_total_notional_position_usdt 47.496M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 47.496M
trade_return_per_trade_bp 19.71bp
roi_avg_notional_position_pct 50.83%
roi_peak_notional_position_pct 24.00%
num_trades 5,012
high_mc_trade_notional 0.000M
high_mc_sharpe_annualized
high_mc_trade_return_per_trade_bp
low_mc_trade_notional 12249.635M
low_mc_sharpe_annualized 10.1702
low_mc_trade_return_per_trade_bp 19.71bp
sharpe_annualized 10.1702

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 1.5
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 24.142M
total_pnl_peak 25.065M
dynamic_notional_beta_pnl_final 4.577M
alpha_vs_dynamic_notional_beta_pnl_final 19.565M
avg_hold_notional_beta_pnl_final 5.291M
alpha_vs_avg_hold_notional_beta_pnl_final 18.851M
high_mc_dynamic_notional_beta_pnl_final 0.000M
low_mc_dynamic_notional_beta_pnl_final 4.577M
high_mc_avg_hold_notional_beta_pnl_final 0.000M
low_mc_avg_hold_notional_beta_pnl_final 5.291M
high_mc_alpha_vs_dynamic_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_dynamic_notional_beta_pnl_final 19.565M
high_mc_alpha_vs_avg_hold_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_avg_hold_notional_beta_pnl_final 18.851M
dynamic_alpha_mdd_pnl -3.152M
dynamic_alpha_sharpe_annualized 8.96529
avg_hold_alpha_mdd_pnl -1.843M
avg_hold_alpha_sharpe_annualized 10.3109
num_trades 5,012
total_traded_amount_sum 8.1469e+06
total_trade_notional 12249.635M
daily_trade_notional 298.772M
trading_day_count 41
total_fee 12.250M
time_avg_total_notional_position_usdt 47.496M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 47.496M
time_avg_net_position_usdt 47.496M
time_avg_abs_net_position_usdt 47.496M
peak_abs_net_position_usdt 1.00597e+08
roi_avg_notional_position_pct 50.83%
roi_peak_notional_position_pct 24.00%
mdd_pnl -7.318M
sharpe_annualized 10.1702
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 24.142M
low_mc_trade_notional 12249.635M
low_mc_num_trades 5,012
low_mc_sharpe_annualized 10.1702
low_mc_trade_return_per_trade_bp 19.71bp
model_zscore_pnl_final 3984.612M
hedge_zscore_pnl_final 174.499M
force_zscore_pnl_final 0.000M
funding_fee_pnl_final 0.000M
funding_event_count 0
model_win_rate_20m 60.34%
hedge_win_rate_20m 42.35%
force_win_rate_20m
model_win_rate_btc_adj_20m 60.34%
hedge_win_rate_btc_adj_20m 42.35%
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.41419e+07 1.22496e+10 5012 10.1702 19.7083
high 0 0 0
low 2.41419e+07 1.22496e+10 5012 10.1702 19.7083

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 4187 1.34821e+07 0.0013183 13.183 0.571292 0.00314948 8.72085e-05 0.00307763 1.34821e+07 0.0013183 13.183 0.571292
10 4187 1.54286e+07 0.00150864 15.0864 0.599236 0.00251354 0.000513627 0.00115133 1.54286e+07 0.00150864 15.0864 0.599236
20 4178 1.82766e+07 0.001791 17.91 0.603399 0.00397962 0.000226921 0.00172751 1.82766e+07 0.001791 17.91 0.603399
30 4172 1.99161e+07 0.00195452 19.5452 0.610019 0.00297103 0.000760112 0.000707943 1.99161e+07 0.00195452 19.5452 0.610019
60 4151 2.26446e+07 0.00223374 22.3374 0.589497 0.00410166 0.000541041 0.00066173 2.26446e+07 0.00223374 22.3374 0.589497
120 4128 2.1804e+07 0.00216311 21.6311 0.580184 0.00700446 -0.000690369 0.00102532 2.1804e+07 0.00216311 21.6311 0.580184
240 4004 2.30243e+07 0.00235536 23.5536 0.556943 -0.00321494 0.00356946 0.000136481 2.30243e+07 0.00235536 23.5536 0.556943

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 825 -2.15945e+06 -0.00106757 -10.6757 0.313939 -0.00132689 -0.000962751 0.000472745 -2.15945e+06 -0.00106757 -10.6757 0.313939
10 825 -1.84217e+06 -0.000910712 -9.10712 0.385455 -4.33742e-05 -0.000924314 4.45223e-07 -1.84217e+06 -0.000910712 -9.10712 0.385455
20 824 -1.87887e+06 -0.000928913 -9.28913 0.423544 0.00289975 -0.00119228 0.000796884 -1.87887e+06 -0.000928913 -9.28913 0.423544
30 818 -1.13463e+06 -0.000564491 -5.64491 0.444988 -0.00874285 0.000211154 0.00603618 -1.13463e+06 -0.000564491 -5.64491 0.444988
60 809 -1.74857e+06 -0.0008798 -8.798 0.425216 -0.0148321 0.000430891 0.00781928 -1.74857e+06 -0.0008798 -8.798 0.425216
120 794 -846033 -0.000433216 -4.33216 0.462217 -0.00839802 0.000233622 0.00146759 -846033 -0.000433216 -4.33216 0.462217
240 766 518058 0.000274811 2.74811 0.497389 -0.0334718 0.00313481 0.0114428 518058 0.000274811 2.74811 0.497389

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 189 163563 0.00329645 32.9645
09:20 173 211671 0.00256693 25.6693
09:40 210 304395 0.00280385 28.0385
10:00 188 256286 0.00244584 24.4584
10:20 248 372430 0.00388088 38.8088
10:40 196 309163 0.00235098 23.5098
11:00 162 298154 0.000593879 5.93879
11:20 130 220237 0.00449297 44.9297
11:40 115 149364 0.00426624 42.6624
12:00 105 184052 0.00441944 44.1944
12:20 89 180269 0.00350418 35.0418
12:40 104 173647 0.0030996 30.996
13:00 107 240825 0.00470396 47.0396
13:20 102 190143 0.0115612 115.612
13:40 50 73107 -0.000812471 -8.12471
14:00 39 92033 0.0225444 225.444
14:20 45 116040 0.00707874 70.7874
14:40 98 161554 0.00597347 59.7347
15:00 178 395524 0.00437506 43.7506
15:20 0 0

Z-Score-Quality Scatter + Regression

Model Buy/Sell Scatter + Regression