KOSPI Backtest Dashboard

run_id: 20260321T_userreq_toss_tabm_alpha_ce_parquet_20260321_tossenriched_target350_z2p2
generated_at_utc: 2026-03-21T13:57:54.806845+00:00

Top KPI

trade_return_per_trade_bp = (total_pnl_final / total_trade_notional) * 10000
metric value
total_pnl_final 43.792M
total_trade_notional 18669.249M
daily_trade_notional 455.348M
total_fee 18.669M
mdd_pnl -8.748M
alpha_vs_dynamic_notional_beta_pnl_final 34.385M
alpha_vs_avg_hold_notional_beta_pnl_final 34.468M
dynamic_alpha_mdd_pnl -1.606M
avg_hold_alpha_mdd_pnl -1.488M
dynamic_alpha_sharpe_annualized 12.9615
avg_hold_alpha_sharpe_annualized 12.7632
time_avg_total_notional_position_usdt 83.703M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 83.703M
trade_return_per_trade_bp 23.46bp
roi_avg_notional_position_pct 52.32%
roi_peak_notional_position_pct 41.42%
num_trades 8,517
high_mc_trade_notional 0.000M
high_mc_sharpe_annualized
high_mc_trade_return_per_trade_bp
low_mc_trade_notional 18669.249M
low_mc_sharpe_annualized 10.0745
low_mc_trade_return_per_trade_bp 23.46bp
sharpe_annualized 10.0745

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.2
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 43.792M
total_pnl_peak 44.511M
dynamic_notional_beta_pnl_final 9.407M
alpha_vs_dynamic_notional_beta_pnl_final 34.385M
avg_hold_notional_beta_pnl_final 9.324M
alpha_vs_avg_hold_notional_beta_pnl_final 34.468M
high_mc_dynamic_notional_beta_pnl_final 0.000M
low_mc_dynamic_notional_beta_pnl_final 9.407M
high_mc_avg_hold_notional_beta_pnl_final 0.000M
low_mc_avg_hold_notional_beta_pnl_final 9.324M
high_mc_alpha_vs_dynamic_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_dynamic_notional_beta_pnl_final 34.385M
high_mc_alpha_vs_avg_hold_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_avg_hold_notional_beta_pnl_final 34.468M
dynamic_alpha_mdd_pnl -1.606M
dynamic_alpha_sharpe_annualized 12.9615
avg_hold_alpha_mdd_pnl -1.488M
avg_hold_alpha_sharpe_annualized 12.7632
num_trades 8,517
total_traded_amount_sum 8.30583e+06
total_trade_notional 18669.249M
daily_trade_notional 455.348M
trading_day_count 41
total_fee 18.669M
time_avg_total_notional_position_usdt 83.703M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 83.703M
time_avg_net_position_usdt 83.703M
time_avg_abs_net_position_usdt 83.703M
peak_abs_net_position_usdt 1.05718e+08
roi_avg_notional_position_pct 52.32%
roi_peak_notional_position_pct 41.42%
mdd_pnl -8.748M
sharpe_annualized 10.0745
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 43.792M
low_mc_trade_notional 18669.249M
low_mc_num_trades 8,517
low_mc_sharpe_annualized 10.0745
low_mc_trade_return_per_trade_bp 23.46bp
model_zscore_pnl_final 2350.779M
hedge_zscore_pnl_final 189.530M
force_zscore_pnl_final 0.000M
funding_fee_pnl_final 0.000M
funding_event_count 0
model_win_rate_20m 55.72%
hedge_win_rate_20m 45.28%
force_win_rate_20m
model_win_rate_btc_adj_20m 55.72%
hedge_win_rate_btc_adj_20m 45.28%
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.37922e+07 1.86692e+10 8517 10.0745 23.4569
high 0 0 0
low 4.37922e+07 1.86692e+10 8517 10.0745 23.4569

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 6564 8.50201e+06 0.000595794 5.95794 0.521785 0.00298169 -2.48674e-05 0.000509868 8.50201e+06 0.000595794 5.95794 0.521785
10 6564 1.37315e+07 0.000962263 9.62263 0.545704 0.00794982 -0.000581532 0.00268957 1.37315e+07 0.000962263 9.62263 0.545704
20 6559 1.62705e+07 0.00114089 11.4089 0.55725 0.00620577 -0.000108046 0.00102526 1.62705e+07 0.00114089 11.4089 0.55725
30 6552 1.74801e+07 0.00122663 12.2663 0.559371 0.00245073 0.000623045 0.000126947 1.74801e+07 0.00122663 12.2663 0.559371
60 6525 2.00895e+07 0.00141446 14.1446 0.555862 0.00534084 0.000318817 0.000347223 2.00895e+07 0.00141446 14.1446 0.555862
120 6426 3.76446e+07 0.00269176 26.9176 0.565359 0.0260033 -0.00157501 0.00329755 3.76446e+07 0.00269176 26.9176 0.565359
240 6298 4.69726e+07 0.00343191 34.3191 0.550651 0.027434 -0.00121122 0.00194536 4.69726e+07 0.00343191 34.3191 0.550651

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 1953 -2.96526e+06 -0.000674044 -6.74044 0.403482 0.00360328 -0.000829462 0.00128529 -2.96526e+06 -0.000674044 -6.74044 0.403482
10 1953 -2.90941e+06 -0.000661348 -6.61348 0.432156 0.00319846 -0.000778493 0.00061897 -2.90941e+06 -0.000661348 -6.61348 0.432156
20 1948 -3.7283e+06 -0.000849568 -8.49568 0.452772 0.0137357 -0.00143247 0.00579027 -3.7283e+06 -0.000849568 -8.49568 0.452772
30 1947 -4.63815e+06 -0.0010575 -10.575 0.442732 0.0152257 -0.00167751 0.00464002 -4.63815e+06 -0.0010575 -10.575 0.442732
60 1936 -6.2531e+06 -0.00143371 -14.3371 0.470558 0.00258218 -0.00145846 5.08909e-05 -6.2531e+06 -0.00143371 -14.3371 0.470558
120 1925 -4.731e+06 -0.00109096 -10.9096 0.465455 0.00823023 -0.00145785 0.000335996 -4.731e+06 -0.00109096 -10.9096 0.465455
240 1905 -7.38148e+06 -0.00172112 -17.2112 0.462992 0.018521 -0.00258696 0.000803634 -7.38148e+06 -0.00172112 -17.2112 0.462992

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 137 200726 0.00287178 28.7178
09:20 135 171658 0.00240078 24.0078
09:40 136 250034 0.00037356 3.7356
10:00 155 250614 0.00550001 55.0001
10:20 186 202273 -0.000384306 -3.84306
10:40 191 239003 0.00272674 27.2674
11:00 309 378265 -0.00044501 -4.4501
11:20 225 264247 0.00153844 15.3844
11:40 203 255080 0.00331096 33.1096
12:00 212 252785 0.00342673 34.2673
12:20 255 233442 0.00448034 44.8034
12:40 313 277145 0.00268143 26.8143
13:00 308 236011 0.00297958 29.7958
13:20 513 389125 0.0153994 153.994
13:40 430 198154 0.00469811 46.9811
14:00 249 131051 0.00611064 61.1064
14:20 208 99609 0.00666442 66.6442
14:40 182 68532 0.00305785 30.5785
15:00 144 66014 0.00826439 82.6439
15:20 0 0

Z-Score-Quality Scatter + Regression

Model Buy/Sell Scatter + Regression