KOSPI Backtest Dashboard

run_id: 20260321T_userreq_toss_tabm_alpha_ce_parquet_20260321_tossenriched_target350_z2p5
generated_at_utc: 2026-03-21T14:00:15.397545+00:00

Top KPI

trade_return_per_trade_bp = (total_pnl_final / total_trade_notional) * 10000
metric value
total_pnl_final 36.905M
total_trade_notional 14445.516M
daily_trade_notional 352.330M
total_fee 14.446M
mdd_pnl -8.786M
alpha_vs_dynamic_notional_beta_pnl_final 30.818M
alpha_vs_avg_hold_notional_beta_pnl_final 29.380M
dynamic_alpha_mdd_pnl -1.872M
avg_hold_alpha_mdd_pnl -2.285M
dynamic_alpha_sharpe_annualized 11.4225
avg_hold_alpha_sharpe_annualized 10.5988
time_avg_total_notional_position_usdt 67.546M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 67.546M
trade_return_per_trade_bp 25.55bp
roi_avg_notional_position_pct 54.64%
roi_peak_notional_position_pct 36.04%
num_trades 6,278
high_mc_trade_notional 0.000M
high_mc_sharpe_annualized
high_mc_trade_return_per_trade_bp
low_mc_trade_notional 14445.516M
low_mc_sharpe_annualized 9.29702
low_mc_trade_return_per_trade_bp 25.55bp
sharpe_annualized 9.29702

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 36.905M
total_pnl_peak 39.166M
dynamic_notional_beta_pnl_final 6.087M
alpha_vs_dynamic_notional_beta_pnl_final 30.818M
avg_hold_notional_beta_pnl_final 7.524M
alpha_vs_avg_hold_notional_beta_pnl_final 29.380M
high_mc_dynamic_notional_beta_pnl_final 0.000M
low_mc_dynamic_notional_beta_pnl_final 6.087M
high_mc_avg_hold_notional_beta_pnl_final 0.000M
low_mc_avg_hold_notional_beta_pnl_final 7.524M
high_mc_alpha_vs_dynamic_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_dynamic_notional_beta_pnl_final 30.818M
high_mc_alpha_vs_avg_hold_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_avg_hold_notional_beta_pnl_final 29.380M
dynamic_alpha_mdd_pnl -1.872M
dynamic_alpha_sharpe_annualized 11.4225
avg_hold_alpha_mdd_pnl -2.285M
avg_hold_alpha_sharpe_annualized 10.5988
num_trades 6,278
total_traded_amount_sum 6.54772e+06
total_trade_notional 14445.516M
daily_trade_notional 352.330M
trading_day_count 41
total_fee 14.446M
time_avg_total_notional_position_usdt 67.546M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 67.546M
time_avg_net_position_usdt 67.546M
time_avg_abs_net_position_usdt 67.546M
peak_abs_net_position_usdt 1.02398e+08
roi_avg_notional_position_pct 54.64%
roi_peak_notional_position_pct 36.04%
mdd_pnl -8.786M
sharpe_annualized 9.29702
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 36.905M
low_mc_trade_notional 14445.516M
low_mc_num_trades 6,278
low_mc_sharpe_annualized 9.29702
low_mc_trade_return_per_trade_bp 25.55bp
model_zscore_pnl_final 1847.414M
hedge_zscore_pnl_final 197.455M
force_zscore_pnl_final 0.000M
funding_fee_pnl_final 0.000M
funding_event_count 0
model_win_rate_20m 56.91%
hedge_win_rate_20m 46.43%
force_win_rate_20m
model_win_rate_btc_adj_20m 56.91%
hedge_win_rate_btc_adj_20m 46.43%
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 3.69045e+07 1.44455e+10 6278 9.29702 25.5474
high 0 0 0
low 3.69045e+07 1.44455e+10 6278 9.29702 25.5474

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 4511 5.95156e+06 0.000577776 5.77776 0.533141 0.000252699 0.000436967 3.1553e-06 5.95156e+06 0.000577776 5.77776 0.533141
10 4511 1.12849e+07 0.00109554 10.9554 0.558413 0.00813402 -0.000515722 0.00247914 1.12849e+07 0.00109554 10.9554 0.558413
20 4509 1.53693e+07 0.00149278 14.9278 0.569084 0.00645528 9.34221e-05 0.00100895 1.53693e+07 0.00149278 14.9278 0.569084
30 4505 1.55669e+07 0.00151344 15.1344 0.56515 0.00441626 0.000552879 0.000406632 1.55669e+07 0.00151344 15.1344 0.56515
60 4498 1.77082e+07 0.00172377 17.2377 0.562695 0.00469766 0.000803606 0.00027656 1.77082e+07 0.00172377 17.2377 0.562695
120 4401 3.36027e+07 0.00334814 33.4814 0.574188 0.0249518 -0.00109941 0.00273421 3.36027e+07 0.00334814 33.4814 0.574188
240 4337 4.12919e+07 0.00417979 41.7979 0.55822 0.030474 -0.000953914 0.0023135 4.12919e+07 0.00417979 41.7979 0.55822

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 1767 -3.15396e+06 -0.000760962 -7.60962 0.417091 -0.00355262 -0.000580874 0.0011121 -3.15396e+06 -0.000760962 -7.60962 0.417091
10 1767 -2.31979e+06 -0.000559701 -5.59701 0.44652 -0.00576326 -0.000252235 0.00179343 -2.31979e+06 -0.000559701 -5.59701 0.44652
20 1764 -3.18906e+06 -0.00077059 -7.7059 0.464286 -0.0039651 -0.000602337 0.000322708 -3.18906e+06 -0.00077059 -7.7059 0.464286
30 1764 -4.07562e+06 -0.000984814 -9.84814 0.452948 -0.00707551 -0.000680388 0.000644393 -4.07562e+06 -0.000984814 -9.84814 0.452948
60 1760 -6.65502e+06 -0.00161202 -16.1202 0.473295 -0.0174765 -0.000832881 0.00194486 -6.65502e+06 -0.00161202 -16.1202 0.473295
120 1752 -4.8525e+06 -0.00118058 -11.8058 0.469178 -0.02019 -0.000369337 0.00187965 -4.8525e+06 -0.00118058 -11.8058 0.469178
240 1736 -6.63405e+06 -0.00162993 -16.2993 0.471198 -0.0254408 -0.000567769 0.00169153 -6.63405e+06 -0.00162993 -16.2993 0.471198

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 78 111414 0.00899371 89.9371
09:20 75 116503 0.00577847 57.7847
09:40 102 197860 -0.000816832 -8.16832
10:00 105 153713 0.0048573 48.573
10:20 114 146343 -0.000144263 -1.44263
10:40 133 184369 0.00233044 23.3044
11:00 199 299418 0.00016015 1.6015
11:20 154 188963 0.00331191 33.1191
11:40 121 165159 0.00275539 27.5539
12:00 138 196665 0.00431416 43.1416
12:20 162 192982 0.00515889 51.5889
12:40 195 183671 0.00275713 27.5713
13:00 218 249687 0.00324433 32.4433
13:20 454 331243 0.0156773 156.773
13:40 417 258424 0.0025011 25.011
14:00 246 146167 0.00329635 32.9635
14:20 141 97971 0.0100685 100.685
14:40 110 36424 0.00627519 62.7519
15:00 96 26948 0.00324232 32.4232
15:20 0 0

Z-Score-Quality Scatter + Regression

Model Buy/Sell Scatter + Regression