KOSPI Backtest Dashboard

run_id: 20260321T111150Z_userreq_toss_tabm_enh129_ex200_20260321_target350_z2p8
generated_at_utc: 2026-03-21T11:13:00.366684+00:00

Top KPI

trade_return_per_trade_bp = (total_pnl_final / total_trade_notional) * 10000
metric value
total_pnl_final 43.612M
total_trade_notional 19605.698M
daily_trade_notional 478.188M
total_fee 19.606M
mdd_pnl -9.417M
alpha_vs_dynamic_notional_beta_pnl_final 36.702M
alpha_vs_avg_hold_notional_beta_pnl_final 36.699M
dynamic_alpha_mdd_pnl -1.641M
avg_hold_alpha_mdd_pnl -1.543M
dynamic_alpha_sharpe_annualized 14.3298
avg_hold_alpha_sharpe_annualized 14.1706
time_avg_total_notional_position_usdt 88.684M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 88.684M
trade_return_per_trade_bp 22.24bp
roi_avg_notional_position_pct 49.18%
roi_peak_notional_position_pct 43.03%
num_trades 8,577
high_mc_trade_notional 0.000M
high_mc_sharpe_annualized
high_mc_trade_return_per_trade_bp
low_mc_trade_notional 19605.698M
low_mc_sharpe_annualized 12.2164
low_mc_trade_return_per_trade_bp 22.24bp
sharpe_annualized 12.2164

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 43.612M
total_pnl_peak 44.179M
dynamic_notional_beta_pnl_final 6.910M
alpha_vs_dynamic_notional_beta_pnl_final 36.702M
avg_hold_notional_beta_pnl_final 6.912M
alpha_vs_avg_hold_notional_beta_pnl_final 36.699M
high_mc_dynamic_notional_beta_pnl_final 0.000M
low_mc_dynamic_notional_beta_pnl_final 6.910M
high_mc_avg_hold_notional_beta_pnl_final 0.000M
low_mc_avg_hold_notional_beta_pnl_final 6.912M
high_mc_alpha_vs_dynamic_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_dynamic_notional_beta_pnl_final 36.702M
high_mc_alpha_vs_avg_hold_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_avg_hold_notional_beta_pnl_final 36.699M
dynamic_alpha_mdd_pnl -1.641M
dynamic_alpha_sharpe_annualized 14.3298
avg_hold_alpha_mdd_pnl -1.543M
avg_hold_alpha_sharpe_annualized 14.1706
num_trades 8,577
total_traded_amount_sum 2.99362e+07
total_trade_notional 19605.698M
daily_trade_notional 478.188M
trading_day_count 41
total_fee 19.606M
time_avg_total_notional_position_usdt 88.684M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 88.684M
time_avg_net_position_usdt 88.684M
time_avg_abs_net_position_usdt 88.684M
peak_abs_net_position_usdt 1.01341e+08
roi_avg_notional_position_pct 49.18%
roi_peak_notional_position_pct 43.03%
mdd_pnl -9.417M
sharpe_annualized 12.2164
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 43.612M
low_mc_trade_notional 19605.698M
low_mc_num_trades 8,577
low_mc_sharpe_annualized 12.2164
low_mc_trade_return_per_trade_bp 22.24bp
model_zscore_pnl_final 6811.938M
hedge_zscore_pnl_final 831.555M
force_zscore_pnl_final 0.000M
funding_fee_pnl_final 0.000M
funding_event_count 0
model_win_rate_20m 59.72%
hedge_win_rate_20m 42.79%
force_win_rate_20m
model_win_rate_btc_adj_20m 59.72%
hedge_win_rate_btc_adj_20m 42.79%
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.36116e+07 1.96057e+10 8577 12.2164 22.2444
high 0 0 0
low 4.36116e+07 1.96057e+10 8577 12.2164 22.2444

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 6002 2.18132e+07 0.00161415 16.1415 0.569144 0.0018167 0.000576707 0.000744165 2.18132e+07 0.00161415 16.1415 0.569144
10 6002 2.40301e+07 0.0017782 17.782 0.590137 0.00267244 0.000316942 0.00107484 2.40301e+07 0.0017782 17.782 0.590137
20 6001 2.60465e+07 0.00192777 19.2777 0.597234 0.00207893 0.000784328 0.000430378 2.60465e+07 0.00192777 19.2777 0.597234
30 5999 3.05208e+07 0.00225975 22.5975 0.598933 0.00315375 0.000591515 0.000638586 3.05208e+07 0.00225975 22.5975 0.598933
60 5989 4.11895e+07 0.0030553 30.553 0.593421 0.00570924 8.28132e-05 0.00124583 4.11895e+07 0.0030553 30.553 0.593421
120 5974 4.38843e+07 0.00326424 32.6424 0.576331 0.00675502 -0.000245887 0.00114206 4.38843e+07 0.00326424 32.6424 0.576331
240 5963 4.83012e+07 0.00360013 36.0013 0.556599 0.00345458 0.00172803 0.000168631 4.83012e+07 0.00360013 36.0013 0.556599

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 2575 -5.34459e+06 -0.000877316 -8.77316 0.361942 0.00176974 -0.00114289 0.00104949 -5.34459e+06 -0.000877316 -8.77316 0.361942
10 2575 -4.96651e+06 -0.000815255 -8.15255 0.393398 0.00147861 -0.0010428 0.000621228 -4.96651e+06 -0.000815255 -8.15255 0.393398
20 2573 -4.36487e+06 -0.00071709 -7.1709 0.427905 -0.000252712 -0.000729471 1.03264e-05 -4.36487e+06 -0.00071709 -7.1709 0.427905
30 2573 -5.45374e+06 -0.000895977 -8.95977 0.445783 -0.00306057 -0.00054661 0.000682139 -5.45374e+06 -0.000895977 -8.95977 0.445783
60 2570 -7.49448e+06 -0.00123285 -12.3285 0.454475 -0.00268403 -0.00101721 0.000286452 -7.49448e+06 -0.00123285 -12.3285 0.454475
120 2570 -7.4825e+06 -0.00123087 -12.3087 0.467704 0.00418212 -0.00177478 0.000418167 -7.4825e+06 -0.00123087 -12.3087 0.467704
240 2558 -8.81579e+06 -0.00145767 -14.5767 0.489054 -0.00422937 -0.0008342 0.000187115 -8.81579e+06 -0.00145767 -14.5767 0.489054

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 475 838166 0.00688479 68.8479
09:20 323 752598 0.00391112 39.1112
09:40 259 734511 -0.000116981 -1.16981
10:00 225 818873 0.00529843 52.9843
10:20 182 550363 0.00369512 36.9512
10:40 175 530496 0.00334556 33.4556
11:00 241 860142 0.00132704 13.2704
11:20 246 1.09654e+06 0.00418022 41.8022
11:40 220 1.00839e+06 0.00499272 49.9272
12:00 245 1.11869e+06 0.00370674 37.0674
12:20 238 1.09082e+06 0.00408243 40.8243
12:40 288 1.227e+06 0.00301741 30.1741
13:00 314 1.0218e+06 0.00283806 28.3806
13:20 242 718987 0.00487617 48.7617
13:40 171 464201 7.96732e-06 0.0796732
14:00 157 549999 0.00151573 15.1573
14:20 138 401815 -0.000695684 -6.95684
14:40 123 508686 0.0022921 22.921
15:00 210 696614 0.0133184 133.184
15:20 0 0

Z-Score-Quality Scatter + Regression

Model Buy/Sell Scatter + Regression