KOSPI Backtest Dashboard

run_id: 20260322T120623Z_userreq_toss_ultimate_v3_parquet_20260322_tossenriched_z3p00
generated_at_utc: 2026-03-22T12:06:51.302502+00:00

Top KPI

trade_return_per_trade_bp = (total_pnl_final / total_trade_notional) * 10000
metric value
total_pnl_final 42.713M
total_trade_notional 15212.035M
daily_trade_notional 371.025M
total_fee 15.212M
mdd_pnl -5.012M
alpha_vs_dynamic_notional_beta_pnl_final 37.388M
alpha_vs_avg_hold_notional_beta_pnl_final 34.308M
dynamic_alpha_mdd_pnl -1.633M
avg_hold_alpha_mdd_pnl -2.149M
dynamic_alpha_sharpe_annualized 13.278
avg_hold_alpha_sharpe_annualized 11.6723
time_avg_total_notional_position_usdt 75.461M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 75.461M
trade_return_per_trade_bp 28.08bp
roi_avg_notional_position_pct 56.60%
roi_peak_notional_position_pct 42.22%
num_trades 6,390
high_mc_trade_notional 0.000M
high_mc_sharpe_annualized
high_mc_trade_return_per_trade_bp
low_mc_trade_notional 15212.035M
low_mc_sharpe_annualized 13.2742
low_mc_trade_return_per_trade_bp 28.08bp
sharpe_annualized 13.2742

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
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.713M
total_pnl_peak 42.760M
dynamic_notional_beta_pnl_final 5.326M
alpha_vs_dynamic_notional_beta_pnl_final 37.388M
avg_hold_notional_beta_pnl_final 8.406M
alpha_vs_avg_hold_notional_beta_pnl_final 34.308M
high_mc_dynamic_notional_beta_pnl_final 0.000M
low_mc_dynamic_notional_beta_pnl_final 5.326M
high_mc_avg_hold_notional_beta_pnl_final 0.000M
low_mc_avg_hold_notional_beta_pnl_final 8.406M
high_mc_alpha_vs_dynamic_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_dynamic_notional_beta_pnl_final 37.388M
high_mc_alpha_vs_avg_hold_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_avg_hold_notional_beta_pnl_final 34.308M
dynamic_alpha_mdd_pnl -1.633M
dynamic_alpha_sharpe_annualized 13.278
avg_hold_alpha_mdd_pnl -2.149M
avg_hold_alpha_sharpe_annualized 11.6723
num_trades 6,390
total_traded_amount_sum 1.27465e+07
total_trade_notional 15212.035M
daily_trade_notional 371.025M
trading_day_count 41
total_fee 15.212M
time_avg_total_notional_position_usdt 75.461M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 75.461M
time_avg_net_position_usdt 75.461M
time_avg_abs_net_position_usdt 75.461M
peak_abs_net_position_usdt 1.0118e+08
roi_avg_notional_position_pct 56.60%
roi_peak_notional_position_pct 42.22%
mdd_pnl -5.012M
sharpe_annualized 13.2742
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.713M
low_mc_trade_notional 15212.035M
low_mc_num_trades 6,390
low_mc_sharpe_annualized 13.2742
low_mc_trade_return_per_trade_bp 28.08bp
model_zscore_pnl_final 5467.548M
hedge_zscore_pnl_final 916.709M
force_zscore_pnl_final 0.000M
funding_fee_pnl_final 0.000M
funding_event_count 0
model_win_rate_20m 63.91%
hedge_win_rate_20m 44.58%
force_win_rate_20m
model_win_rate_btc_adj_20m 63.91%
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 4.27135e+07 1.5212e+10 6390 13.2742 28.0787
high 0 0 0
low 4.27135e+07 1.5212e+10 6390 13.2742 28.0787

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 4352 1.45817e+07 0.00142201 14.2201 0.613511 0.00247666 5.36218e-05 0.00147366 1.45817e+07 0.00142201 14.2201 0.613511
10 4352 2.19805e+07 0.00214354 21.4354 0.637178 0.00568629 -0.00103498 0.00606239 2.19805e+07 0.00214354 21.4354 0.637178
20 4350 2.47308e+07 0.00241294 24.1294 0.63908 0.00547758 -0.000690535 0.00385115 2.47308e+07 0.00241294 24.1294 0.63908
30 4348 2.67692e+07 0.00261309 26.1309 0.634545 0.00543199 -0.000501699 0.00301532 2.67692e+07 0.00261309 26.1309 0.634545
60 4343 2.97188e+07 0.00290453 29.0453 0.628828 0.00467689 0.000242292 0.00130992 2.97188e+07 0.00290453 29.0453 0.628828
120 4332 4.47709e+07 0.00438748 43.8748 0.606879 -0.00223105 0.00531788 0.000116472 4.47709e+07 0.00438748 43.8748 0.606879
240 4313 5.01278e+07 0.0049354 49.354 0.583121 0.00105988 0.00413407 1.64663e-05 5.01278e+07 0.0049354 49.354 0.583121

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 2038 -2.94553e+06 -0.000594125 -5.94125 0.375859 0.00478058 -0.00145856 0.0190013 -2.94553e+06 -0.000594125 -5.94125 0.375859
10 2038 -2.35863e+06 -0.000475745 -4.75745 0.439156 0.00448804 -0.00129368 0.0128132 -2.35863e+06 -0.000475745 -4.75745 0.439156
20 2037 -4.56063e+06 -0.000920373 -9.20373 0.445754 0.00320186 -0.00153955 0.00153302 -4.56063e+06 -0.000920373 -9.20373 0.445754
30 2035 -3.78761e+06 -0.000765161 -7.65161 0.467813 0.00666634 -0.00212427 0.00431763 -3.78761e+06 -0.000765161 -7.65161 0.467813
60 2032 -6.58205e+06 -0.00133172 -13.3172 0.477362 0.00403152 -0.00217815 0.000941565 -6.58205e+06 -0.00133172 -13.3172 0.477362
120 2028 -3.20784e+06 -0.00065035 -6.5035 0.504931 0.0112117 -0.00291137 0.00492308 -3.20784e+06 -0.00065035 -6.5035 0.504931
240 2023 -3.27757e+06 -0.000666205 -6.66205 0.51656 0.00464848 -0.00167287 0.000373598 -3.27757e+06 -0.000666205 -6.66205 0.51656

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 234 481087 0.00848205 84.8205
09:20 218 369319 0.0046181 46.181
09:40 197 495621 -0.00049985 -4.9985
10:00 205 311979 0.00417048 41.7048
10:20 183 347263 0.00263225 26.3225
10:40 191 466701 0.00187247 18.7247
11:00 211 469824 0.00120091 12.0091
11:20 198 402486 0.00425597 42.5597
11:40 137 262007 0.00381118 38.1118
12:00 146 328832 0.00631038 63.1038
12:20 126 268099 0.00306012 30.6012
12:40 134 224020 0.00380241 38.0241
13:00 159 313582 0.00381665 38.1665
13:20 238 453177 0.0214844 214.844
13:40 221 447810 0.0109818 109.818
14:00 180 309559 0.00274141 27.4141
14:20 143 199556 0.00580293 58.0293
14:40 69 98804 0.00434684 43.4684
15:00 100 143090 0.00165165 16.5165
15:20 0 0

Z-Score-Quality Scatter + Regression

Model Buy/Sell Scatter + Regression