KOSPI Backtest Dashboard

run_id: 20260321T_userreq_toss_tabm_alpha_ce_parquet_20260321_tossenriched_target350_z3p2
generated_at_utc: 2026-03-21T13:55:32.682511+00:00

Top KPI

trade_return_per_trade_bp = (total_pnl_final / total_trade_notional) * 10000
metric value
total_pnl_final 29.260M
total_trade_notional 6278.364M
daily_trade_notional 153.131M
total_fee 6.278M
mdd_pnl -2.534M
alpha_vs_dynamic_notional_beta_pnl_final 24.948M
alpha_vs_avg_hold_notional_beta_pnl_final 25.958M
dynamic_alpha_mdd_pnl -2.048M
avg_hold_alpha_mdd_pnl -1.986M
dynamic_alpha_sharpe_annualized 10.7627
avg_hold_alpha_sharpe_annualized 10.6126
time_avg_total_notional_position_usdt 29.642M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 29.642M
trade_return_per_trade_bp 46.60bp
roi_avg_notional_position_pct 98.71%
roi_peak_notional_position_pct 28.38%
num_trades 2,609
high_mc_trade_notional 0.000M
high_mc_sharpe_annualized
high_mc_trade_return_per_trade_bp
low_mc_trade_notional 6278.364M
low_mc_sharpe_annualized 10.757
low_mc_trade_return_per_trade_bp 46.60bp
sharpe_annualized 10.757

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.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 29.260M
total_pnl_peak 29.331M
dynamic_notional_beta_pnl_final 4.312M
alpha_vs_dynamic_notional_beta_pnl_final 24.948M
avg_hold_notional_beta_pnl_final 3.302M
alpha_vs_avg_hold_notional_beta_pnl_final 25.958M
high_mc_dynamic_notional_beta_pnl_final 0.000M
low_mc_dynamic_notional_beta_pnl_final 4.312M
high_mc_avg_hold_notional_beta_pnl_final 0.000M
low_mc_avg_hold_notional_beta_pnl_final 3.302M
high_mc_alpha_vs_dynamic_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_dynamic_notional_beta_pnl_final 24.948M
high_mc_alpha_vs_avg_hold_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_avg_hold_notional_beta_pnl_final 25.958M
dynamic_alpha_mdd_pnl -2.048M
dynamic_alpha_sharpe_annualized 10.7627
avg_hold_alpha_mdd_pnl -1.986M
avg_hold_alpha_sharpe_annualized 10.6126
num_trades 2,609
total_traded_amount_sum 3.08898e+06
total_trade_notional 6278.364M
daily_trade_notional 153.131M
trading_day_count 41
total_fee 6.278M
time_avg_total_notional_position_usdt 29.642M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 29.642M
time_avg_net_position_usdt 29.642M
time_avg_abs_net_position_usdt 29.642M
peak_abs_net_position_usdt 1.03087e+08
roi_avg_notional_position_pct 98.71%
roi_peak_notional_position_pct 28.38%
mdd_pnl -2.534M
sharpe_annualized 10.757
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 29.260M
low_mc_trade_notional 6278.364M
low_mc_num_trades 2,609
low_mc_sharpe_annualized 10.757
low_mc_trade_return_per_trade_bp 46.60bp
model_zscore_pnl_final 937.603M
hedge_zscore_pnl_final 118.441M
force_zscore_pnl_final 0.000M
funding_fee_pnl_final 0.000M
funding_event_count 0
model_win_rate_20m 57.31%
hedge_win_rate_20m 46.41%
force_win_rate_20m
model_win_rate_btc_adj_20m 57.31%
hedge_win_rate_btc_adj_20m 46.41%
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.92601e+07 6.27836e+09 2609 10.757 46.6047
high 0 0 0
low 2.92601e+07 6.27836e+09 2609 10.757 46.6047

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 1731 4.92467e+06 0.00118634 11.8634 0.576545 0.0118559 -0.00158621 0.00607139 4.92467e+06 0.00118634 11.8634 0.576545
10 1731 8.60043e+06 0.00207182 20.7182 0.586944 0.0211692 -0.002935 0.0134297 8.60043e+06 0.00207182 20.7182 0.586944
20 1731 8.71377e+06 0.00209912 20.9912 0.573079 0.0237992 -0.00351262 0.0115607 8.71377e+06 0.00209912 20.9912 0.573079
30 1730 9.61082e+06 0.00231662 23.1662 0.572832 0.0237358 -0.00322963 0.00937673 9.61082e+06 0.00231662 23.1662 0.572832
60 1728 1.40602e+07 0.00339322 33.9322 0.578125 0.0351554 -0.00473444 0.0115143 1.40602e+07 0.00339322 33.9322 0.578125
120 1706 2.57085e+07 0.00628668 62.8668 0.596717 0.0316236 -0.000846311 0.00327559 2.57085e+07 0.00628668 62.8668 0.596717
240 1684 3.57118e+07 0.00884972 88.4972 0.581948 0.0489911 -0.00220637 0.00507043 3.57118e+07 0.00884972 88.4972 0.581948

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 878 -1.18044e+06 -0.000554921 -5.54921 0.424829 0.00849343 -0.00101608 0.00595129 -1.18044e+06 -0.000554921 -5.54921 0.424829
10 878 -1.18385e+06 -0.000556526 -5.56526 0.44533 0.00293819 -0.000702753 0.000451189 -1.18385e+06 -0.000556526 -5.56526 0.44533
20 877 -992643 -0.000467204 -4.67204 0.464082 0.00311568 -0.000632559 0.00017117 -992643 -0.000467204 -4.67204 0.464082
30 874 -1.82691e+06 -0.000862948 -8.62948 0.454233 0.00423461 -0.00106308 0.000128376 -1.82691e+06 -0.000862948 -8.62948 0.454233
60 871 -4.50102e+06 -0.00213309 -21.3309 0.458094 -0.0218586 -0.00085583 0.00249144 -4.50102e+06 -0.00213309 -21.3309 0.458094
120 868 -5.61894e+06 -0.00267251 -26.7251 0.458525 -0.038613 -0.000386923 0.005172 -5.61894e+06 -0.00267251 -26.7251 0.458525
240 867 -6.06443e+06 -0.00288783 -28.8783 0.463668 -0.0551267 0.000297498 0.00678336 -6.06443e+06 -0.00288783 -28.8783 0.463668

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 18 20549 0.00536217 53.6217
09:20 36 49113 0.0108078 108.078
09:40 35 62847 -1.23919e-05 -0.123919
10:00 41 73332 0.00635028 63.5028
10:20 46 96896 0.000204117 2.04117
10:40 50 83929 0.00505153 50.5153
11:00 90 184233 0.00191425 19.1425
11:20 72 116537 0.00479395 47.9395
11:40 58 86192 0.00278994 27.8994
12:00 55 84637 0.00595878 59.5878
12:20 52 77511 0.00460365 46.0365
12:40 67 93186 0.00455611 45.5611
13:00 92 95075 0.00644927 64.4927
13:20 210 184773 0.0302118 302.118
13:40 208 117212 0.00749364 74.9364
14:00 105 45692 -0.00226791 -22.6791
14:20 50 39831 0.00988065 98.8065
14:40 20 26849 0.0214889 214.889
15:00 24 6881 0.00584204 58.4204
15:20 0 0

Z-Score-Quality Scatter + Regression

Model Buy/Sell Scatter + Regression