KOSPI Backtest Dashboard

run_id: 20260321T_userreq_toss_tabm_alpha_ce_parquet_20260321_tossenriched_target350_z2p0
generated_at_utc: 2026-03-21T13:57:54.787118+00:00

Top KPI

trade_return_per_trade_bp = (total_pnl_final / total_trade_notional) * 10000
metric value
total_pnl_final 45.147M
total_trade_notional 20609.864M
daily_trade_notional 502.680M
total_fee 20.610M
mdd_pnl -8.076M
alpha_vs_dynamic_notional_beta_pnl_final 34.198M
alpha_vs_avg_hold_notional_beta_pnl_final 34.907M
dynamic_alpha_mdd_pnl -1.468M
avg_hold_alpha_mdd_pnl -1.308M
dynamic_alpha_sharpe_annualized 12.8167
avg_hold_alpha_sharpe_annualized 13.0669
time_avg_total_notional_position_usdt 91.923M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 91.923M
trade_return_per_trade_bp 21.91bp
roi_avg_notional_position_pct 49.11%
roi_peak_notional_position_pct 42.83%
num_trades 10,010
high_mc_trade_notional 0.000M
high_mc_sharpe_annualized
high_mc_trade_return_per_trade_bp
low_mc_trade_notional 20609.864M
low_mc_sharpe_annualized 10.5551
low_mc_trade_return_per_trade_bp 21.91bp
sharpe_annualized 10.5551

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
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 45.147M
total_pnl_peak 45.412M
dynamic_notional_beta_pnl_final 10.949M
alpha_vs_dynamic_notional_beta_pnl_final 34.198M
avg_hold_notional_beta_pnl_final 10.240M
alpha_vs_avg_hold_notional_beta_pnl_final 34.907M
high_mc_dynamic_notional_beta_pnl_final 0.000M
low_mc_dynamic_notional_beta_pnl_final 10.949M
high_mc_avg_hold_notional_beta_pnl_final 0.000M
low_mc_avg_hold_notional_beta_pnl_final 10.240M
high_mc_alpha_vs_dynamic_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_dynamic_notional_beta_pnl_final 34.198M
high_mc_alpha_vs_avg_hold_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_avg_hold_notional_beta_pnl_final 34.907M
dynamic_alpha_mdd_pnl -1.468M
dynamic_alpha_sharpe_annualized 12.8167
avg_hold_alpha_mdd_pnl -1.308M
avg_hold_alpha_sharpe_annualized 13.0669
num_trades 10,010
total_traded_amount_sum 9.11913e+06
total_trade_notional 20609.864M
daily_trade_notional 502.680M
trading_day_count 41
total_fee 20.610M
time_avg_total_notional_position_usdt 91.923M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 91.923M
time_avg_net_position_usdt 91.923M
time_avg_abs_net_position_usdt 91.923M
peak_abs_net_position_usdt 1.0541e+08
roi_avg_notional_position_pct 49.11%
roi_peak_notional_position_pct 42.83%
mdd_pnl -8.076M
sharpe_annualized 10.5551
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 45.147M
low_mc_trade_notional 20609.864M
low_mc_num_trades 10,010
low_mc_sharpe_annualized 10.5551
low_mc_trade_return_per_trade_bp 21.91bp
model_zscore_pnl_final 2560.651M
hedge_zscore_pnl_final 168.527M
force_zscore_pnl_final 0.000M
funding_fee_pnl_final 0.000M
funding_event_count 0
model_win_rate_20m 55.04%
hedge_win_rate_20m 44.71%
force_win_rate_20m
model_win_rate_btc_adj_20m 55.04%
hedge_win_rate_btc_adj_20m 44.71%
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.51471e+07 2.06099e+10 10010 10.5551 21.9056
high 0 0 0
low 4.51471e+07 2.06099e+10 10010 10.5551 21.9056

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 8047 7.94431e+06 0.000484996 4.84996 0.52007 0.00357715 -0.000179188 0.000836735 7.94431e+06 0.000484996 4.84996 0.52007
10 8047 1.22863e+07 0.00075007 7.5007 0.539704 0.00884287 -0.000790769 0.00361044 1.22863e+07 0.00075007 7.5007 0.539704
20 8041 1.69502e+07 0.00103559 10.3559 0.550429 0.0081534 -0.00041985 0.00204547 1.69502e+07 0.00103559 10.3559 0.550429
30 8026 1.70361e+07 0.00104254 10.4254 0.55071 0.00392912 0.000248194 0.000356479 1.70361e+07 0.00104254 10.4254 0.55071
60 7992 2.07262e+07 0.00127273 12.7273 0.552427 0.00385564 0.000471828 0.000184804 2.07262e+07 0.00127273 12.7273 0.552427
120 7894 3.93035e+07 0.00243942 24.3942 0.557765 0.0262721 -0.00149873 0.00308964 3.93035e+07 0.00243942 24.3942 0.557765
240 7710 4.31012e+07 0.00274434 27.4434 0.544877 0.0261789 -0.00119089 0.0016581 4.31012e+07 0.00274434 27.4434 0.544877

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 1963 -3.20539e+06 -0.000757825 -7.57825 0.391747 0.00159375 -0.000744986 0.00028742 -3.20539e+06 -0.000757825 -7.57825 0.391747
10 1963 -2.99426e+06 -0.00070791 -7.0791 0.430973 0.00481223 -0.000824568 0.00148869 -2.99426e+06 -0.00070791 -7.0791 0.430973
20 1955 -3.17361e+06 -0.000753835 -7.53835 0.447059 0.0165956 -0.00132788 0.00862115 -3.17361e+06 -0.000753835 -7.53835 0.447059
30 1953 -3.84978e+06 -0.000915538 -9.15538 0.451613 0.0138056 -0.0012842 0.00434846 -3.84978e+06 -0.000915538 -9.15538 0.451613
60 1944 -5.47423e+06 -0.00130824 -13.0824 0.487654 0.00519504 -0.00125325 0.000291064 -5.47423e+06 -0.00130824 -13.0824 0.487654
120 1930 -5.40211e+06 -0.0013012 -13.012 0.468394 0.00104795 -0.0011022 5.45305e-06 -5.40211e+06 -0.0013012 -13.012 0.468394
240 1906 -5.27808e+06 -0.00128841 -12.8841 0.467996 -0.000650986 -0.00130411 1.05092e-06 -5.27808e+06 -0.00128841 -12.8841 0.467996

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 190 234391 0.00355462 35.5462
09:20 199 248032 -0.000476697 -4.76697
09:40 176 266097 0.00201211 20.1211
10:00 208 242307 0.00211813 21.1813
10:20 234 268378 0.00210591 21.0591
10:40 238 304825 0.00404401 40.4401
11:00 384 447529 0.000721074 7.21074
11:20 279 359122 0.00119837 11.9837
11:40 278 327960 0.00280331 28.0331
12:00 286 255704 0.0039092 39.092
12:20 331 237521 0.00325441 32.5441
12:40 348 248304 0.00372697 37.2697
13:00 332 270609 0.00333211 33.3211
13:20 497 346135 0.0170601 170.601
13:40 451 148545 0.00668802 66.8802
14:00 301 108707 0.00586537 58.6537
14:20 238 97155 0.00477304 47.7304
14:40 228 58225 0.00380305 38.0305
15:00 181 98926 0.00765607 76.5607
15:20 0 0

Z-Score-Quality Scatter + Regression

Model Buy/Sell Scatter + Regression