KOSPI Backtest Dashboard

run_id: 20260322T115157Z_userreq_toss_ultimate_v2_parquet_20260322_tossenriched_z3p3
generated_at_utc: 2026-03-22T11:57:13.025226+00:00

Top KPI

trade_return_per_trade_bp = (total_pnl_final / total_trade_notional) * 10000
metric value
total_pnl_final 30.915M
total_trade_notional 7928.260M
daily_trade_notional 193.372M
total_fee 7.928M
mdd_pnl -4.061M
alpha_vs_dynamic_notional_beta_pnl_final 29.390M
alpha_vs_avg_hold_notional_beta_pnl_final 27.028M
dynamic_alpha_mdd_pnl -1.515M
avg_hold_alpha_mdd_pnl -1.754M
dynamic_alpha_sharpe_annualized 11.6808
avg_hold_alpha_sharpe_annualized 10.8508
time_avg_total_notional_position_usdt 34.891M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 34.891M
trade_return_per_trade_bp 38.99bp
roi_avg_notional_position_pct 88.60%
roi_peak_notional_position_pct 30.53%
num_trades 3,255
high_mc_trade_notional 0.000M
high_mc_sharpe_annualized
high_mc_trade_return_per_trade_bp
low_mc_trade_notional 7928.260M
low_mc_sharpe_annualized 11.4584
low_mc_trade_return_per_trade_bp 38.99bp
sharpe_annualized 11.4584

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.3
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 30.915M
total_pnl_peak 31.018M
dynamic_notional_beta_pnl_final 1.524M
alpha_vs_dynamic_notional_beta_pnl_final 29.390M
avg_hold_notional_beta_pnl_final 3.887M
alpha_vs_avg_hold_notional_beta_pnl_final 27.028M
high_mc_dynamic_notional_beta_pnl_final 0.000M
low_mc_dynamic_notional_beta_pnl_final 1.524M
high_mc_avg_hold_notional_beta_pnl_final 0.000M
low_mc_avg_hold_notional_beta_pnl_final 3.887M
high_mc_alpha_vs_dynamic_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_dynamic_notional_beta_pnl_final 29.390M
high_mc_alpha_vs_avg_hold_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_avg_hold_notional_beta_pnl_final 27.028M
dynamic_alpha_mdd_pnl -1.515M
dynamic_alpha_sharpe_annualized 11.6808
avg_hold_alpha_mdd_pnl -1.754M
avg_hold_alpha_sharpe_annualized 10.8508
num_trades 3,255
total_traded_amount_sum 6.9707e+06
total_trade_notional 7928.260M
daily_trade_notional 193.372M
trading_day_count 41
total_fee 7.928M
time_avg_total_notional_position_usdt 34.891M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 34.891M
time_avg_net_position_usdt 34.891M
time_avg_abs_net_position_usdt 34.891M
peak_abs_net_position_usdt 1.0125e+08
roi_avg_notional_position_pct 88.60%
roi_peak_notional_position_pct 30.53%
mdd_pnl -4.061M
sharpe_annualized 11.4584
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 30.915M
low_mc_trade_notional 7928.260M
low_mc_num_trades 3,255
low_mc_sharpe_annualized 11.4584
low_mc_trade_return_per_trade_bp 38.99bp
model_zscore_pnl_final 1358.102M
hedge_zscore_pnl_final 104.241M
force_zscore_pnl_final 0.000M
funding_fee_pnl_final 0.000M
funding_event_count 0
model_win_rate_20m 60.62%
hedge_win_rate_20m 46.30%
force_win_rate_20m
model_win_rate_btc_adj_20m 60.62%
hedge_win_rate_btc_adj_20m 46.30%
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 3.09148e+07 7.92826e+09 3255 11.4584 38.9932
high 0 0 0
low 3.09148e+07 7.92826e+09 3255 11.4584 38.9932

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 2388 9.5985e+06 0.00165887 16.5887 0.597152 0.0108831 -0.00107992 0.00429739 9.5985e+06 0.00165887 16.5887 0.597152
10 2388 1.39392e+07 0.00240905 24.0905 0.616834 0.0172175 -0.00199309 0.00870443 1.39392e+07 0.00240905 24.0905 0.616834
20 2387 1.49547e+07 0.00258568 25.8568 0.6062 0.0210046 -0.00272624 0.00858301 1.49547e+07 0.00258568 25.8568 0.6062
30 2387 1.62311e+07 0.00280637 28.0637 0.617512 0.0223685 -0.00284087 0.00841038 1.62311e+07 0.00280637 28.0637 0.617512
60 2378 1.82895e+07 0.00317454 31.7454 0.616484 0.0238264 -0.00273277 0.00583043 1.82895e+07 0.00317454 31.7454 0.616484
120 2346 3.34066e+07 0.00588022 58.8022 0.606991 0.00884765 0.00331282 0.000324477 3.34066e+07 0.00588022 58.8022 0.606991
240 2312 3.77242e+07 0.00674163 67.4163 0.57699 0.029597 -0.00083421 0.00224893 3.77242e+07 0.00674163 67.4163 0.57699

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 867 -631856 -0.000294973 -2.94973 0.397924 0.0166409 -0.00112955 0.0423093 -631856 -0.000294973 -2.94973 0.397924
10 867 -434818 -0.000202989 -2.02989 0.44406 0.0192972 -0.00113142 0.0332914 -434818 -0.000202989 -2.02989 0.44406
20 866 -1.26377e+06 -0.000590684 -5.90684 0.463048 0.0185165 -0.00147665 0.00943967 -1.26377e+06 -0.000590684 -5.90684 0.463048
30 862 -1.44582e+06 -0.00067901 -6.7901 0.488399 0.0214934 -0.00166656 0.00862839 -1.44582e+06 -0.00067901 -6.7901 0.488399
60 860 -2.35587e+06 -0.00110901 -11.0901 0.477907 -0.00442363 -0.000977118 0.000246502 -2.35587e+06 -0.00110901 -11.0901 0.477907
120 855 -2.58074e+06 -0.00122213 -12.2213 0.483041 0.0068502 -0.00159909 0.000349719 -2.58074e+06 -0.00122213 -12.2213 0.483041
240 836 -4.83732e+06 -0.00234386 -23.4386 0.477273 -0.00770995 -0.00201133 0.000212247 -4.83732e+06 -0.00234386 -23.4386 0.477273

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 124 243684 0.0109309 109.309
09:20 84 154960 0.00231174 23.1174
09:40 71 168548 -0.0052726 -52.726
10:00 63 125750 0.00436437 43.6437
10:20 53 126657 0.00214343 21.4343
10:40 47 121450 0.00391001 39.1001
11:00 106 258913 0.000230475 2.30475
11:20 83 243413 0.00870891 87.0891
11:40 71 158739 0.00680639 68.0639
12:00 69 204294 0.00669988 66.9988
12:20 72 151083 0.00271492 27.1492
12:40 90 154899 0.00423235 42.3235
13:00 91 139884 0.00639734 63.9734
13:20 183 376743 0.0349614 349.614
13:40 185 359720 0.00393649 39.3649
14:00 115 203774 0.00511208 51.1208
14:20 91 178132 0.00562042 56.2042
14:40 30 49333 -0.00188623 -18.8623
15:00 39 71810 0.00340503 34.0503
15:20 0 0

Z-Score-Quality Scatter + Regression

Model Buy/Sell Scatter + Regression