KOSPI Backtest Dashboard

run_id: 20260321T111418Z_userreq_toss_ens5_2seed_105_d7_a101_tossenriched_target350_z3p3
generated_at_utc: 2026-03-21T11:19:05.408471+00:00

Top KPI

trade_return_per_trade_bp = (total_pnl_final / total_trade_notional) * 10000
metric value
total_pnl_final 36.318M
total_trade_notional 13872.877M
daily_trade_notional 338.363M
total_fee 13.873M
mdd_pnl -5.317M
alpha_vs_dynamic_notional_beta_pnl_final 29.320M
alpha_vs_avg_hold_notional_beta_pnl_final 29.242M
dynamic_alpha_mdd_pnl -2.127M
avg_hold_alpha_mdd_pnl -2.091M
dynamic_alpha_sharpe_annualized 10.9677
avg_hold_alpha_sharpe_annualized 10.8251
time_avg_total_notional_position_usdt 63.527M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 63.527M
trade_return_per_trade_bp 26.18bp
roi_avg_notional_position_pct 57.17%
roi_peak_notional_position_pct 36.00%
num_trades 5,755
high_mc_trade_notional 0.000M
high_mc_sharpe_annualized
high_mc_trade_return_per_trade_bp
low_mc_trade_notional 13872.877M
low_mc_sharpe_annualized 12.1599
low_mc_trade_return_per_trade_bp 26.18bp
sharpe_annualized 12.1599

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.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 36.318M
total_pnl_peak 36.340M
dynamic_notional_beta_pnl_final 6.998M
alpha_vs_dynamic_notional_beta_pnl_final 29.320M
avg_hold_notional_beta_pnl_final 7.076M
alpha_vs_avg_hold_notional_beta_pnl_final 29.242M
high_mc_dynamic_notional_beta_pnl_final 0.000M
low_mc_dynamic_notional_beta_pnl_final 6.998M
high_mc_avg_hold_notional_beta_pnl_final 0.000M
low_mc_avg_hold_notional_beta_pnl_final 7.076M
high_mc_alpha_vs_dynamic_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_dynamic_notional_beta_pnl_final 29.320M
high_mc_alpha_vs_avg_hold_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_avg_hold_notional_beta_pnl_final 29.242M
dynamic_alpha_mdd_pnl -2.127M
dynamic_alpha_sharpe_annualized 10.9677
avg_hold_alpha_mdd_pnl -2.091M
avg_hold_alpha_sharpe_annualized 10.8251
num_trades 5,755
total_traded_amount_sum 2.27686e+07
total_trade_notional 13872.877M
daily_trade_notional 338.363M
trading_day_count 41
total_fee 13.873M
time_avg_total_notional_position_usdt 63.527M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 63.527M
time_avg_net_position_usdt 63.527M
time_avg_abs_net_position_usdt 63.527M
peak_abs_net_position_usdt 1.0087e+08
roi_avg_notional_position_pct 57.17%
roi_peak_notional_position_pct 36.00%
mdd_pnl -5.317M
sharpe_annualized 12.1599
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 36.318M
low_mc_trade_notional 13872.877M
low_mc_num_trades 5,755
low_mc_sharpe_annualized 12.1599
low_mc_trade_return_per_trade_bp 26.18bp
model_zscore_pnl_final 4523.257M
hedge_zscore_pnl_final 493.988M
force_zscore_pnl_final 0.000M
funding_fee_pnl_final 0.000M
funding_event_count 0
model_win_rate_20m 61.75%
hedge_win_rate_20m 44.21%
force_win_rate_20m
model_win_rate_btc_adj_20m 61.75%
hedge_win_rate_btc_adj_20m 44.21%
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.6318e+07 1.38729e+10 5755 12.1599 26.1791
high 0 0 0
low 3.6318e+07 1.38729e+10 5755 12.1599 26.1791

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 4121 1.91839e+07 0.00194563 19.4563 0.589177 -0.000317646 0.00192079 1.13411e-05 1.91839e+07 0.00194563 19.4563 0.589177
10 4121 2.34793e+07 0.00238126 23.8126 0.608833 0.00350984 0.00057373 0.00109025 2.34793e+07 0.00238126 23.8126 0.608833
20 4120 2.58525e+07 0.00262262 26.2262 0.617476 0.0026754 0.00117871 0.000404172 2.58525e+07 0.00262262 26.2262 0.617476
30 4119 3.05257e+07 0.00309747 30.9747 0.623452 0.00173496 0.00207185 0.0001271 3.05257e+07 0.00309747 30.9747 0.623452
60 4118 3.54673e+07 0.00359981 35.9981 0.606605 0.00219778 0.00235333 0.000146451 3.54673e+07 0.00359981 35.9981 0.606605
120 4116 3.73388e+07 0.00379169 37.9169 0.587464 -0.00759501 0.00705938 0.00100064 3.73388e+07 0.00379169 37.9169 0.587464
240 4110 3.93512e+07 0.00400214 40.0214 0.573723 -0.00723268 0.00710309 0.000530536 3.93512e+07 0.00400214 40.0214 0.573723

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 1634 -3.33398e+06 -0.000830822 -8.30822 0.343941 0.00285026 -0.0011758 0.00337606 -3.33398e+06 -0.000830822 -8.30822 0.343941
10 1634 -3.43809e+06 -0.000856766 -8.56766 0.400857 0.00109323 -0.000968918 0.000218661 -3.43809e+06 -0.000856766 -8.56766 0.400857
20 1633 -4.22771e+06 -0.0010542 -10.542 0.442131 -0.000783639 -0.00095648 5.84153e-05 -4.22771e+06 -0.0010542 -10.542 0.442131
30 1632 -4.87301e+06 -0.00121586 -12.1586 0.431985 0.00141788 -0.00135381 0.000142701 -4.87301e+06 -0.00121586 -12.1586 0.431985
60 1628 -7.01924e+06 -0.00175585 -17.5585 0.442875 0.00405995 -0.00230497 0.000548224 -7.01924e+06 -0.00175585 -17.5585 0.442875
120 1623 -2.32765e+06 -0.000584087 -5.84087 0.50154 0.0024393 -0.000931506 0.000110481 -2.32765e+06 -0.000584087 -5.84087 0.50154
240 1621 -21466.2 -5.39331e-06 -0.0539331 0.516348 -0.00480086 0.000656003 0.000185204 -21466.2 -5.39331e-06 -0.0539331 0.516348

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 290 363639 0.00525124 52.5124
09:20 281 469629 0.00392518 39.2518
09:40 256 692919 3.85819e-06 0.0385819
10:00 236 805130 0.00400218 40.0218
10:20 217 740014 0.00333832 33.3832
10:40 160 590761 0.00394861 39.4861
11:00 186 693037 0.00199239 19.9239
11:20 157 754130 0.00446909 44.6909
11:40 116 621683 0.00406465 40.6465
12:00 129 737041 0.00648011 64.8011
12:20 106 735834 0.00399912 39.9912
12:40 120 765933 0.0031726 31.726
13:00 145 744101 0.00415247 41.5247
13:20 127 618006 0.012752 127.52
13:40 114 483009 0.00136362 13.6362
14:00 83 413544 0.00205998 20.5998
14:20 76 416072 -0.000942052 -9.42052
14:40 67 369848 0.0151399 151.399
15:00 78 376296 0.0136092 136.092
15:20 0 0

Z-Score-Quality Scatter + Regression

Model Buy/Sell Scatter + Regression