KOSPI Backtest Dashboard

run_id: 20260321T011649Z_userreq_toss_tabm_enhanced_129feat_20260320_target350_z-2p722
generated_at_utc: 2026-03-21T01:17:35.415393+00:00

Top KPI

trade_return_per_trade_bp = (total_pnl_final / total_trade_notional) * 10000
metric value
total_pnl_final 35.686M
total_trade_notional 13298.924M
daily_trade_notional 324.364M
total_fee 13.299M
mdd_pnl -16.451M
alpha_vs_dynamic_notional_beta_pnl_final 24.209M
alpha_vs_avg_hold_notional_beta_pnl_final 25.005M
dynamic_alpha_mdd_pnl -5.969M
avg_hold_alpha_mdd_pnl -5.267M
dynamic_alpha_sharpe_annualized 6.7465
avg_hold_alpha_sharpe_annualized 6.91301
time_avg_total_notional_position_usdt 95.879M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 95.879M
trade_return_per_trade_bp 26.83bp
roi_avg_notional_position_pct 37.22%
roi_peak_notional_position_pct 34.72%
num_trades 7,225
high_mc_trade_notional 0.000M
high_mc_sharpe_annualized
high_mc_trade_return_per_trade_bp
low_mc_trade_notional 13298.924M
low_mc_sharpe_annualized 7.27006
low_mc_trade_return_per_trade_bp 26.83bp
sharpe_annualized 7.27006

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.722
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 35.686M
total_pnl_peak 38.018M
dynamic_notional_beta_pnl_final 11.477M
alpha_vs_dynamic_notional_beta_pnl_final 24.209M
avg_hold_notional_beta_pnl_final 10.680M
alpha_vs_avg_hold_notional_beta_pnl_final 25.005M
high_mc_dynamic_notional_beta_pnl_final 0.000M
low_mc_dynamic_notional_beta_pnl_final 11.477M
high_mc_avg_hold_notional_beta_pnl_final 0.000M
low_mc_avg_hold_notional_beta_pnl_final 10.680M
high_mc_alpha_vs_dynamic_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_dynamic_notional_beta_pnl_final 24.209M
high_mc_alpha_vs_avg_hold_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_avg_hold_notional_beta_pnl_final 25.005M
dynamic_alpha_mdd_pnl -5.969M
dynamic_alpha_sharpe_annualized 6.7465
avg_hold_alpha_mdd_pnl -5.267M
avg_hold_alpha_sharpe_annualized 6.91301
num_trades 7,225
total_traded_amount_sum 1.74342e+07
total_trade_notional 13298.924M
daily_trade_notional 324.364M
trading_day_count 41
total_fee 13.299M
time_avg_total_notional_position_usdt 95.879M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 95.879M
time_avg_net_position_usdt 95.879M
time_avg_abs_net_position_usdt 95.879M
peak_abs_net_position_usdt 1.02788e+08
roi_avg_notional_position_pct 37.22%
roi_peak_notional_position_pct 34.72%
mdd_pnl -16.451M
sharpe_annualized 7.27006
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 35.686M
low_mc_trade_notional 13298.924M
low_mc_num_trades 7,225
low_mc_sharpe_annualized 7.27006
low_mc_trade_return_per_trade_bp 26.83bp
model_zscore_pnl_final 5577.766M
hedge_zscore_pnl_final 438.265M
force_zscore_pnl_final 0.000M
funding_fee_pnl_final 0.000M
funding_event_count 0
model_win_rate_20m 56.46%
hedge_win_rate_20m 45.77%
force_win_rate_20m
model_win_rate_btc_adj_20m 56.46%
hedge_win_rate_btc_adj_20m 45.77%
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.56857e+07 1.32989e+10 7225 7.27006 26.8335
high 0 0 0
low 3.56857e+07 1.32989e+10 7225 7.27006 26.8335

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 5223 1.21282e+07 0.00134012 13.4012 0.527283 0.00292893 -0.000753811 0.0048095 1.21282e+07 0.00134012 13.4012 0.527283
10 5223 1.451e+07 0.0016033 16.033 0.551982 0.00477121 -0.00160851 0.00832249 1.451e+07 0.0016033 16.033 0.551982
20 5221 1.61219e+07 0.00178233 17.8233 0.564643 0.0053853 -0.00196961 0.00648686 1.61219e+07 0.00178233 17.8233 0.564643
30 5216 1.86504e+07 0.00206401 20.6401 0.568827 0.00582978 -0.00173695 0.00568792 1.86504e+07 0.00206401 20.6401 0.568827
60 5212 2.275e+07 0.0025197 25.197 0.56485 0.00936348 -0.00346328 0.0091708 2.275e+07 0.0025197 25.197 0.56485
120 5198 2.86716e+07 0.00318581 31.8581 0.562716 0.0132309 -0.00515478 0.0098577 2.86716e+07 0.00318581 31.8581 0.562716
240 5167 3.15826e+07 0.00353896 35.3896 0.534546 0.00920486 -0.00216474 0.00281871 3.15826e+07 0.00353896 35.3896 0.534546

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 2002 -4.48707e+06 -0.00105607 -10.5607 0.407093 -0.000274408 -0.000978064 2.08407e-05 -4.48707e+06 -0.00105607 -10.5607 0.407093
10 2002 -3.75191e+06 -0.000883044 -8.83044 0.444056 -0.00130558 -0.000718528 0.000394493 -3.75191e+06 -0.000883044 -8.83044 0.444056
20 1999 -4.49238e+06 -0.00105918 -10.5918 0.457729 -0.00274925 -0.000709903 0.00110986 -4.49238e+06 -0.00105918 -10.5918 0.457729
30 1995 -3.29723e+06 -0.000779261 -7.79261 0.477694 -0.00253452 -0.000399019 0.000622081 -3.29723e+06 -0.000779261 -7.79261 0.477694
60 1989 -3.58732e+06 -0.000850884 -8.50884 0.499246 -0.000397041 -0.000594334 1.14198e-05 -3.58732e+06 -0.000850884 -8.50884 0.499246
120 1980 -814319 -0.000194198 -1.94198 0.525758 0.0160049 -0.00177167 0.00928976 -814319 -0.000194198 -1.94198 0.525758
240 1970 -2.24076e+06 -0.000537893 -5.37893 0.537563 0.00818665 -0.00156091 0.00116689 -2.24076e+06 -0.000537893 -5.37893 0.537563

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 554 432797 0.00961799 96.1799
09:20 273 162401 0.0041506 41.506
09:40 175 168464 -0.00238903 -23.8903
10:00 136 151955 0.00641821 64.1821
10:20 162 183962 0.000974745 9.74745
10:40 208 296120 0.00312829 31.2829
11:00 397 894480 0.00272419 27.2419
11:20 303 811118 0.00305451 30.5451
11:40 226 665201 0.00482572 48.2572
12:00 190 572711 0.00669581 66.9581
12:20 199 753263 0.00376374 37.6374
12:40 249 793117 0.00238323 23.8323
13:00 251 746955 0.00179631 17.9631
13:20 196 474500 0.00604556 60.4556
13:40 112 264627 0.00757671 75.7671
14:00 112 211333 0.0024683 24.683
14:20 108 257139 -0.00158152 -15.8152
14:40 121 469955 -0.000327834 -3.27834
15:00 175 435083 0.00549173 54.9173
15:20 0 0

Z-Score-Quality Scatter + Regression

Model Buy/Sell Scatter + Regression