KOSPI Backtest Dashboard

run_id: 20260322T120900Z_userreq_toss_ultimate_v2_parquet_20260322_tossenriched_z2p75
generated_at_utc: 2026-03-22T12:12:46.009667+00:00

Top KPI

trade_return_per_trade_bp = (total_pnl_final / total_trade_notional) * 10000
metric value
total_pnl_final 42.260M
total_trade_notional 14194.373M
daily_trade_notional 346.204M
total_fee 14.194M
mdd_pnl -5.281M
alpha_vs_dynamic_notional_beta_pnl_final 37.170M
alpha_vs_avg_hold_notional_beta_pnl_final 35.485M
dynamic_alpha_mdd_pnl -2.510M
avg_hold_alpha_mdd_pnl -2.353M
dynamic_alpha_sharpe_annualized 12.79
avg_hold_alpha_sharpe_annualized 12.4858
time_avg_total_notional_position_usdt 60.819M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 60.819M
trade_return_per_trade_bp 29.77bp
roi_avg_notional_position_pct 69.48%
roi_peak_notional_position_pct 41.40%
num_trades 5,981
high_mc_trade_notional 0.000M
high_mc_sharpe_annualized
high_mc_trade_return_per_trade_bp
low_mc_trade_notional 14194.373M
low_mc_sharpe_annualized 13.5242
low_mc_trade_return_per_trade_bp 29.77bp
sharpe_annualized 13.5242

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.75
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 42.260M
total_pnl_peak 42.386M
dynamic_notional_beta_pnl_final 5.090M
alpha_vs_dynamic_notional_beta_pnl_final 37.170M
avg_hold_notional_beta_pnl_final 6.775M
alpha_vs_avg_hold_notional_beta_pnl_final 35.485M
high_mc_dynamic_notional_beta_pnl_final 0.000M
low_mc_dynamic_notional_beta_pnl_final 5.090M
high_mc_avg_hold_notional_beta_pnl_final 0.000M
low_mc_avg_hold_notional_beta_pnl_final 6.775M
high_mc_alpha_vs_dynamic_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_dynamic_notional_beta_pnl_final 37.170M
high_mc_alpha_vs_avg_hold_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_avg_hold_notional_beta_pnl_final 35.485M
dynamic_alpha_mdd_pnl -2.510M
dynamic_alpha_sharpe_annualized 12.79
avg_hold_alpha_mdd_pnl -2.353M
avg_hold_alpha_sharpe_annualized 12.4858
num_trades 5,981
total_traded_amount_sum 1.10924e+07
total_trade_notional 14194.373M
daily_trade_notional 346.204M
trading_day_count 41
total_fee 14.194M
time_avg_total_notional_position_usdt 60.819M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 60.819M
time_avg_net_position_usdt 60.819M
time_avg_abs_net_position_usdt 60.819M
peak_abs_net_position_usdt 1.02087e+08
roi_avg_notional_position_pct 69.48%
roi_peak_notional_position_pct 41.40%
mdd_pnl -5.281M
sharpe_annualized 13.5242
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 42.260M
low_mc_trade_notional 14194.373M
low_mc_num_trades 5,981
low_mc_sharpe_annualized 13.5242
low_mc_trade_return_per_trade_bp 29.77bp
model_zscore_pnl_final 2117.748M
hedge_zscore_pnl_final 136.586M
force_zscore_pnl_final 0.000M
funding_fee_pnl_final 0.000M
funding_event_count 0
model_win_rate_20m 60.89%
hedge_win_rate_20m 47.29%
force_win_rate_20m
model_win_rate_btc_adj_20m 60.89%
hedge_win_rate_btc_adj_20m 47.29%
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.226e+07 1.41944e+10 5981 13.5242 29.7724
high 0 0 0
low 4.226e+07 1.41944e+10 5981 13.5242 29.7724

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 4506 1.51918e+07 0.00142758 14.2758 0.594097 0.00764651 -0.000233785 0.00309521 1.51918e+07 0.00142758 14.2758 0.594097
10 4506 2.07681e+07 0.00195159 19.5159 0.613626 0.0139451 -0.00105907 0.00788081 2.07681e+07 0.00195159 19.5159 0.613626
20 4500 2.3472e+07 0.00220881 22.0881 0.608889 0.0176403 -0.00154498 0.00911822 2.3472e+07 0.00220881 22.0881 0.608889
30 4498 2.55772e+07 0.00240805 24.0805 0.603824 0.018993 -0.00159918 0.00861706 2.55772e+07 0.00240805 24.0805 0.603824
60 4482 2.60796e+07 0.00246301 24.6301 0.599509 0.013351 -0.000319521 0.002411 2.60796e+07 0.00246301 24.6301 0.599509
120 4400 4.19882e+07 0.00404275 40.4275 0.588636 0.0124999 0.00126386 0.00085921 4.19882e+07 0.00404275 40.4275 0.588636
240 4332 4.56439e+07 0.004467 44.67 0.569714 0.0142434 0.00140193 0.000619199 4.56439e+07 0.004467 44.67 0.569714

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 1475 -2.0372e+06 -0.000573419 -5.73419 0.405424 0.00265398 -0.000677534 0.000843025 -2.0372e+06 -0.000573419 -5.73419 0.405424
10 1475 -1.93491e+06 -0.000544626 -5.44626 0.445424 0.00344081 -0.000721579 0.000830671 -1.93491e+06 -0.000544626 -5.44626 0.445424
20 1474 -2.21771e+06 -0.000624671 -6.24671 0.472863 0.0137764 -0.00120282 0.00418733 -2.21771e+06 -0.000624671 -6.24671 0.472863
30 1473 -2.98764e+06 -0.000842151 -8.42151 0.465716 0.0122445 -0.00137717 0.00248434 -2.98764e+06 -0.000842151 -8.42151 0.465716
60 1470 -4.9095e+06 -0.00138683 -13.8683 0.47415 -0.0164337 -0.000866658 0.00235847 -4.9095e+06 -0.00138683 -13.8683 0.47415
120 1460 -4.31222e+06 -0.00122609 -12.2609 0.489041 0.00304016 -0.00140593 4.88285e-05 -4.31222e+06 -0.00122609 -12.2609 0.489041
240 1430 -6.37045e+06 -0.00185005 -18.5005 0.485315 -0.001477 -0.00192792 5.45729e-06 -6.37045e+06 -0.00185005 -18.5005 0.485315

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 223 398332 0.00851755 85.1755
09:20 163 303175 0.00677094 67.7094
09:40 111 248042 -0.00539298 -53.9298
10:00 113 213202 0.00475954 47.5954
10:20 107 196340 0.00226873 22.6873
10:40 112 261853 0.0025013 25.013
11:00 161 320623 8.19806e-05 0.819806
11:20 141 285508 0.00523093 52.3093
11:40 101 206726 0.00372079 37.2079
12:00 116 290033 0.00512138 51.2138
12:20 119 266450 0.00618302 61.8302
12:40 133 267522 0.00180264 18.0264
13:00 166 268802 0.00331091 33.1091
13:20 327 569931 0.0185529 185.529
13:40 383 506086 0.00339191 33.9191
14:00 247 360257 0.00611957 61.1957
14:20 178 258579 0.00109372 10.9372
14:40 86 169296 0.00677021 67.7021
15:00 97 177382 0.00583187 58.3187
15:20 0 0

Z-Score-Quality Scatter + Regression

Model Buy/Sell Scatter + Regression