KOSPI Backtest Dashboard

run_id: 20260321T011548Z_userreq_toss_tabm_enhanced_129feat_20260320_target350_z3
generated_at_utc: 2026-03-21T01:16:06.793207+00:00

Top KPI

trade_return_per_trade_bp = (total_pnl_final / total_trade_notional) * 10000
metric value
total_pnl_final 38.577M
total_trade_notional 13317.088M
daily_trade_notional 324.807M
total_fee 13.317M
mdd_pnl -15.984M
alpha_vs_dynamic_notional_beta_pnl_final 27.851M
alpha_vs_avg_hold_notional_beta_pnl_final 28.345M
dynamic_alpha_mdd_pnl -4.178M
avg_hold_alpha_mdd_pnl -3.951M
dynamic_alpha_sharpe_annualized 7.64803
avg_hold_alpha_sharpe_annualized 7.74083
time_avg_total_notional_position_usdt 91.849M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 91.849M
trade_return_per_trade_bp 28.97bp
roi_avg_notional_position_pct 42.00%
roi_peak_notional_position_pct 37.59%
num_trades 6,682
high_mc_trade_notional 0.000M
high_mc_sharpe_annualized
high_mc_trade_return_per_trade_bp
low_mc_trade_notional 13317.088M
low_mc_sharpe_annualized 7.94132
low_mc_trade_return_per_trade_bp 28.97bp
sharpe_annualized 7.94132

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 38.577M
total_pnl_peak 40.137M
dynamic_notional_beta_pnl_final 10.726M
alpha_vs_dynamic_notional_beta_pnl_final 27.851M
avg_hold_notional_beta_pnl_final 10.231M
alpha_vs_avg_hold_notional_beta_pnl_final 28.345M
high_mc_dynamic_notional_beta_pnl_final 0.000M
low_mc_dynamic_notional_beta_pnl_final 10.726M
high_mc_avg_hold_notional_beta_pnl_final 0.000M
low_mc_avg_hold_notional_beta_pnl_final 10.231M
high_mc_alpha_vs_dynamic_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_dynamic_notional_beta_pnl_final 27.851M
high_mc_alpha_vs_avg_hold_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_avg_hold_notional_beta_pnl_final 28.345M
dynamic_alpha_mdd_pnl -4.178M
dynamic_alpha_sharpe_annualized 7.64803
avg_hold_alpha_mdd_pnl -3.951M
avg_hold_alpha_sharpe_annualized 7.74083
num_trades 6,682
total_traded_amount_sum 1.75254e+07
total_trade_notional 13317.088M
daily_trade_notional 324.807M
trading_day_count 41
total_fee 13.317M
time_avg_total_notional_position_usdt 91.849M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 91.849M
time_avg_net_position_usdt 91.849M
time_avg_abs_net_position_usdt 91.849M
peak_abs_net_position_usdt 1.02637e+08
roi_avg_notional_position_pct 42.00%
roi_peak_notional_position_pct 37.59%
mdd_pnl -15.984M
sharpe_annualized 7.94132
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 38.577M
low_mc_trade_notional 13317.088M
low_mc_num_trades 6,682
low_mc_sharpe_annualized 7.94132
low_mc_trade_return_per_trade_bp 28.97bp
model_zscore_pnl_final 5626.709M
hedge_zscore_pnl_final 527.516M
force_zscore_pnl_final 0.000M
funding_fee_pnl_final 0.000M
funding_event_count 0
model_win_rate_20m 56.40%
hedge_win_rate_20m 45.11%
force_win_rate_20m
model_win_rate_btc_adj_20m 56.40%
hedge_win_rate_btc_adj_20m 45.11%
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.85767e+07 1.33171e+10 6682 7.94132 28.9678
high 0 0 0
low 3.85767e+07 1.33171e+10 6682 7.94132 28.9678

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 4567 1.17516e+07 0.00136847 13.6847 0.531421 0.0051173 -0.00225421 0.0133965 1.17516e+07 0.00136847 13.6847 0.531421
10 4567 1.69043e+07 0.0019685 19.685 0.557478 0.00762185 -0.00342707 0.0176314 1.69043e+07 0.0019685 19.685 0.557478
20 4567 1.97557e+07 0.00230054 23.0054 0.564046 0.00842125 -0.00375733 0.0133959 1.97557e+07 0.00230054 23.0054 0.564046
30 4563 2.2541e+07 0.002627 26.27 0.579224 0.00845389 -0.00327059 0.0102655 2.2541e+07 0.002627 26.27 0.579224
60 4559 2.55217e+07 0.00297783 29.7783 0.57381 0.0128149 -0.00563147 0.01604 2.55217e+07 0.00297783 29.7783 0.57381
120 4549 3.3315e+07 0.00389727 38.9727 0.565179 0.0154983 -0.00657986 0.0122865 3.3315e+07 0.00389727 38.9727 0.565179
240 4523 3.69569e+07 0.0043554 43.554 0.538359 0.0101494 -0.00279713 0.00327185 3.69569e+07 0.0043554 43.554 0.538359

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 2115 -5.49932e+06 -0.00116273 -11.6273 0.39669 -0.00164313 -0.000840126 0.000798991 -5.49932e+06 -0.00116273 -11.6273 0.39669
10 2115 -5.83073e+06 -0.0012328 -12.328 0.424586 -0.00320764 -0.000724128 0.00219222 -5.83073e+06 -0.0012328 -12.328 0.424586
20 2115 -5.68238e+06 -0.00120143 -12.0143 0.451064 -0.00430893 -0.000527631 0.00238326 -5.68238e+06 -0.00120143 -12.0143 0.451064
30 2113 -5.94872e+06 -0.00125911 -12.5911 0.466635 -0.00367527 -0.00063812 0.000900955 -5.94872e+06 -0.00125911 -12.5911 0.466635
60 2107 -4.70394e+06 -0.000998887 -9.98887 0.490745 -0.00314036 -0.000495742 0.000575619 -4.70394e+06 -0.000998887 -9.98887 0.490745
120 2101 -681854 -0.000145262 -1.45262 0.530224 0.00147127 8.58349e-06 7.06744e-05 -681854 -0.000145262 -1.45262 0.530224
240 2093 -5.10435e+06 -0.0010928 -10.928 0.519828 -0.000893337 -0.000706192 1.32803e-05 -5.10435e+06 -0.0010928 -10.928 0.519828

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 601 519356 0.00772131 77.2131
09:20 227 163762 0.00542654 54.2654
09:40 152 136433 -0.00305539 -30.5539
10:00 137 144525 0.00556476 55.6476
10:20 139 166967 0.000106243 1.06243
10:40 155 279088 0.00441871 44.1871
11:00 316 697738 0.0030332 30.332
11:20 255 793325 0.00304693 30.4693
11:40 196 794040 0.00534336 53.4336
12:00 161 651922 0.00633418 63.3418
12:20 185 858525 0.0033855 33.855
12:40 215 849607 0.00293062 29.3062
13:00 260 841352 0.00174791 17.4791
13:20 191 425510 0.00690133 69.0133
13:40 106 280745 0.00416266 41.6266
14:00 87 138988 0.00261946 26.1946
14:20 101 237299 0.00693225 69.3225
14:40 101 410120 0.00686018 68.6018
15:00 151 402038 0.0105231 105.231
15:20 0 0

Z-Score-Quality Scatter + Regression

Model Buy/Sell Scatter + Regression