KOSPI Backtest Dashboard

run_id: 20260322T114841Z_userreq_toss_ultimate_v3_parquet_20260322_tossenriched_z2p7
generated_at_utc: 2026-03-22T11:51:03.426473+00:00

Top KPI

trade_return_per_trade_bp = (total_pnl_final / total_trade_notional) * 10000
metric value
total_pnl_final 50.732M
total_trade_notional 18350.038M
daily_trade_notional 447.562M
total_fee 18.350M
mdd_pnl -5.749M
alpha_vs_dynamic_notional_beta_pnl_final 42.100M
alpha_vs_avg_hold_notional_beta_pnl_final 40.643M
dynamic_alpha_mdd_pnl -1.586M
avg_hold_alpha_mdd_pnl -2.448M
dynamic_alpha_sharpe_annualized 14.3581
avg_hold_alpha_sharpe_annualized 13.4634
time_avg_total_notional_position_usdt 90.569M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 90.569M
trade_return_per_trade_bp 27.65bp
roi_avg_notional_position_pct 56.01%
roi_peak_notional_position_pct 49.52%
num_trades 8,195
high_mc_trade_notional 0.000M
high_mc_sharpe_annualized
high_mc_trade_return_per_trade_bp
low_mc_trade_notional 18350.038M
low_mc_sharpe_annualized 14.7082
low_mc_trade_return_per_trade_bp 27.65bp
sharpe_annualized 14.7082

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 50.732M
total_pnl_peak 50.732M
dynamic_notional_beta_pnl_final 8.632M
alpha_vs_dynamic_notional_beta_pnl_final 42.100M
avg_hold_notional_beta_pnl_final 10.089M
alpha_vs_avg_hold_notional_beta_pnl_final 40.643M
high_mc_dynamic_notional_beta_pnl_final 0.000M
low_mc_dynamic_notional_beta_pnl_final 8.632M
high_mc_avg_hold_notional_beta_pnl_final 0.000M
low_mc_avg_hold_notional_beta_pnl_final 10.089M
high_mc_alpha_vs_dynamic_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_dynamic_notional_beta_pnl_final 42.100M
high_mc_alpha_vs_avg_hold_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_avg_hold_notional_beta_pnl_final 40.643M
dynamic_alpha_mdd_pnl -1.586M
dynamic_alpha_sharpe_annualized 14.3581
avg_hold_alpha_mdd_pnl -2.448M
avg_hold_alpha_sharpe_annualized 13.4634
num_trades 8,195
total_traded_amount_sum 1.61277e+07
total_trade_notional 18350.038M
daily_trade_notional 447.562M
trading_day_count 41
total_fee 18.350M
time_avg_total_notional_position_usdt 90.569M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 90.569M
time_avg_net_position_usdt 90.569M
time_avg_abs_net_position_usdt 90.569M
peak_abs_net_position_usdt 1.02455e+08
roi_avg_notional_position_pct 56.01%
roi_peak_notional_position_pct 49.52%
mdd_pnl -5.749M
sharpe_annualized 14.7082
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 50.732M
low_mc_trade_notional 18350.038M
low_mc_num_trades 8,195
low_mc_sharpe_annualized 14.7082
low_mc_trade_return_per_trade_bp 27.65bp
model_zscore_pnl_final 6530.700M
hedge_zscore_pnl_final 909.671M
force_zscore_pnl_final 0.000M
funding_fee_pnl_final 0.000M
funding_event_count 0
model_win_rate_20m 63.18%
hedge_win_rate_20m 43.19%
force_win_rate_20m
model_win_rate_btc_adj_20m 63.18%
hedge_win_rate_btc_adj_20m 43.19%
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.07319e+07 1.835e+10 8195 14.7082 27.6468
high 0 0 0
low 5.07319e+07 1.835e+10 8195 14.7082 27.6468

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 5945 2.11878e+07 0.00161226 16.1226 0.606392 0.00183144 0.000617834 0.000849009 2.11878e+07 0.00161226 16.1226 0.606392
10 5945 2.70518e+07 0.00205848 20.5848 0.629941 0.00474454 -0.000434451 0.00451645 2.70518e+07 0.00205848 20.5848 0.629941
20 5940 2.95931e+07 0.00225366 22.5366 0.631818 0.00444938 -7.14285e-05 0.00267965 2.95931e+07 0.00225366 22.5366 0.631818
30 5937 3.25773e+07 0.00248233 24.8233 0.634159 0.00377815 0.000472862 0.00147941 3.25773e+07 0.00248233 24.8233 0.634159
60 5930 3.70136e+07 0.00282393 28.2393 0.618718 0.0044573 0.000397648 0.00120371 3.70136e+07 0.00282393 28.2393 0.618718
120 5916 5.01107e+07 0.00383341 38.3341 0.604293 0.000574807 0.00362159 8.82231e-06 5.01107e+07 0.00383341 38.3341 0.604293
240 5885 5.45381e+07 0.00419709 41.9709 0.581308 0.00048106 0.00406531 3.54496e-06 5.45381e+07 0.00419709 41.9709 0.581308

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 2250 -4.25609e+06 -0.00081716 -8.1716 0.360444 0.00379075 -0.00145258 0.0110197 -4.25609e+06 -0.00081716 -8.1716 0.360444
10 2250 -3.93647e+06 -0.000755793 -7.55793 0.414222 0.00198293 -0.00102612 0.00199804 -3.93647e+06 -0.000755793 -7.55793 0.414222
20 2248 -5.47989e+06 -0.00105314 -10.5314 0.43194 0.00426907 -0.00170824 0.00438487 -5.47989e+06 -0.00105314 -10.5314 0.43194
30 2246 -5.31203e+06 -0.00102188 -10.2188 0.445236 0.00600461 -0.00199289 0.00549131 -5.31203e+06 -0.00102188 -10.2188 0.445236
60 2239 -8.09585e+06 -0.00156274 -15.6274 0.46628 0.0046534 -0.00225278 0.00131871 -8.09585e+06 -0.00156274 -15.6274 0.46628
120 2237 -5.73429e+06 -0.00110795 -11.0795 0.484578 0.0118419 -0.00309048 0.00481085 -5.73429e+06 -0.00110795 -11.0795 0.484578
240 2229 -5.04646e+06 -0.000978847 -9.78847 0.485419 0.00448579 -0.00163963 0.000361154 -5.04646e+06 -0.000978847 -9.78847 0.485419

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 327 551093 0.00749909 74.9909
09:20 294 470524 0.00141884 14.1884
09:40 244 475536 0.000381588 3.81588
10:00 242 497689 0.00264933 26.4933
10:20 231 403514 0.00397137 39.7137
10:40 219 403211 0.00364971 36.4971
11:00 278 575677 0.00195625 19.5625
11:20 229 489419 0.00475102 47.5102
11:40 176 339547 0.0039094 39.094
12:00 179 332123 0.00439984 43.9984
12:20 185 447443 0.00288186 28.8186
12:40 212 488555 0.0047629 47.629
13:00 239 469655 0.00303266 30.3266
13:20 286 484195 0.0158555 158.555
13:40 269 486488 0.0149483 149.483
14:00 213 382429 0.00107822 10.7822
14:20 173 357272 0.00621261 62.1261
14:40 118 191715 0.00777326 77.7326
15:00 172 248229 0.0058454 58.454
15:20 0 0

Z-Score-Quality Scatter + Regression

Model Buy/Sell Scatter + Regression