KOSPI Backtest Dashboard

run_id: 20260322T114841Z_userreq_toss_ultimate_v3_parquet_20260322_tossenriched_z2p5
generated_at_utc: 2026-03-22T11:49:19.692849+00:00

Top KPI

trade_return_per_trade_bp = (total_pnl_final / total_trade_notional) * 10000
metric value
total_pnl_final 47.568M
total_trade_notional 19069.359M
daily_trade_notional 465.106M
total_fee 19.069M
mdd_pnl -6.930M
alpha_vs_dynamic_notional_beta_pnl_final 37.106M
alpha_vs_avg_hold_notional_beta_pnl_final 36.982M
dynamic_alpha_mdd_pnl -2.263M
avg_hold_alpha_mdd_pnl -2.351M
dynamic_alpha_sharpe_annualized 12.5513
avg_hold_alpha_sharpe_annualized 12.4509
time_avg_total_notional_position_usdt 95.037M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 95.037M
trade_return_per_trade_bp 24.94bp
roi_avg_notional_position_pct 50.05%
roi_peak_notional_position_pct 46.55%
num_trades 9,040
high_mc_trade_notional 0.000M
high_mc_sharpe_annualized
high_mc_trade_return_per_trade_bp
low_mc_trade_notional 19069.359M
low_mc_sharpe_annualized 13.5482
low_mc_trade_return_per_trade_bp 24.94bp
sharpe_annualized 13.5482

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 47.568M
total_pnl_peak 47.580M
dynamic_notional_beta_pnl_final 10.462M
alpha_vs_dynamic_notional_beta_pnl_final 37.106M
avg_hold_notional_beta_pnl_final 10.587M
alpha_vs_avg_hold_notional_beta_pnl_final 36.982M
high_mc_dynamic_notional_beta_pnl_final 0.000M
low_mc_dynamic_notional_beta_pnl_final 10.462M
high_mc_avg_hold_notional_beta_pnl_final 0.000M
low_mc_avg_hold_notional_beta_pnl_final 10.587M
high_mc_alpha_vs_dynamic_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_dynamic_notional_beta_pnl_final 37.106M
high_mc_alpha_vs_avg_hold_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_avg_hold_notional_beta_pnl_final 36.982M
dynamic_alpha_mdd_pnl -2.263M
dynamic_alpha_sharpe_annualized 12.5513
avg_hold_alpha_mdd_pnl -2.351M
avg_hold_alpha_sharpe_annualized 12.4509
num_trades 9,040
total_traded_amount_sum 1.78726e+07
total_trade_notional 19069.359M
daily_trade_notional 465.106M
trading_day_count 41
total_fee 19.069M
time_avg_total_notional_position_usdt 95.037M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 95.037M
time_avg_net_position_usdt 95.037M
time_avg_abs_net_position_usdt 95.037M
peak_abs_net_position_usdt 1.02179e+08
roi_avg_notional_position_pct 50.05%
roi_peak_notional_position_pct 46.55%
mdd_pnl -6.930M
sharpe_annualized 13.5482
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 47.568M
low_mc_trade_notional 19069.359M
low_mc_num_trades 9,040
low_mc_sharpe_annualized 13.5482
low_mc_trade_return_per_trade_bp 24.94bp
model_zscore_pnl_final 6802.114M
hedge_zscore_pnl_final 828.681M
force_zscore_pnl_final 0.000M
funding_fee_pnl_final 0.000M
funding_event_count 0
model_win_rate_20m 61.97%
hedge_win_rate_20m 43.50%
force_win_rate_20m
model_win_rate_btc_adj_20m 61.97%
hedge_win_rate_btc_adj_20m 43.50%
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.75684e+07 1.90694e+10 9040 13.5482 24.9449
high 0 0 0
low 4.75684e+07 1.90694e+10 9040 13.5482 24.9449

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 6848 2.08777e+07 0.0014656 14.656 0.59521 0.00246273 0.000242604 0.0017741 2.08777e+07 0.0014656 14.656 0.59521
10 6848 2.6209e+07 0.00183986 18.3986 0.612296 0.00485311 -0.00061173 0.0056376 2.6209e+07 0.00183986 18.3986 0.612296
20 6844 2.92762e+07 0.00205629 20.5629 0.619667 0.004981 -0.000457586 0.00409568 2.92762e+07 0.00205629 20.5629 0.619667
30 6840 3.04592e+07 0.00214052 21.4052 0.61886 0.00510857 -0.000389344 0.00336267 3.04592e+07 0.00214052 21.4052 0.61886
60 6832 3.31987e+07 0.00233561 23.3561 0.598068 0.00576727 -0.000583653 0.00214886 3.31987e+07 0.00233561 23.3561 0.598068
120 6818 4.97703e+07 0.0035088 35.088 0.601936 0.00552363 0.00120044 0.000820226 4.97703e+07 0.0035088 35.088 0.601936
240 6774 4.93157e+07 0.00350411 35.0411 0.568202 0.00495648 0.00148583 0.000379661 4.93157e+07 0.00350411 35.0411 0.568202

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 2192 -3.76832e+06 -0.000781128 -7.81128 0.368157 0.00301125 -0.00128945 0.00637217 -3.76832e+06 -0.000781128 -7.81128 0.368157
10 2192 -3.74714e+06 -0.000776736 -7.76736 0.429288 0.0022851 -0.00112999 0.0024644 -3.74714e+06 -0.000776736 -7.76736 0.429288
20 2191 -3.72806e+06 -0.00077319 -7.7319 0.434961 0.00307613 -0.00135543 0.00225788 -3.72806e+06 -0.00077319 -7.7319 0.434961
30 2187 -3.49804e+06 -0.00072701 -7.2701 0.454961 0.00581221 -0.00181974 0.00474103 -3.49804e+06 -0.00072701 -7.2701 0.454961
60 2181 -5.83473e+06 -0.0012165 -12.165 0.471343 0.00626624 -0.00229263 0.00228756 -5.83473e+06 -0.0012165 -12.165 0.471343
120 2175 -3.15726e+06 -0.000660133 -6.60133 0.486897 0.0110986 -0.00255375 0.00403031 -3.15726e+06 -0.000660133 -6.60133 0.486897
240 2168 -4.74175e+06 -0.000994876 -9.94876 0.495387 0.00657804 -0.00198546 0.000668833 -4.74175e+06 -0.000994876 -9.94876 0.495387

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 352 512784 0.0047645 47.645
09:20 328 509026 0.00519801 51.9801
09:40 284 546934 0.000632216 6.32216
10:00 277 617148 0.0028234 28.234
10:20 232 350142 0.00252469 25.2469
10:40 233 491678 0.00376322 37.6322
11:00 347 640316 0.00267758 26.7758
11:20 279 585568 0.00407729 40.7729
11:40 224 426578 0.00236533 23.6533
12:00 201 398064 0.00413935 41.3935
12:20 213 507159 0.0033358 33.358
12:40 223 494367 0.00434599 43.4599
13:00 243 577626 0.0037793 37.793
13:20 268 566375 0.0185577 185.577
13:40 294 421052 0.0152819 152.819
14:00 245 409915 0.00576998 57.6998
14:20 183 283444 0.00513864 51.3864
14:40 169 268921 0.00540443 54.0443
15:00 197 352541 0.00556454 55.6454
15:20 0 0

Z-Score-Quality Scatter + Regression

Model Buy/Sell Scatter + Regression