KOSPI Backtest Dashboard

run_id: 20260322T114746Z_userreq_toss_mega9_parquet_20260322_tossenriched_z3p1
generated_at_utc: 2026-03-22T11:50:08.175925+00:00

Top KPI

trade_return_per_trade_bp = (total_pnl_final / total_trade_notional) * 10000
metric value
total_pnl_final 43.707M
total_trade_notional 14977.390M
daily_trade_notional 365.302M
total_fee 14.977M
mdd_pnl -5.103M
alpha_vs_dynamic_notional_beta_pnl_final 39.127M
alpha_vs_avg_hold_notional_beta_pnl_final 35.750M
dynamic_alpha_mdd_pnl -2.104M
avg_hold_alpha_mdd_pnl -3.481M
dynamic_alpha_sharpe_annualized 13.7343
avg_hold_alpha_sharpe_annualized 12.0197
time_avg_total_notional_position_usdt 71.431M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 71.431M
trade_return_per_trade_bp 29.18bp
roi_avg_notional_position_pct 61.19%
roi_peak_notional_position_pct 43.23%
num_trades 6,240
high_mc_trade_notional 0.000M
high_mc_sharpe_annualized
high_mc_trade_return_per_trade_bp
low_mc_trade_notional 14977.390M
low_mc_sharpe_annualized 14.1825
low_mc_trade_return_per_trade_bp 29.18bp
sharpe_annualized 14.1825

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 3.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 43.707M
total_pnl_peak 43.753M
dynamic_notional_beta_pnl_final 4.579M
alpha_vs_dynamic_notional_beta_pnl_final 39.127M
avg_hold_notional_beta_pnl_final 7.957M
alpha_vs_avg_hold_notional_beta_pnl_final 35.750M
high_mc_dynamic_notional_beta_pnl_final 0.000M
low_mc_dynamic_notional_beta_pnl_final 4.579M
high_mc_avg_hold_notional_beta_pnl_final 0.000M
low_mc_avg_hold_notional_beta_pnl_final 7.957M
high_mc_alpha_vs_dynamic_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_dynamic_notional_beta_pnl_final 39.127M
high_mc_alpha_vs_avg_hold_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_avg_hold_notional_beta_pnl_final 35.750M
dynamic_alpha_mdd_pnl -2.104M
dynamic_alpha_sharpe_annualized 13.7343
avg_hold_alpha_mdd_pnl -3.481M
avg_hold_alpha_sharpe_annualized 12.0197
num_trades 6,240
total_traded_amount_sum 1.42612e+07
total_trade_notional 14977.390M
daily_trade_notional 365.302M
trading_day_count 41
total_fee 14.977M
time_avg_total_notional_position_usdt 71.431M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 71.431M
time_avg_net_position_usdt 71.431M
time_avg_abs_net_position_usdt 71.431M
peak_abs_net_position_usdt 1.01113e+08
roi_avg_notional_position_pct 61.19%
roi_peak_notional_position_pct 43.23%
mdd_pnl -5.103M
sharpe_annualized 14.1825
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.707M
low_mc_trade_notional 14977.390M
low_mc_num_trades 6,240
low_mc_sharpe_annualized 14.1825
low_mc_trade_return_per_trade_bp 29.18bp
model_zscore_pnl_final 6067.874M
hedge_zscore_pnl_final 968.304M
force_zscore_pnl_final 0.000M
funding_fee_pnl_final 0.000M
funding_event_count 0
model_win_rate_20m 64.66%
hedge_win_rate_20m 44.69%
force_win_rate_20m
model_win_rate_btc_adj_20m 64.66%
hedge_win_rate_btc_adj_20m 44.69%
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.37069e+07 1.49774e+10 6240 14.1825 29.1819
high 0 0 0
low 4.37069e+07 1.49774e+10 6240 14.1825 29.1819

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 4348 1.57183e+07 0.00151611 15.1611 0.612466 0.00190781 0.000346815 0.00100254 1.57183e+07 0.00151611 15.1611 0.612466
10 4348 2.33181e+07 0.00224914 22.4914 0.641904 0.00481235 -0.000687271 0.00510561 2.33181e+07 0.00224914 22.4914 0.641904
20 4346 2.6085e+07 0.00251723 25.1723 0.646572 0.00474858 -0.000378987 0.00361614 2.6085e+07 0.00251723 25.1723 0.646572
30 4345 2.79313e+07 0.00269605 26.9605 0.641197 0.00473933 -0.000198359 0.00300233 2.79313e+07 0.00269605 26.9605 0.641197
60 4341 2.9128e+07 0.00281424 28.1424 0.626353 0.00430638 0.000188089 0.00148003 2.9128e+07 0.00281424 28.1424 0.626353
120 4332 4.80915e+07 0.00465662 46.5662 0.609187 -0.00266252 0.00612185 0.000224136 4.80915e+07 0.00465662 46.5662 0.609187
240 4312 5.05548e+07 0.00491896 49.1896 0.584879 -0.000814185 0.00532556 1.2893e-05 5.05548e+07 0.00491896 49.1896 0.584879

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 1892 -2.57313e+06 -0.000558183 -5.58183 0.382135 0.00330039 -0.00126036 0.0110234 -2.57313e+06 -0.000558183 -5.58183 0.382135
10 1892 -2.11866e+06 -0.000459596 -4.59596 0.434461 0.00390362 -0.00128767 0.0112326 -2.11866e+06 -0.000459596 -4.59596 0.434461
20 1891 -2.89338e+06 -0.000628006 -6.28006 0.446854 0.00527638 -0.00180275 0.00673511 -2.89338e+06 -0.000628006 -6.28006 0.446854
30 1889 -2.75775e+06 -0.00059923 -5.9923 0.465855 0.00804439 -0.00240847 0.00981512 -2.75775e+06 -0.00059923 -5.9923 0.465855
60 1884 -3.97081e+06 -0.000865198 -8.65198 0.476645 0.00296059 -0.00170765 0.000630447 -3.97081e+06 -0.000865198 -8.65198 0.476645
120 1880 -1.76395e+06 -0.000385193 -3.85193 0.496809 0.00822197 -0.00243425 0.00300616 -1.76395e+06 -0.000385193 -3.85193 0.496809
240 1876 -597743 -0.00013082 -1.3082 0.509595 0.00226631 -0.000827748 0.000100352 -597743 -0.00013082 -1.3082 0.509595

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 290 574344 0.00786225 78.6225
09:20 222 407586 0.00265639 26.5639
09:40 192 474984 -0.000883723 -8.83723
10:00 203 405721 0.00349134 34.9134
10:20 178 356215 0.00273683 27.3683
10:40 178 456534 0.00203673 20.3673
11:00 182 416891 0.00229699 22.9699
11:20 194 485408 0.005047 50.47
11:40 139 289952 0.00387205 38.7205
12:00 140 380488 0.00580053 58.0053
12:20 131 260864 0.00353219 35.3219
12:40 140 246593 0.00381876 38.1876
13:00 135 306429 0.00497447 49.7447
13:20 221 520360 0.0200797 200.797
13:40 204 539186 0.0156509 156.509
14:00 164 412617 0.00533738 53.3738
14:20 140 311420 0.00281555 28.1555
14:40 63 164397 0.00133257 13.3257
15:00 83 138095 0.00411556 41.1556
15:20 0 0

Z-Score-Quality Scatter + Regression

Model Buy/Sell Scatter + Regression