KOSPI Backtest Dashboard

run_id: 20260321T111150Z_userreq_toss_tabm_enh129_ex200_20260321_target350_z2p4
generated_at_utc: 2026-03-21T11:12:44.514879+00:00

Top KPI

trade_return_per_trade_bp = (total_pnl_final / total_trade_notional) * 10000
metric value
total_pnl_final 41.852M
total_trade_notional 20054.723M
daily_trade_notional 489.140M
total_fee 20.055M
mdd_pnl -12.062M
alpha_vs_dynamic_notional_beta_pnl_final 33.734M
alpha_vs_avg_hold_notional_beta_pnl_final 34.333M
dynamic_alpha_mdd_pnl -1.960M
avg_hold_alpha_mdd_pnl -1.957M
dynamic_alpha_sharpe_annualized 13.8163
avg_hold_alpha_sharpe_annualized 14.0772
time_avg_total_notional_position_usdt 96.471M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 96.471M
trade_return_per_trade_bp 20.87bp
roi_avg_notional_position_pct 43.38%
roi_peak_notional_position_pct 39.61%
num_trades 9,995
high_mc_trade_notional 0.000M
high_mc_sharpe_annualized
high_mc_trade_return_per_trade_bp
low_mc_trade_notional 20054.723M
low_mc_sharpe_annualized 10.8622
low_mc_trade_return_per_trade_bp 20.87bp
sharpe_annualized 10.8622

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.4
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 41.852M
total_pnl_peak 44.358M
dynamic_notional_beta_pnl_final 8.118M
alpha_vs_dynamic_notional_beta_pnl_final 33.734M
avg_hold_notional_beta_pnl_final 7.519M
alpha_vs_avg_hold_notional_beta_pnl_final 34.333M
high_mc_dynamic_notional_beta_pnl_final 0.000M
low_mc_dynamic_notional_beta_pnl_final 8.118M
high_mc_avg_hold_notional_beta_pnl_final 0.000M
low_mc_avg_hold_notional_beta_pnl_final 7.519M
high_mc_alpha_vs_dynamic_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_dynamic_notional_beta_pnl_final 33.734M
high_mc_alpha_vs_avg_hold_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_avg_hold_notional_beta_pnl_final 34.333M
dynamic_alpha_mdd_pnl -1.960M
dynamic_alpha_sharpe_annualized 13.8163
avg_hold_alpha_mdd_pnl -1.957M
avg_hold_alpha_sharpe_annualized 14.0772
num_trades 9,995
total_traded_amount_sum 2.7949e+07
total_trade_notional 20054.723M
daily_trade_notional 489.140M
trading_day_count 41
total_fee 20.055M
time_avg_total_notional_position_usdt 96.471M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 96.471M
time_avg_net_position_usdt 96.471M
time_avg_abs_net_position_usdt 96.471M
peak_abs_net_position_usdt 1.05651e+08
roi_avg_notional_position_pct 43.38%
roi_peak_notional_position_pct 39.61%
mdd_pnl -12.062M
sharpe_annualized 10.8622
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 41.852M
low_mc_trade_notional 20054.723M
low_mc_num_trades 9,995
low_mc_sharpe_annualized 10.8622
low_mc_trade_return_per_trade_bp 20.87bp
model_zscore_pnl_final 6950.582M
hedge_zscore_pnl_final 648.175M
force_zscore_pnl_final 0.000M
funding_fee_pnl_final 0.000M
funding_event_count 0
model_win_rate_20m 57.82%
hedge_win_rate_20m 44.20%
force_win_rate_20m
model_win_rate_btc_adj_20m 57.82%
hedge_win_rate_btc_adj_20m 44.20%
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.1852e+07 2.00547e+10 9995 10.8622 20.8689
high 0 0 0
low 4.1852e+07 2.00547e+10 9995 10.8622 20.8689

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 7624 1.81163e+07 0.00120654 12.0654 0.554171 0.00166958 0.000296938 0.000744412 1.81163e+07 0.00120654 12.0654 0.554171
10 7624 2.1343e+07 0.00142144 14.2144 0.570567 0.00184284 0.000444959 0.000572301 2.1343e+07 0.00142144 14.2144 0.570567
20 7620 2.17939e+07 0.00145218 14.5218 0.578215 0.00205381 0.00041539 0.000460448 2.17939e+07 0.00145218 14.5218 0.578215
30 7617 2.52432e+07 0.00168234 16.8234 0.586714 0.006018 -0.00112993 0.00250338 2.52432e+07 0.00168234 16.8234 0.586714
60 7603 3.3703e+07 0.00224955 22.4955 0.581349 0.00633592 -0.000708866 0.0018382 3.3703e+07 0.00224955 22.4955 0.581349
120 7593 3.94566e+07 0.00263771 26.3771 0.567891 0.0104748 -0.0023643 0.00313256 3.94566e+07 0.00263771 26.3771 0.567891
240 7561 4.17636e+07 0.0028069 28.069 0.547547 0.00533725 0.000339398 0.000445827 4.17636e+07 0.0028069 28.069 0.547547

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 2371 -3.82972e+06 -0.000759919 -7.59919 0.363981 0.00196277 -0.00101502 0.00137915 -3.82972e+06 -0.000759919 -7.59919 0.363981
10 2371 -2.89339e+06 -0.000574126 -5.74126 0.413749 0.000466538 -0.000674569 5.80351e-05 -2.89339e+06 -0.000574126 -5.74126 0.413749
20 2369 -3.43002e+06 -0.000681296 -6.81296 0.441959 -0.000904296 -0.000567235 9.95408e-05 -3.43002e+06 -0.000681296 -6.81296 0.441959
30 2368 -4.0762e+06 -0.000810052 -8.10052 0.45397 -0.00134866 -0.000625834 0.000120312 -4.0762e+06 -0.000810052 -8.10052 0.45397
60 2361 -5.7449e+06 -0.00114573 -11.4573 0.466751 0.0015288 -0.00134877 7.59419e-05 -5.7449e+06 -0.00114573 -11.4573 0.466751
120 2353 -4.90045e+06 -0.000980692 -9.80692 0.467913 0.00401906 -0.00142609 0.000308795 -4.90045e+06 -0.000980692 -9.80692 0.467913
240 2333 -4.47483e+06 -0.000903975 -9.03975 0.492499 -0.00238512 -0.00049781 4.96622e-05 -4.47483e+06 -0.000903975 -9.03975 0.492499

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 510 777823 0.00561339 56.1339
09:20 408 659672 0.00367995 36.7995
09:40 275 689633 0.000445625 4.45625
10:00 268 647119 0.00320716 32.0716
10:20 240 584256 0.00197355 19.7355
10:40 250 583255 0.00339955 33.9955
11:00 354 1.03178e+06 0.00278997 27.8997
11:20 326 1.13559e+06 0.00271008 27.1008
11:40 289 1.00234e+06 0.00493506 49.3506
12:00 280 1.01338e+06 0.00425623 42.5623
12:20 312 1.03886e+06 0.00318502 31.8502
12:40 283 988865 0.00293062 29.3062
13:00 261 786809 0.0035208 35.208
13:20 291 667849 0.00354576 35.4576
13:40 211 492597 0.00153294 15.3294
14:00 180 401105 8.01766e-05 0.801766
14:20 187 340660 0.0043091 43.091
14:40 216 446526 0.00167857 16.7857
15:00 253 709578 0.00912579 91.2579
15:20 0 0

Z-Score-Quality Scatter + Regression

Model Buy/Sell Scatter + Regression