KOSPI Backtest Dashboard

run_id: 20260321T_userreq_toss_tabm_alpha_ce_parquet_20260321_tossenriched_target350_z3p0
generated_at_utc: 2026-03-21T13:55:32.495803+00:00

Top KPI

trade_return_per_trade_bp = (total_pnl_final / total_trade_notional) * 10000
metric value
total_pnl_final 27.112M
total_trade_notional 7738.174M
daily_trade_notional 188.736M
total_fee 7.738M
mdd_pnl -3.892M
alpha_vs_dynamic_notional_beta_pnl_final 23.475M
alpha_vs_avg_hold_notional_beta_pnl_final 23.008M
dynamic_alpha_mdd_pnl -1.916M
avg_hold_alpha_mdd_pnl -1.894M
dynamic_alpha_sharpe_annualized 10.0461
avg_hold_alpha_sharpe_annualized 9.28578
time_avg_total_notional_position_usdt 36.840M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 36.840M
trade_return_per_trade_bp 35.04bp
roi_avg_notional_position_pct 73.59%
roi_peak_notional_position_pct 26.51%
num_trades 3,240
high_mc_trade_notional 0.000M
high_mc_sharpe_annualized
high_mc_trade_return_per_trade_bp
low_mc_trade_notional 7738.174M
low_mc_sharpe_annualized 9.33869
low_mc_trade_return_per_trade_bp 35.04bp
sharpe_annualized 9.33869

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 27.112M
total_pnl_peak 27.346M
dynamic_notional_beta_pnl_final 3.637M
alpha_vs_dynamic_notional_beta_pnl_final 23.475M
avg_hold_notional_beta_pnl_final 4.104M
alpha_vs_avg_hold_notional_beta_pnl_final 23.008M
high_mc_dynamic_notional_beta_pnl_final 0.000M
low_mc_dynamic_notional_beta_pnl_final 3.637M
high_mc_avg_hold_notional_beta_pnl_final 0.000M
low_mc_avg_hold_notional_beta_pnl_final 4.104M
high_mc_alpha_vs_dynamic_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_dynamic_notional_beta_pnl_final 23.475M
high_mc_alpha_vs_avg_hold_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_avg_hold_notional_beta_pnl_final 23.008M
dynamic_alpha_mdd_pnl -1.916M
dynamic_alpha_sharpe_annualized 10.0461
avg_hold_alpha_mdd_pnl -1.894M
avg_hold_alpha_sharpe_annualized 9.28578
num_trades 3,240
total_traded_amount_sum 3.70082e+06
total_trade_notional 7738.174M
daily_trade_notional 188.736M
trading_day_count 41
total_fee 7.738M
time_avg_total_notional_position_usdt 36.840M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 36.840M
time_avg_net_position_usdt 36.840M
time_avg_abs_net_position_usdt 36.840M
peak_abs_net_position_usdt 1.02261e+08
roi_avg_notional_position_pct 73.59%
roi_peak_notional_position_pct 26.51%
mdd_pnl -3.892M
sharpe_annualized 9.33869
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 27.112M
low_mc_trade_notional 7738.174M
low_mc_num_trades 3,240
low_mc_sharpe_annualized 9.33869
low_mc_trade_return_per_trade_bp 35.04bp
model_zscore_pnl_final 1102.992M
hedge_zscore_pnl_final 134.946M
force_zscore_pnl_final 0.000M
funding_fee_pnl_final 0.000M
funding_event_count 0
model_win_rate_20m 56.93%
hedge_win_rate_20m 46.58%
force_win_rate_20m
model_win_rate_btc_adj_20m 56.93%
hedge_win_rate_btc_adj_20m 46.58%
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.7112e+07 7.73817e+09 3240 9.33869 35.0366
high 0 0 0
low 2.7112e+07 7.73817e+09 3240 9.33869 35.0366

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 2185 5.25688e+06 0.00100937 10.0937 0.55881 0.0110226 -0.00143548 0.00534271 5.25688e+06 0.00100937 10.0937 0.55881
10 2185 8.93431e+06 0.00171547 17.1547 0.570252 0.0188606 -0.00248317 0.0106236 8.93431e+06 0.00171547 17.1547 0.570252
20 2185 8.90021e+06 0.00170893 17.0893 0.569336 0.017629 -0.00221289 0.00687107 8.90021e+06 0.00170893 17.0893 0.569336
30 2183 8.52857e+06 0.00163916 16.3916 0.568484 0.0148759 -0.001676 0.00403791 8.52857e+06 0.00163916 16.3916 0.568484
60 2180 1.32401e+07 0.00254839 25.4839 0.576147 0.0241616 -0.00272557 0.00613336 1.32401e+07 0.00254839 25.4839 0.576147
120 2148 2.35587e+07 0.00460443 46.0443 0.587989 0.0222114 -5.09873e-05 0.0017667 2.35587e+07 0.00460443 46.0443 0.587989
240 2121 3.07975e+07 0.00609941 60.9941 0.570957 0.0353299 -0.00128653 0.00279812 3.07975e+07 0.00609941 60.9941 0.570957

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 1055 -1.28382e+06 -0.000507416 -5.07416 0.433175 0.00464439 -0.000771163 0.00212968 -1.28382e+06 -0.000507416 -5.07416 0.433175
10 1055 -1.19563e+06 -0.000472563 -4.72563 0.441706 0.0043276 -0.000688447 0.000910246 -1.19563e+06 -0.000472563 -4.72563 0.441706
20 1054 -1.49398e+06 -0.000591084 -5.91084 0.465844 0.00706484 -0.000945917 0.000891355 -1.49398e+06 -0.000591084 -5.91084 0.465844
30 1051 -2.39133e+06 -0.000948953 -9.48953 0.454805 -0.0108776 -0.00030154 0.00128823 -2.39133e+06 -0.000948953 -9.48953 0.454805
60 1050 -3.34628e+06 -0.00132921 -13.2921 0.47619 -0.00722665 -0.000949677 0.000379375 -3.34628e+06 -0.00132921 -13.2921 0.47619
120 1047 -3.41847e+06 -0.00136202 -13.6202 0.490926 -0.00996218 -0.000865621 0.000448186 -3.41847e+06 -0.00136202 -13.6202 0.490926
240 1044 -5.21172e+06 -0.00208271 -20.8271 0.485632 -0.0207407 -0.000992369 0.00109598 -5.21172e+06 -0.00208271 -20.8271 0.485632

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 28 32814 0.00385221 38.5221
09:20 42 63839 0.00828904 82.8904
09:40 41 89965 -0.00210037 -21.0037
10:00 52 83146 0.00758089 75.8089
10:20 61 100997 -0.000604603 -6.04603
10:40 65 106979 0.0027163 27.163
11:00 115 216498 0.00232687 23.2687
11:20 89 118679 0.0039825 39.825
11:40 77 108083 0.00347524 34.7524
12:00 66 111629 0.00438645 43.8645
12:20 63 90983 0.00472933 47.2933
12:40 88 95072 0.00264683 26.4683
13:00 118 122593 0.00608213 60.8213
13:20 253 211734 0.0247998 247.998
13:40 255 138999 0.00460797 46.0797
14:00 125 92431 -0.00104561 -10.4561
14:20 56 31170 0.00777101 77.7101
14:40 29 28776 0.0147839 147.839
15:00 31 8894 0.000480503 4.80503
15:20 0 0

Z-Score-Quality Scatter + Regression

Model Buy/Sell Scatter + Regression