KOSPI Backtest Dashboard

run_id: 20260321T111227Z_userreq_toss_tabm_enh129_ceonly_20260320_target350_z2p5
generated_at_utc: 2026-03-21T11:19:46.950566+00:00

Top KPI

trade_return_per_trade_bp = (total_pnl_final / total_trade_notional) * 10000
metric value
total_pnl_final 29.850M
total_trade_notional 16429.412M
daily_trade_notional 400.717M
total_fee 16.429M
mdd_pnl -12.634M
alpha_vs_dynamic_notional_beta_pnl_final 18.716M
alpha_vs_avg_hold_notional_beta_pnl_final 19.237M
dynamic_alpha_mdd_pnl -1.907M
avg_hold_alpha_mdd_pnl -1.781M
dynamic_alpha_sharpe_annualized 7.57208
avg_hold_alpha_sharpe_annualized 7.73671
time_avg_total_notional_position_usdt 95.275M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 95.275M
trade_return_per_trade_bp 18.17bp
roi_avg_notional_position_pct 31.33%
roi_peak_notional_position_pct 29.26%
num_trades 8,377
high_mc_trade_notional 0.000M
high_mc_sharpe_annualized
high_mc_trade_return_per_trade_bp
low_mc_trade_notional 16429.412M
low_mc_sharpe_annualized 7.69525
low_mc_trade_return_per_trade_bp 18.17bp
sharpe_annualized 7.69525

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.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 29.850M
total_pnl_peak 35.155M
dynamic_notional_beta_pnl_final 11.134M
alpha_vs_dynamic_notional_beta_pnl_final 18.716M
avg_hold_notional_beta_pnl_final 10.613M
alpha_vs_avg_hold_notional_beta_pnl_final 19.237M
high_mc_dynamic_notional_beta_pnl_final 0.000M
low_mc_dynamic_notional_beta_pnl_final 11.134M
high_mc_avg_hold_notional_beta_pnl_final 0.000M
low_mc_avg_hold_notional_beta_pnl_final 10.613M
high_mc_alpha_vs_dynamic_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_dynamic_notional_beta_pnl_final 18.716M
high_mc_alpha_vs_avg_hold_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_avg_hold_notional_beta_pnl_final 19.237M
dynamic_alpha_mdd_pnl -1.907M
dynamic_alpha_sharpe_annualized 7.57208
avg_hold_alpha_mdd_pnl -1.781M
avg_hold_alpha_sharpe_annualized 7.73671
num_trades 8,377
total_traded_amount_sum 8.32248e+06
total_trade_notional 16429.412M
daily_trade_notional 400.717M
trading_day_count 41
total_fee 16.429M
time_avg_total_notional_position_usdt 95.275M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 95.275M
time_avg_net_position_usdt 95.275M
time_avg_abs_net_position_usdt 95.275M
peak_abs_net_position_usdt 1.02001e+08
roi_avg_notional_position_pct 31.33%
roi_peak_notional_position_pct 29.26%
mdd_pnl -12.634M
sharpe_annualized 7.69525
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 29.850M
low_mc_trade_notional 16429.412M
low_mc_num_trades 8,377
low_mc_sharpe_annualized 7.69525
low_mc_trade_return_per_trade_bp 18.17bp
model_zscore_pnl_final 6152.710M
hedge_zscore_pnl_final 1304.072M
force_zscore_pnl_final 0.000M
funding_fee_pnl_final 0.000M
funding_event_count 0
model_win_rate_20m 55.16%
hedge_win_rate_20m 44.60%
force_win_rate_20m
model_win_rate_btc_adj_20m 55.16%
hedge_win_rate_btc_adj_20m 44.60%
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.98501e+07 1.64294e+10 8377 7.69525 18.1687
high 0 0 0
low 2.98501e+07 1.64294e+10 8377 7.69525 18.1687

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 5619 8.52532e+06 0.000802403 8.02403 0.511301 0.00241554 -0.000715521 0.00484601 8.52532e+06 0.000802403 8.02403 0.511301
10 5619 1.07327e+07 0.00101016 10.1016 0.53942 0.00290515 -0.000866344 0.00458736 1.07327e+07 0.00101016 10.1016 0.53942
20 5616 1.19095e+07 0.0011215 11.215 0.551638 0.00223104 -0.000327208 0.00148885 1.19095e+07 0.0011215 11.215 0.551638
30 5612 1.24349e+07 0.00117208 11.7208 0.546329 0.00196635 -5.26275e-05 0.000826847 1.24349e+07 0.00117208 11.7208 0.546329
60 5605 2.0809e+07 0.00196459 19.6459 0.561106 0.00625343 -0.0014878 0.00385347 2.0809e+07 0.00196459 19.6459 0.561106
120 5589 2.65031e+07 0.00251152 25.1152 0.559492 0.00397736 0.000350886 0.000918794 2.65031e+07 0.00251152 25.1152 0.559492
240 5563 3.29298e+07 0.0031398 31.398 0.551141 0.00366295 0.000883668 0.000444353 3.29298e+07 0.0031398 31.398 0.551141

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 2758 -5.08247e+06 -0.000875582 -8.75582 0.391588 0.00084839 -0.00100716 0.000614812 -5.08247e+06 -0.000875582 -8.75582 0.391588
10 2758 -4.72281e+06 -0.000813621 -8.13621 0.410442 0.000561766 -0.000889376 0.000185441 -4.72281e+06 -0.000813621 -8.13621 0.410442
20 2758 -4.82904e+06 -0.000831922 -8.31922 0.445975 0.00160316 -0.00117353 0.000637178 -4.82904e+06 -0.000831922 -8.31922 0.445975
30 2757 -3.90177e+06 -0.000672462 -6.72462 0.460283 0.00200374 -0.00106918 0.000645212 -3.90177e+06 -0.000672462 -6.72462 0.460283
60 2746 -6.46107e+06 -0.00111889 -11.1889 0.471959 0.00139239 -0.00147406 0.000165832 -6.46107e+06 -0.00111889 -11.1889 0.471959
120 2741 -6.6632e+06 -0.001156 -11.56 0.491426 0.00431669 -0.00189483 0.000938061 -6.6632e+06 -0.001156 -11.56 0.491426
240 2734 -6.75853e+06 -0.00117469 -11.7469 0.491953 0.00686988 -0.0024469 0.00114607 -6.75853e+06 -0.00117469 -11.7469 0.491953

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 268 343470 0.00624247 62.4247
09:20 266 258243 0.00343561 34.3561
09:40 260 271415 -0.0027503 -27.503
10:00 242 265869 0.00231578 23.1578
10:20 252 190066 -0.00013022 -1.3022
10:40 303 270297 0.00272249 27.2249
11:00 366 390823 0.00096967 9.6967
11:20 224 253990 0.00351059 35.1059
11:40 232 281398 0.00311579 31.1579
12:00 198 189205 0.00338993 33.8993
12:20 215 271210 0.000945784 9.45784
12:40 247 252583 0.00212971 21.2971
13:00 280 341077 0.00092098 9.2098
13:20 298 187709 0.00311039 31.1039
13:40 175 77667 0.00343151 34.3151
14:00 149 42794 0.000415058 4.15058
14:20 178 72996 0.00120906 12.0906
14:40 166 75393 0.0189365 189.365
15:00 244 144317 0.0105432 105.432
15:20 0 0

Z-Score-Quality Scatter + Regression

Model Buy/Sell Scatter + Regression