KOSPI Backtest Dashboard

run_id: 20260320T091630Z_userreq_toss_full_tabm_256_alpha101_20260320_target350_z1p0
generated_at_utc: 2026-03-20T09:16:57.514596+00:00

Top KPI

trade_return_per_trade_bp = (total_pnl_final / total_trade_notional) * 10000
metric value
total_pnl_final 41.713M
total_trade_notional 30777.828M
daily_trade_notional 750.679M
total_fee 30.778M
mdd_pnl -7.445M
alpha_vs_dynamic_notional_beta_pnl_final 31.034M
alpha_vs_avg_hold_notional_beta_pnl_final 31.364M
dynamic_alpha_mdd_pnl -4.306M
avg_hold_alpha_mdd_pnl -4.041M
dynamic_alpha_sharpe_annualized 10.9255
avg_hold_alpha_sharpe_annualized 11.3668
time_avg_total_notional_position_usdt 92.907M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 92.907M
trade_return_per_trade_bp 13.55bp
roi_avg_notional_position_pct 44.90%
roi_peak_notional_position_pct 41.29%
num_trades 13,753
high_mc_trade_notional 0.000M
high_mc_sharpe_annualized
high_mc_trade_return_per_trade_bp
low_mc_trade_notional 30777.828M
low_mc_sharpe_annualized 15.0322
low_mc_trade_return_per_trade_bp 13.55bp
sharpe_annualized 15.0322

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
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 41.713M
total_pnl_peak 42.126M
dynamic_notional_beta_pnl_final 10.679M
alpha_vs_dynamic_notional_beta_pnl_final 31.034M
avg_hold_notional_beta_pnl_final 10.349M
alpha_vs_avg_hold_notional_beta_pnl_final 31.364M
high_mc_dynamic_notional_beta_pnl_final 0.000M
low_mc_dynamic_notional_beta_pnl_final 10.679M
high_mc_avg_hold_notional_beta_pnl_final 0.000M
low_mc_avg_hold_notional_beta_pnl_final 10.349M
high_mc_alpha_vs_dynamic_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_dynamic_notional_beta_pnl_final 31.034M
high_mc_alpha_vs_avg_hold_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_avg_hold_notional_beta_pnl_final 31.364M
dynamic_alpha_mdd_pnl -4.306M
dynamic_alpha_sharpe_annualized 10.9255
avg_hold_alpha_mdd_pnl -4.041M
avg_hold_alpha_sharpe_annualized 11.3668
num_trades 13,753
total_traded_amount_sum 2.1008e+07
total_trade_notional 30777.828M
daily_trade_notional 750.679M
trading_day_count 41
total_fee 30.778M
time_avg_total_notional_position_usdt 92.907M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 92.907M
time_avg_net_position_usdt 92.907M
time_avg_abs_net_position_usdt 92.907M
peak_abs_net_position_usdt 1.01027e+08
roi_avg_notional_position_pct 44.90%
roi_peak_notional_position_pct 41.29%
mdd_pnl -7.445M
sharpe_annualized 15.0322
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 41.713M
low_mc_trade_notional 30777.828M
low_mc_num_trades 13,753
low_mc_sharpe_annualized 15.0322
low_mc_trade_return_per_trade_bp 13.55bp
model_zscore_pnl_final 8460.257M
hedge_zscore_pnl_final 124.141M
force_zscore_pnl_final 0.000M
funding_fee_pnl_final 0.000M
funding_event_count 0
model_win_rate_20m 57.28%
hedge_win_rate_20m 39.84%
force_win_rate_20m
model_win_rate_btc_adj_20m 57.28%
hedge_win_rate_btc_adj_20m 39.84%
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.17128e+07 3.07778e+10 13753 15.0322 13.5529
high 0 0 0
low 4.17128e+07 3.07778e+10 13753 15.0322 13.5529

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 12870 1.95983e+07 0.000680448 6.80448 0.531313 0.00432375 -0.000614344 0.00551379 1.95983e+07 0.000680448 6.80448 0.531313
10 12870 2.50073e+07 0.00086825 8.6825 0.562471 0.00540069 -0.000739939 0.00657354 2.50073e+07 0.00086825 8.6825 0.562471
20 12840 2.91086e+07 0.00101296 10.1296 0.572819 0.00618617 -0.000847722 0.00484632 2.91086e+07 0.00101296 10.1296 0.572819
30 12820 3.32545e+07 0.00115897 11.5897 0.572153 0.00659538 -0.000793007 0.0039265 3.32545e+07 0.00115897 11.5897 0.572153
60 12751 3.38245e+07 0.00118471 11.8471 0.557995 0.00675517 -0.000801777 0.00209594 3.38245e+07 0.00118471 11.8471 0.557995
120 12625 3.1274e+07 0.00110687 11.0687 0.539723 0.00635013 -0.000795553 0.000977023 3.1274e+07 0.00110687 11.0687 0.539723
240 12365 3.97686e+07 0.00143564 14.3564 0.532794 0.000714357 0.00120293 6.99938e-06 3.97686e+07 0.00143564 14.3564 0.532794

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 883 -1.80882e+06 -0.000915477 -9.15477 0.308041 0.00148481 -0.00102222 0.000870702 -1.80882e+06 -0.000915477 -9.15477 0.308041
10 883 -1.30352e+06 -0.00065974 -6.5974 0.369196 0.004818 -0.000970399 0.00642576 -1.30352e+06 -0.00065974 -6.5974 0.369196
20 881 -1.59957e+06 -0.000811635 -8.11635 0.398411 -0.000653351 -0.000704262 4.60536e-05 -1.59957e+06 -0.000811635 -8.11635 0.398411
30 881 -2.00777e+06 -0.00101876 -10.1876 0.410897 0.00166783 -0.00110583 6.91241e-05 -2.00777e+06 -0.00101876 -10.1876 0.410897
60 876 -1.65271e+06 -0.000842956 -8.42956 0.447489 -0.00269415 -0.000560767 0.000189269 -1.65271e+06 -0.000842956 -8.42956 0.447489
120 863 -1.89612e+06 -0.000983196 -9.83196 0.456547 -0.0161997 0.000205026 0.00377505 -1.89612e+06 -0.000983196 -9.83196 0.456547
240 857 -2.50759e+06 -0.00131014 -13.1014 0.465578 -0.0279712 0.000661563 0.00548854 -2.50759e+06 -0.00131014 -13.1014 0.465578

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 575 450079 0.00098862 9.8862
09:20 524 544620 0.00210588 21.0588
09:40 489 564896 0.0030756 30.756
10:00 450 658423 0.00243769 24.3769
10:20 374 590075 0.00288482 28.8482
10:40 321 433687 0.00235258 23.5258
11:00 392 557691 -0.000259097 -2.59097
11:20 345 575408 0.00276577 27.6577
11:40 324 516024 0.00436378 43.6378
12:00 288 510020 0.00237776 23.7776
12:20 298 522783 0.00363543 36.3543
12:40 310 565542 0.00204818 20.4818
13:00 335 575630 0.00132348 13.2348
13:20 369 560609 0.00447301 44.7301
13:40 229 307224 0.00389963 38.9963
14:00 244 446014 0.002994 29.94
14:20 276 429309 0.000939173 9.39173
14:40 377 763380 0.00121441 12.1441
15:00 519 954773 0.00443318 44.3318
15:20 0 0

Z-Score-Quality Scatter + Regression

Model Buy/Sell Scatter + Regression