KOSPI Backtest Dashboard

run_id: 20260320T091735Z_userreq_toss_full_tabm_256_alpha101_20260320_target350_z1p3
generated_at_utc: 2026-03-20T09:18:02.275265+00:00

Top KPI

trade_return_per_trade_bp = (total_pnl_final / total_trade_notional) * 10000
metric value
total_pnl_final 34.027M
total_trade_notional 20159.958M
daily_trade_notional 491.706M
total_fee 20.160M
mdd_pnl -7.856M
alpha_vs_dynamic_notional_beta_pnl_final 26.984M
alpha_vs_avg_hold_notional_beta_pnl_final 26.148M
dynamic_alpha_mdd_pnl -3.857M
avg_hold_alpha_mdd_pnl -2.129M
dynamic_alpha_sharpe_annualized 10.6764
avg_hold_alpha_sharpe_annualized 11.84
time_avg_total_notional_position_usdt 70.735M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 70.735M
trade_return_per_trade_bp 16.88bp
roi_avg_notional_position_pct 48.11%
roi_peak_notional_position_pct 33.75%
num_trades 8,423
high_mc_trade_notional 0.000M
high_mc_sharpe_annualized
high_mc_trade_return_per_trade_bp
low_mc_trade_notional 20159.958M
low_mc_sharpe_annualized 12.9367
low_mc_trade_return_per_trade_bp 16.88bp
sharpe_annualized 12.9367

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.3
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 34.027M
total_pnl_peak 35.174M
dynamic_notional_beta_pnl_final 7.043M
alpha_vs_dynamic_notional_beta_pnl_final 26.984M
avg_hold_notional_beta_pnl_final 7.879M
alpha_vs_avg_hold_notional_beta_pnl_final 26.148M
high_mc_dynamic_notional_beta_pnl_final 0.000M
low_mc_dynamic_notional_beta_pnl_final 7.043M
high_mc_avg_hold_notional_beta_pnl_final 0.000M
low_mc_avg_hold_notional_beta_pnl_final 7.879M
high_mc_alpha_vs_dynamic_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_dynamic_notional_beta_pnl_final 26.984M
high_mc_alpha_vs_avg_hold_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_avg_hold_notional_beta_pnl_final 26.148M
dynamic_alpha_mdd_pnl -3.857M
dynamic_alpha_sharpe_annualized 10.6764
avg_hold_alpha_mdd_pnl -2.129M
avg_hold_alpha_sharpe_annualized 11.84
num_trades 8,423
total_traded_amount_sum 1.37692e+07
total_trade_notional 20159.958M
daily_trade_notional 491.706M
trading_day_count 41
total_fee 20.160M
time_avg_total_notional_position_usdt 70.735M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 70.735M
time_avg_net_position_usdt 70.735M
time_avg_abs_net_position_usdt 70.735M
peak_abs_net_position_usdt 1.00829e+08
roi_avg_notional_position_pct 48.11%
roi_peak_notional_position_pct 33.75%
mdd_pnl -7.856M
sharpe_annualized 12.9367
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 34.027M
low_mc_trade_notional 20159.958M
low_mc_num_trades 8,423
low_mc_sharpe_annualized 12.9367
low_mc_trade_return_per_trade_bp 16.88bp
model_zscore_pnl_final 6189.232M
hedge_zscore_pnl_final 180.401M
force_zscore_pnl_final 0.000M
funding_fee_pnl_final 0.000M
funding_event_count 0
model_win_rate_20m 59.40%
hedge_win_rate_20m 41.67%
force_win_rate_20m
model_win_rate_btc_adj_20m 59.40%
hedge_win_rate_btc_adj_20m 41.67%
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.40274e+07 2.016e+10 8423 12.9367 16.8787
high 0 0 0
low 3.40274e+07 2.016e+10 8423 12.9367 16.8787

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 7419 1.79841e+07 0.00101381 10.1381 0.554927 0.00244784 0.000135765 0.00162661 1.79841e+07 0.00101381 10.1381 0.554927
10 7419 2.06788e+07 0.00116572 11.6572 0.578919 0.00321446 -3.54589e-06 0.00198014 2.06788e+07 0.00116572 11.6572 0.578919
20 7397 2.471e+07 0.0013973 13.973 0.594025 0.00331067 0.000191327 0.00120246 2.471e+07 0.0013973 13.973 0.594025
30 7388 2.92736e+07 0.00165746 16.5746 0.597185 0.0018648 0.000971959 0.000224993 2.92736e+07 0.00165746 16.5746 0.597185
60 7336 3.09615e+07 0.00176589 17.6589 0.575518 0.00257169 0.000841016 0.00023883 3.09615e+07 0.00176589 17.6589 0.575518
120 7298 3.00126e+07 0.00172087 17.2087 0.566045 0.00358084 0.000391956 0.000272002 3.00126e+07 0.00172087 17.2087 0.566045
240 7114 3.45487e+07 0.00203131 20.3131 0.55454 -0.00779515 0.00473221 0.000771049 3.45487e+07 0.00203131 20.3131 0.55454

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 1004 -2.53714e+06 -0.00104803 -10.4803 0.299801 -0.00189007 -0.000911398 0.000838569 -2.53714e+06 -0.00104803 -10.4803 0.299801
10 1004 -2.2249e+06 -0.000919051 -9.19051 0.35757 -0.00283677 -0.000722126 0.00167231 -2.2249e+06 -0.000919051 -9.19051 0.35757
20 1003 -1.88236e+06 -0.000777684 -7.77684 0.41675 0.00265324 -0.0009605 0.000609562 -1.88236e+06 -0.000777684 -7.77684 0.41675
30 999 -1.55406e+06 -0.00064468 -6.4468 0.435435 -0.000936044 -0.000487702 6.59906e-05 -1.55406e+06 -0.00064468 -6.4468 0.435435
60 991 -1.74199e+06 -0.000727885 -7.27885 0.47225 -0.0024445 -0.000587579 0.000141308 -1.74199e+06 -0.000727885 -7.27885 0.47225
120 975 -835434 -0.000355058 -3.55058 0.483077 -0.00687761 9.00602e-05 0.000832191 -835434 -0.000355058 -3.55058 0.483077
240 952 -767007 -0.000333036 -3.33036 0.489496 -0.017838 0.000855184 0.00257886 -767007 -0.000333036 -3.33036 0.489496

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 361 333947 0.00243973 24.3973
09:20 319 422213 0.00329603 32.9603
09:40 349 454640 0.00407118 40.7118
10:00 309 434045 0.00290614 29.0614
10:20 358 588107 0.00231624 23.1624
10:40 271 390445 0.00266146 26.6146
11:00 248 421236 -5.20397e-05 -0.520397
11:20 220 385904 0.00436192 43.6192
11:40 197 314891 0.00477 47.7
12:00 172 336204 0.00375124 37.5124
12:20 169 369787 0.00495595 49.5595
12:40 167 337903 0.00218641 21.8641
13:00 179 359106 0.00329251 32.9251
13:20 163 258937 0.00478435 47.8435
13:40 81 97219 0.0043791 43.791
14:00 79 150833 0.0097731 97.731
14:20 94 155095 0.00611466 61.1466
14:40 195 393082 0.001196 11.96
15:00 335 707050 0.00574604 57.4604
15:20 0 0

Z-Score-Quality Scatter + Regression

Model Buy/Sell Scatter + Regression