KOSPI Backtest Dashboard

run_id: 20260322T114746Z_userreq_toss_mega9_parquet_20260322_tossenriched_z2p5
generated_at_utc: 2026-03-22T11:48:43.960594+00:00

Top KPI

trade_return_per_trade_bp = (total_pnl_final / total_trade_notional) * 10000
metric value
total_pnl_final 56.217M
total_trade_notional 20376.599M
daily_trade_notional 496.990M
total_fee 20.377M
mdd_pnl -6.030M
alpha_vs_dynamic_notional_beta_pnl_final 44.950M
alpha_vs_avg_hold_notional_beta_pnl_final 45.579M
dynamic_alpha_mdd_pnl -2.345M
avg_hold_alpha_mdd_pnl -1.886M
dynamic_alpha_sharpe_annualized 15.1491
avg_hold_alpha_sharpe_annualized 15.5596
time_avg_total_notional_position_usdt 95.501M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 95.501M
trade_return_per_trade_bp 27.59bp
roi_avg_notional_position_pct 58.87%
roi_peak_notional_position_pct 53.96%
num_trades 9,656
high_mc_trade_notional 0.000M
high_mc_sharpe_annualized
high_mc_trade_return_per_trade_bp
low_mc_trade_notional 20376.599M
low_mc_sharpe_annualized 15.2066
low_mc_trade_return_per_trade_bp 27.59bp
sharpe_annualized 15.2066

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 56.217M
total_pnl_peak 56.236M
dynamic_notional_beta_pnl_final 11.268M
alpha_vs_dynamic_notional_beta_pnl_final 44.950M
avg_hold_notional_beta_pnl_final 10.638M
alpha_vs_avg_hold_notional_beta_pnl_final 45.579M
high_mc_dynamic_notional_beta_pnl_final 0.000M
low_mc_dynamic_notional_beta_pnl_final 11.268M
high_mc_avg_hold_notional_beta_pnl_final 0.000M
low_mc_avg_hold_notional_beta_pnl_final 10.638M
high_mc_alpha_vs_dynamic_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_dynamic_notional_beta_pnl_final 44.950M
high_mc_alpha_vs_avg_hold_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_avg_hold_notional_beta_pnl_final 45.579M
dynamic_alpha_mdd_pnl -2.345M
dynamic_alpha_sharpe_annualized 15.1491
avg_hold_alpha_mdd_pnl -1.886M
avg_hold_alpha_sharpe_annualized 15.5596
num_trades 9,656
total_traded_amount_sum 2.21903e+07
total_trade_notional 20376.599M
daily_trade_notional 496.990M
trading_day_count 41
total_fee 20.377M
time_avg_total_notional_position_usdt 95.501M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 95.501M
time_avg_net_position_usdt 95.501M
time_avg_abs_net_position_usdt 95.501M
peak_abs_net_position_usdt 1.04187e+08
roi_avg_notional_position_pct 58.87%
roi_peak_notional_position_pct 53.96%
mdd_pnl -6.030M
sharpe_annualized 15.2066
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 56.217M
low_mc_trade_notional 20376.599M
low_mc_num_trades 9,656
low_mc_sharpe_annualized 15.2066
low_mc_trade_return_per_trade_bp 27.59bp
model_zscore_pnl_final 8034.917M
hedge_zscore_pnl_final 861.238M
force_zscore_pnl_final 0.000M
funding_fee_pnl_final 0.000M
funding_event_count 0
model_win_rate_20m 61.50%
hedge_win_rate_20m 44.58%
force_win_rate_20m
model_win_rate_btc_adj_20m 61.50%
hedge_win_rate_btc_adj_20m 44.58%
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 5.62174e+07 2.03766e+10 9656 15.2066 27.5892
high 0 0 0
low 5.62174e+07 2.03766e+10 9656 15.2066 27.5892

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 7570 2.25977e+07 0.0014341 14.341 0.596433 0.00212389 0.00032953 0.00175697 2.25977e+07 0.0014341 14.341 0.596433
10 7570 2.83281e+07 0.00179776 17.9776 0.612417 0.00382714 -0.000249913 0.00449688 2.83281e+07 0.00179776 17.9776 0.612417
20 7567 3.06706e+07 0.0019471 19.471 0.615039 0.00400925 -0.000206881 0.00325516 3.06706e+07 0.0019471 19.471 0.615039
30 7562 3.50372e+07 0.00222527 22.2527 0.613859 0.00431202 -0.000100649 0.00274247 3.50372e+07 0.00222527 22.2527 0.613859
60 7551 3.7418e+07 0.00237893 23.7893 0.602039 0.00296773 0.000810897 0.000650991 3.7418e+07 0.00237893 23.7893 0.602039
120 7534 5.76117e+07 0.00367077 36.7077 0.593045 0.00084651 0.00338241 2.44947e-05 5.76117e+07 0.00367077 36.7077 0.593045
240 7485 5.82509e+07 0.00373958 37.3958 0.571276 0.00197174 0.00308835 7.81856e-05 5.82509e+07 0.00373958 37.3958 0.571276

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 2086 -3.03238e+06 -0.000656485 -6.56485 0.379674 0.00341248 -0.00124215 0.0109587 -3.03238e+06 -0.000656485 -6.56485 0.379674
10 2086 -2.99634e+06 -0.000648682 -6.48682 0.417066 0.00315354 -0.001205 0.00673978 -2.99634e+06 -0.000648682 -6.48682 0.417066
20 2086 -3.41754e+06 -0.000739867 -7.39867 0.445829 0.00344453 -0.00135042 0.00410047 -3.41754e+06 -0.000739867 -7.39867 0.445829
30 2083 -3.0877e+06 -0.000669499 -6.69499 0.472396 0.00428448 -0.00140779 0.00338177 -3.0877e+06 -0.000669499 -6.69499 0.472396
60 2077 -5.48119e+06 -0.00119214 -11.9214 0.47376 0.00182692 -0.00156396 0.000245274 -5.48119e+06 -0.00119214 -11.9214 0.47376
120 2070 -3.8127e+06 -0.00083231 -8.3231 0.492754 0.00480496 -0.00172057 0.000938146 -3.8127e+06 -0.00083231 -8.3231 0.492754
240 2059 -7.76796e+06 -0.00170537 -17.0537 0.484216 0.0050279 -0.00252733 0.000444224 -7.76796e+06 -0.00170537 -17.0537 0.484216

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 405 600635 0.00218852 21.8852
09:20 358 615734 0.00572681 57.2681
09:40 311 676820 0.00110218 11.0218
10:00 304 704085 0.00323063 32.3063
10:20 211 405350 0.00142589 14.2589
10:40 247 505719 0.00386718 38.6718
11:00 346 856084 0.00274685 27.4685
11:20 310 734196 0.003286 32.86
11:40 261 516761 0.00308482 30.8482
12:00 232 579658 0.00278381 27.8381
12:20 227 578604 0.00479953 47.9953
12:40 239 688913 0.00435315 43.5315
13:00 247 608253 0.00383239 38.3239
13:20 256 567951 0.0155243 155.243
13:40 280 564844 0.0197238 197.238
14:00 260 497244 0.0066128 66.128
14:20 211 443172 0.0114935 114.935
14:40 188 478242 0.00406718 40.6718
15:00 238 503813 0.00824407 82.4407
15:20 0 0

Z-Score-Quality Scatter + Regression

Model Buy/Sell Scatter + Regression