KOSPI Backtest Dashboard

run_id: 20260322T120623Z_userreq_toss_ultimate_v3_parquet_20260322_tossenriched_z3p05
generated_at_utc: 2026-03-22T12:07:02.225717+00:00

Top KPI

trade_return_per_trade_bp = (total_pnl_final / total_trade_notional) * 10000
metric value
total_pnl_final 42.983M
total_trade_notional 14575.137M
daily_trade_notional 355.491M
total_fee 14.575M
mdd_pnl -5.117M
alpha_vs_dynamic_notional_beta_pnl_final 38.180M
alpha_vs_avg_hold_notional_beta_pnl_final 34.930M
dynamic_alpha_mdd_pnl -1.631M
avg_hold_alpha_mdd_pnl -2.147M
dynamic_alpha_sharpe_annualized 13.5674
avg_hold_alpha_sharpe_annualized 11.8816
time_avg_total_notional_position_usdt 72.298M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 72.298M
trade_return_per_trade_bp 29.49bp
roi_avg_notional_position_pct 59.45%
roi_peak_notional_position_pct 42.63%
num_trades 6,083
high_mc_trade_notional 0.000M
high_mc_sharpe_annualized
high_mc_trade_return_per_trade_bp
low_mc_trade_notional 14575.137M
low_mc_sharpe_annualized 13.2714
low_mc_trade_return_per_trade_bp 29.49bp
sharpe_annualized 13.2714

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.05
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.983M
total_pnl_peak 43.029M
dynamic_notional_beta_pnl_final 4.803M
alpha_vs_dynamic_notional_beta_pnl_final 38.180M
avg_hold_notional_beta_pnl_final 8.054M
alpha_vs_avg_hold_notional_beta_pnl_final 34.930M
high_mc_dynamic_notional_beta_pnl_final 0.000M
low_mc_dynamic_notional_beta_pnl_final 4.803M
high_mc_avg_hold_notional_beta_pnl_final 0.000M
low_mc_avg_hold_notional_beta_pnl_final 8.054M
high_mc_alpha_vs_dynamic_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_dynamic_notional_beta_pnl_final 38.180M
high_mc_alpha_vs_avg_hold_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_avg_hold_notional_beta_pnl_final 34.930M
dynamic_alpha_mdd_pnl -1.631M
dynamic_alpha_sharpe_annualized 13.5674
avg_hold_alpha_mdd_pnl -2.147M
avg_hold_alpha_sharpe_annualized 11.8816
num_trades 6,083
total_traded_amount_sum 1.22999e+07
total_trade_notional 14575.137M
daily_trade_notional 355.491M
trading_day_count 41
total_fee 14.575M
time_avg_total_notional_position_usdt 72.298M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 72.298M
time_avg_net_position_usdt 72.298M
time_avg_abs_net_position_usdt 72.298M
peak_abs_net_position_usdt 1.00825e+08
roi_avg_notional_position_pct 59.45%
roi_peak_notional_position_pct 42.63%
mdd_pnl -5.117M
sharpe_annualized 13.2714
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.983M
low_mc_trade_notional 14575.137M
low_mc_num_trades 6,083
low_mc_sharpe_annualized 13.2714
low_mc_trade_return_per_trade_bp 29.49bp
model_zscore_pnl_final 5281.765M
hedge_zscore_pnl_final 892.952M
force_zscore_pnl_final 0.000M
funding_fee_pnl_final 0.000M
funding_event_count 0
model_win_rate_20m 64.20%
hedge_win_rate_20m 43.50%
force_win_rate_20m
model_win_rate_btc_adj_20m 64.20%
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.29833e+07 1.45751e+10 6083 13.2714 29.4908
high 0 0 0
low 4.29833e+07 1.45751e+10 6083 13.2714 29.4908

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 4111 1.48861e+07 0.001524 15.24 0.622233 0.00259073 6.53636e-05 0.00159678 1.48861e+07 0.001524 15.24 0.622233
10 4111 2.15085e+07 0.00220199 22.0199 0.642666 0.00571826 -0.0010478 0.0060838 2.15085e+07 0.00220199 22.0199 0.642666
20 4109 2.4731e+07 0.00253321 25.3321 0.642005 0.0058158 -0.000802068 0.00438162 2.4731e+07 0.00253321 25.3321 0.642005
30 4107 2.76587e+07 0.00283455 28.3455 0.64037 0.00608244 -0.000699841 0.00381055 2.76587e+07 0.00283455 28.3455 0.64037
60 4102 2.92849e+07 0.00300501 30.0501 0.631156 0.00427582 0.000558004 0.00107751 2.92849e+07 0.00300501 30.0501 0.631156
120 4092 4.54943e+07 0.00468039 46.8039 0.613881 -0.00337427 0.00624088 0.000274941 4.54943e+07 0.00468039 46.8039 0.613881
240 4075 5.08393e+07 0.00525317 52.5317 0.585767 -0.000312825 0.0052225 1.46283e-06 5.08393e+07 0.00525317 52.5317 0.585767

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 1972 -2.91243e+06 -0.000605823 -6.05823 0.373225 0.00467728 -0.00147356 0.0170081 -2.91243e+06 -0.000605823 -6.05823 0.373225
10 1972 -2.45848e+06 -0.000511396 -5.11396 0.440162 0.00480742 -0.001378 0.0133929 -2.45848e+06 -0.000511396 -5.11396 0.440162
20 1970 -4.97742e+06 -0.00103647 -10.3647 0.435025 0.00424082 -0.00182031 0.00247556 -4.97742e+06 -0.00103647 -10.3647 0.435025
30 1968 -4.64019e+06 -0.000967273 -9.67273 0.464431 0.00729716 -0.00230717 0.00500326 -4.64019e+06 -0.000967273 -9.67273 0.464431
60 1964 -7.97874e+06 -0.00166673 -16.6673 0.470468 0.00696241 -0.00303202 0.00273862 -7.97874e+06 -0.00166673 -16.6673 0.470468
120 1960 -5.06371e+06 -0.00106001 -10.6001 0.497959 0.0154727 -0.00405348 0.00864317 -5.06371e+06 -0.00106001 -10.6001 0.497959
240 1955 -4.21448e+06 -0.0008846 -8.846 0.511509 0.0104895 -0.00291886 0.00185724 -4.21448e+06 -0.0008846 -8.846 0.511509

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 227 481223 0.00807897 80.7897
09:20 203 328312 0.00486957 48.6957
09:40 182 450177 -0.000357114 -3.57114
10:00 195 313108 0.00488196 48.8196
10:20 169 336394 0.00254459 25.4459
10:40 191 504481 0.00247622 24.7622
11:00 203 452428 0.00122836 12.2836
11:20 193 407083 0.00470262 47.0262
11:40 134 259700 0.00401817 40.1817
12:00 139 283892 0.00596966 59.6966
12:20 124 270745 0.00398468 39.8468
12:40 130 195837 0.00309325 30.9325
13:00 143 275209 0.00420445 42.0445
13:20 229 464448 0.0225271 225.271
13:40 213 424901 0.0094415 94.415
14:00 164 324676 0.00275067 27.5067
14:20 129 185349 0.00509674 50.9674
14:40 62 88056 0.00812984 81.2984
15:00 90 119390 0.0030278 30.278
15:20 0 0

Z-Score-Quality Scatter + Regression

Model Buy/Sell Scatter + Regression