KOSPI Backtest Dashboard

run_id: 20260321T111227Z_userreq_toss_tabm_enh129_ceonly_20260320_target350_z3
generated_at_utc: 2026-03-21T11:21:08.147029+00:00

Top KPI

trade_return_per_trade_bp = (total_pnl_final / total_trade_notional) * 10000
metric value
total_pnl_final 25.882M
total_trade_notional 14527.274M
daily_trade_notional 354.324M
total_fee 14.527M
mdd_pnl -10.922M
alpha_vs_dynamic_notional_beta_pnl_final 16.510M
alpha_vs_avg_hold_notional_beta_pnl_final 17.257M
dynamic_alpha_mdd_pnl -2.620M
avg_hold_alpha_mdd_pnl -1.950M
dynamic_alpha_sharpe_annualized 6.97365
avg_hold_alpha_sharpe_annualized 7.01061
time_avg_total_notional_position_usdt 77.429M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 77.429M
trade_return_per_trade_bp 17.82bp
roi_avg_notional_position_pct 33.43%
roi_peak_notional_position_pct 25.53%
num_trades 6,348
high_mc_trade_notional 0.000M
high_mc_sharpe_annualized
high_mc_trade_return_per_trade_bp
low_mc_trade_notional 14527.274M
low_mc_sharpe_annualized 7.28583
low_mc_trade_return_per_trade_bp 17.82bp
sharpe_annualized 7.28583

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 25.882M
total_pnl_peak 30.928M
dynamic_notional_beta_pnl_final 9.372M
alpha_vs_dynamic_notional_beta_pnl_final 16.510M
avg_hold_notional_beta_pnl_final 8.625M
alpha_vs_avg_hold_notional_beta_pnl_final 17.257M
high_mc_dynamic_notional_beta_pnl_final 0.000M
low_mc_dynamic_notional_beta_pnl_final 9.372M
high_mc_avg_hold_notional_beta_pnl_final 0.000M
low_mc_avg_hold_notional_beta_pnl_final 8.625M
high_mc_alpha_vs_dynamic_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_dynamic_notional_beta_pnl_final 16.510M
high_mc_alpha_vs_avg_hold_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_avg_hold_notional_beta_pnl_final 17.257M
dynamic_alpha_mdd_pnl -2.620M
dynamic_alpha_sharpe_annualized 6.97365
avg_hold_alpha_mdd_pnl -1.950M
avg_hold_alpha_sharpe_annualized 7.01061
num_trades 6,348
total_traded_amount_sum 6.83052e+06
total_trade_notional 14527.274M
daily_trade_notional 354.324M
trading_day_count 41
total_fee 14.527M
time_avg_total_notional_position_usdt 77.429M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 77.429M
time_avg_net_position_usdt 77.429M
time_avg_abs_net_position_usdt 77.429M
peak_abs_net_position_usdt 1.01392e+08
roi_avg_notional_position_pct 33.43%
roi_peak_notional_position_pct 25.53%
mdd_pnl -10.922M
sharpe_annualized 7.28583
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 25.882M
low_mc_trade_notional 14527.274M
low_mc_num_trades 6,348
low_mc_sharpe_annualized 7.28583
low_mc_trade_return_per_trade_bp 17.82bp
model_zscore_pnl_final 5255.462M
hedge_zscore_pnl_final 1489.335M
force_zscore_pnl_final 0.000M
funding_fee_pnl_final 0.000M
funding_event_count 0
model_win_rate_20m 56.54%
hedge_win_rate_20m 46.01%
force_win_rate_20m
model_win_rate_btc_adj_20m 56.54%
hedge_win_rate_btc_adj_20m 46.01%
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 2.58818e+07 1.45273e+10 6348 7.28583 17.816
high 0 0 0
low 2.58818e+07 1.45273e+10 6348 7.28583 17.816

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 3714 6.44634e+06 0.000776385 7.76385 0.530964 0.00128877 -0.000218035 0.000994332 6.44634e+06 0.000776385 7.76385 0.530964
10 3714 8.81406e+06 0.00106155 10.6155 0.551427 0.00140543 -5.02147e-05 0.000984395 8.81406e+06 0.00106155 10.6155 0.551427
20 3714 1.0287e+07 0.00123895 12.3895 0.565428 0.000294696 0.000780146 2.29734e-05 1.0287e+07 0.00123895 12.3895 0.565428
30 3712 1.17372e+07 0.00141446 14.1446 0.559537 -0.000343365 0.00132529 2.15571e-05 1.17372e+07 0.00141446 14.1446 0.559537
60 3708 1.73635e+07 0.00209496 20.9496 0.564725 0.000812227 0.00127467 7.19922e-05 1.73635e+07 0.00209496 20.9496 0.564725
120 3703 2.32453e+07 0.00280883 28.0883 0.567108 -0.00223112 0.00396733 0.000290152 2.32453e+07 0.00280883 28.0883 0.567108
240 3703 2.87306e+07 0.00347165 34.7165 0.555496 -0.00222556 0.00447243 0.00015093 2.87306e+07 0.00347165 34.7165 0.555496

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 2634 -5.49005e+06 -0.00088204 -8.8204 0.386864 0.00151737 -0.00125787 0.00186183 -5.49005e+06 -0.00088204 -8.8204 0.386864
10 2634 -5.2163e+06 -0.00083806 -8.3806 0.405087 0.000401907 -0.000954399 0.00010188 -5.2163e+06 -0.00083806 -8.3806 0.405087
20 2634 -4.75408e+06 -0.000763799 -7.63799 0.460137 0.00211094 -0.0012494 0.00116949 -4.75408e+06 -0.000763799 -7.63799 0.460137
30 2634 -4.50959e+06 -0.000724519 -7.24519 0.468489 0.00240298 -0.00126963 0.0010314 -4.50959e+06 -0.000724519 -7.24519 0.468489
60 2634 -3.64682e+06 -0.000585904 -5.85904 0.479879 0.00223968 -0.00109662 0.000482926 -3.64682e+06 -0.000585904 -5.85904 0.479879
120 2633 -3.34215e+06 -0.000537176 -5.37176 0.49981 0.00427324 -0.00154061 0.000788453 -3.34215e+06 -0.000537176 -5.37176 0.49981
240 2632 -922980 -0.00014841 -1.4841 0.504179 0.0108026 -0.0027064 0.0027043 -922980 -0.00014841 -1.4841 0.504179

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 158 215893 0.00692138 69.2138
09:20 126 139600 0.00452486 45.2486
09:40 143 178499 -0.00279204 -27.9204
10:00 200 277234 0.00125957 12.5957
10:20 184 161998 0.000534733 5.34733
10:40 185 225926 0.00259691 25.9691
11:00 204 276867 0.00137885 13.7885
11:20 162 204421 0.00359041 35.9041
11:40 159 179834 0.00185313 18.5313
12:00 182 261462 0.0032431 32.431
12:20 154 200748 0.0015778 15.778
12:40 157 180560 0.00141738 14.1738
13:00 174 215594 0.00138006 13.8006
13:20 316 236712 0.00454154 45.4154
13:40 228 131147 0.000998848 9.98848
14:00 150 81925 0.00441388 44.1388
14:20 177 83445 -0.000648632 -6.48632
14:40 111 53245 0.0132026 132.026
15:00 118 118989 0.00711133 71.1133
15:20 0 0

Z-Score-Quality Scatter + Regression

Model Buy/Sell Scatter + Regression