KOSPI Backtest Dashboard

run_id: 20260322T114746Z_userreq_toss_mega9_parquet_20260322_tossenriched_z2p7
generated_at_utc: 2026-03-22T11:49:25.119665+00:00

Top KPI

trade_return_per_trade_bp = (total_pnl_final / total_trade_notional) * 10000
metric value
total_pnl_final 51.962M
total_trade_notional 19243.998M
daily_trade_notional 469.366M
total_fee 19.244M
mdd_pnl -5.502M
alpha_vs_dynamic_notional_beta_pnl_final 41.894M
alpha_vs_avg_hold_notional_beta_pnl_final 41.737M
dynamic_alpha_mdd_pnl -2.540M
avg_hold_alpha_mdd_pnl -2.555M
dynamic_alpha_sharpe_annualized 14.0025
avg_hold_alpha_sharpe_annualized 13.9325
time_avg_total_notional_position_usdt 91.787M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 91.787M
trade_return_per_trade_bp 27.00bp
roi_avg_notional_position_pct 56.61%
roi_peak_notional_position_pct 50.77%
num_trades 8,677
high_mc_trade_notional 0.000M
high_mc_sharpe_annualized
high_mc_trade_return_per_trade_bp
low_mc_trade_notional 19243.998M
low_mc_sharpe_annualized 14.8152
low_mc_trade_return_per_trade_bp 27.00bp
sharpe_annualized 14.8152

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.7
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 51.962M
total_pnl_peak 51.968M
dynamic_notional_beta_pnl_final 10.068M
alpha_vs_dynamic_notional_beta_pnl_final 41.894M
avg_hold_notional_beta_pnl_final 10.224M
alpha_vs_avg_hold_notional_beta_pnl_final 41.737M
high_mc_dynamic_notional_beta_pnl_final 0.000M
low_mc_dynamic_notional_beta_pnl_final 10.068M
high_mc_avg_hold_notional_beta_pnl_final 0.000M
low_mc_avg_hold_notional_beta_pnl_final 10.224M
high_mc_alpha_vs_dynamic_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_dynamic_notional_beta_pnl_final 41.894M
high_mc_alpha_vs_avg_hold_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_avg_hold_notional_beta_pnl_final 41.737M
dynamic_alpha_mdd_pnl -2.540M
dynamic_alpha_sharpe_annualized 14.0025
avg_hold_alpha_mdd_pnl -2.555M
avg_hold_alpha_sharpe_annualized 13.9325
num_trades 8,677
total_traded_amount_sum 1.97913e+07
total_trade_notional 19243.998M
daily_trade_notional 469.366M
trading_day_count 41
total_fee 19.244M
time_avg_total_notional_position_usdt 91.787M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 91.787M
time_avg_net_position_usdt 91.787M
time_avg_abs_net_position_usdt 91.787M
peak_abs_net_position_usdt 1.02337e+08
roi_avg_notional_position_pct 56.61%
roi_peak_notional_position_pct 50.77%
mdd_pnl -5.502M
sharpe_annualized 14.8152
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 51.962M
low_mc_trade_notional 19243.998M
low_mc_num_trades 8,677
low_mc_sharpe_annualized 14.8152
low_mc_trade_return_per_trade_bp 27.00bp
model_zscore_pnl_final 7610.254M
hedge_zscore_pnl_final 966.908M
force_zscore_pnl_final 0.000M
funding_fee_pnl_final 0.000M
funding_event_count 0
model_win_rate_20m 62.46%
hedge_win_rate_20m 43.05%
force_win_rate_20m
model_win_rate_btc_adj_20m 62.46%
hedge_win_rate_btc_adj_20m 43.05%
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.19617e+07 1.9244e+10 8677 14.8152 27.0015
high 0 0 0
low 5.19617e+07 1.9244e+10 8677 14.8152 27.0015

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 6526 2.2495e+07 0.00157197 15.7197 0.606344 0.00151483 0.000708001 0.000898517 2.2495e+07 0.00157197 15.7197 0.606344
10 6526 2.83944e+07 0.00198422 19.8422 0.624119 0.00420686 -0.000371517 0.00538632 2.83944e+07 0.00198422 19.8422 0.624119
20 6523 3.09499e+07 0.00216393 21.6393 0.624559 0.00456798 -0.000433347 0.00399379 3.09499e+07 0.00216393 21.6393 0.624559
30 6519 3.29134e+07 0.00230249 23.0249 0.624022 0.00524228 -0.000643664 0.00399568 3.29134e+07 0.00230249 23.0249 0.624022
60 6512 3.58338e+07 0.00250983 25.0983 0.605037 0.00315713 0.00071185 0.00076514 3.58338e+07 0.00250983 25.0983 0.605037
120 6501 5.19487e+07 0.00364474 36.4474 0.598369 -0.00129283 0.00451323 5.12265e-05 5.19487e+07 0.00364474 36.4474 0.598369
240 6460 5.43189e+07 0.00383865 38.3865 0.574149 -0.000751696 0.00439123 1.03101e-05 5.43189e+07 0.00383865 38.3865 0.574149

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 2151 -3.5171e+06 -0.000712849 -7.12849 0.367736 0.00400496 -0.0014859 0.015502 -3.5171e+06 -0.000712849 -7.12849 0.367736
10 2151 -3.24511e+06 -0.000657722 -6.57722 0.41655 0.00309988 -0.00123186 0.00628135 -3.24511e+06 -0.000657722 -6.57722 0.41655
20 2151 -4.36899e+06 -0.000885512 -8.85512 0.430497 0.00345592 -0.00153493 0.00369793 -4.36899e+06 -0.000885512 -8.85512 0.430497
30 2147 -3.80894e+06 -0.00077358 -7.7358 0.451327 0.00534944 -0.0018111 0.00615907 -3.80894e+06 -0.00077358 -7.7358 0.451327
60 2139 -5.93997e+06 -0.00121137 -12.1137 0.472651 0.00276855 -0.00190976 0.000598257 -5.93997e+06 -0.00121137 -12.1137 0.472651
120 2136 -3.89266e+06 -0.000795076 -7.95076 0.486891 0.00495152 -0.00199418 0.00109302 -3.89266e+06 -0.000795076 -7.95076 0.486891
240 2128 -4.49191e+06 -0.000920923 -9.20923 0.476504 -0.00197831 -0.000613486 8.39696e-05 -4.49191e+06 -0.000920923 -9.20923 0.476504

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 371 621571 0.00496179 49.6179
09:20 325 538872 0.00457328 45.7328
09:40 271 519019 0.00017438 1.7438
10:00 271 583958 0.00274621 27.4621
10:20 213 385833 0.00281073 28.1073
10:40 215 528149 0.00480522 48.0522
11:00 295 721072 0.00234563 23.4563
11:20 253 551763 0.00424594 42.4594
11:40 218 473350 0.0048661 48.661
12:00 171 439536 0.00431678 43.1678
12:20 218 624084 0.00419601 41.9601
12:40 222 581103 0.0039237 39.237
13:00 223 571346 0.00359485 35.9485
13:20 269 565638 0.0209185 209.185
13:40 277 588017 0.0130855 130.855
14:00 240 492469 0.000667586 6.67586
14:20 185 424969 0.00558967 55.8967
14:40 138 321005 0.00649075 64.9075
15:00 183 398533 0.00565234 56.5234
15:20 0 0

Z-Score-Quality Scatter + Regression

Model Buy/Sell Scatter + Regression