KOSPI Backtest Dashboard

run_id: 20260321T011200Z_userreq_toss_ens4_105_enh_d7_a101_tossenriched_target350_z3p0
generated_at_utc: 2026-03-21T01:11:51.952564+00:00

Top KPI

trade_return_per_trade_bp = (total_pnl_final / total_trade_notional) * 10000
metric value
total_pnl_final 40.845M
total_trade_notional 15628.063M
daily_trade_notional 381.172M
total_fee 15.628M
mdd_pnl -8.930M
alpha_vs_dynamic_notional_beta_pnl_final 33.267M
alpha_vs_avg_hold_notional_beta_pnl_final 32.510M
dynamic_alpha_mdd_pnl -1.412M
avg_hold_alpha_mdd_pnl -1.567M
dynamic_alpha_sharpe_annualized 12.7546
avg_hold_alpha_sharpe_annualized 12.1587
time_avg_total_notional_position_usdt 74.832M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 74.832M
trade_return_per_trade_bp 26.14bp
roi_avg_notional_position_pct 54.58%
roi_peak_notional_position_pct 39.79%
num_trades 6,684
high_mc_trade_notional 0.000M
high_mc_sharpe_annualized
high_mc_trade_return_per_trade_bp
low_mc_trade_notional 15628.063M
low_mc_sharpe_annualized 12.4519
low_mc_trade_return_per_trade_bp 26.14bp
sharpe_annualized 12.4519

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 40.845M
total_pnl_peak 42.709M
dynamic_notional_beta_pnl_final 7.578M
alpha_vs_dynamic_notional_beta_pnl_final 33.267M
avg_hold_notional_beta_pnl_final 8.336M
alpha_vs_avg_hold_notional_beta_pnl_final 32.510M
high_mc_dynamic_notional_beta_pnl_final 0.000M
low_mc_dynamic_notional_beta_pnl_final 7.578M
high_mc_avg_hold_notional_beta_pnl_final 0.000M
low_mc_avg_hold_notional_beta_pnl_final 8.336M
high_mc_alpha_vs_dynamic_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_dynamic_notional_beta_pnl_final 33.267M
high_mc_alpha_vs_avg_hold_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_avg_hold_notional_beta_pnl_final 32.510M
dynamic_alpha_mdd_pnl -1.412M
dynamic_alpha_sharpe_annualized 12.7546
avg_hold_alpha_mdd_pnl -1.567M
avg_hold_alpha_sharpe_annualized 12.1587
num_trades 6,684
total_traded_amount_sum 1.90745e+07
total_trade_notional 15628.063M
daily_trade_notional 381.172M
trading_day_count 41
total_fee 15.628M
time_avg_total_notional_position_usdt 74.832M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 74.832M
time_avg_net_position_usdt 74.832M
time_avg_abs_net_position_usdt 74.832M
peak_abs_net_position_usdt 1.02645e+08
roi_avg_notional_position_pct 54.58%
roi_peak_notional_position_pct 39.79%
mdd_pnl -8.930M
sharpe_annualized 12.4519
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 40.845M
low_mc_trade_notional 15628.063M
low_mc_num_trades 6,684
low_mc_sharpe_annualized 12.4519
low_mc_trade_return_per_trade_bp 26.14bp
model_zscore_pnl_final 4859.660M
hedge_zscore_pnl_final 446.852M
force_zscore_pnl_final 0.000M
funding_fee_pnl_final 0.000M
funding_event_count 0
model_win_rate_20m 60.69%
hedge_win_rate_20m 43.77%
force_win_rate_20m
model_win_rate_btc_adj_20m 60.69%
hedge_win_rate_btc_adj_20m 43.77%
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.08454e+07 1.56281e+10 6684 12.4519 26.1359
high 0 0 0
low 4.08454e+07 1.56281e+10 6684 12.4519 26.1359

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 4965 2.02512e+07 0.00175516 17.5516 0.582679 0.00451122 -0.000187588 0.00249763 2.02512e+07 0.00175516 17.5516 0.582679
10 4965 2.42911e+07 0.0021053 21.053 0.610675 0.00685864 -0.000873578 0.00400017 2.42911e+07 0.0021053 21.053 0.610675
20 4960 2.54043e+07 0.00220414 22.0414 0.606855 0.00577065 -0.000300823 0.00178821 2.54043e+07 0.00220414 22.0414 0.606855
30 4959 2.64163e+07 0.00229243 22.9243 0.609195 0.00555725 -0.00011198 0.00125029 2.64163e+07 0.00229243 22.9243 0.609195
60 4951 3.27659e+07 0.00284835 28.4835 0.595233 0.00578372 0.000325244 0.000945686 3.27659e+07 0.00284835 28.4835 0.595233
120 4944 4.22298e+07 0.00367669 36.7669 0.584951 -0.00388628 0.00502036 0.000226569 4.22298e+07 0.00367669 36.7669 0.584951
240 4879 4.26394e+07 0.00376038 37.6038 0.570814 -0.00666193 0.00628671 0.000388845 4.26394e+07 0.00376038 37.6038 0.570814

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 1719 -3.74643e+06 -0.000916003 -9.16003 0.353112 0.00101622 -0.00100758 0.000368991 -3.74643e+06 -0.000916003 -9.16003 0.353112
10 1719 -3.71839e+06 -0.000909148 -9.09148 0.393834 0.00225819 -0.00117719 0.000910879 -3.71839e+06 -0.000909148 -9.09148 0.393834
20 1718 -3.90842e+06 -0.000956203 -9.56203 0.437718 0.0033746 -0.00132081 0.00133484 -3.90842e+06 -0.000956203 -9.56203 0.437718
30 1709 -3.31093e+06 -0.000813773 -8.13773 0.448215 0.000709927 -0.000882295 3.36909e-05 -3.31093e+06 -0.000813773 -8.13773 0.448215
60 1701 -4.59819e+06 -0.00113579 -11.3579 0.456202 0.00221437 -0.00142467 0.000154854 -4.59819e+06 -0.00113579 -11.3579 0.456202
120 1677 -1.79064e+06 -0.000448961 -4.48961 0.493143 -0.00027573 -0.000492416 1.25991e-06 -1.79064e+06 -0.000448961 -4.48961 0.493143
240 1626 -5.65821e+06 -0.00145695 -14.5695 0.48032 -0.00840003 -0.00057294 0.000539389 -5.65821e+06 -0.00145695 -14.5695 0.48032

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 370 377969 0.00723122 72.3122
09:20 328 438307 0.00278154 27.8154
09:40 262 512317 0.00245516 24.5516
10:00 239 510117 0.00333832 33.3832
10:20 213 463408 0.00363673 36.3673
10:40 154 298082 0.0051317 51.317
11:00 215 550171 0.00040478 4.0478
11:20 197 673660 0.00298284 29.8284
11:40 154 539571 0.00261251 26.1251
12:00 157 674152 0.00492546 49.2546
12:20 124 609158 0.00374195 37.4195
12:40 156 721067 0.00267947 26.7947
13:00 164 698130 0.00340236 34.0236
13:20 174 616602 0.00807608 80.7608
13:40 115 364283 0.00436942 43.6942
14:00 76 264181 0.00631371 63.1371
14:20 97 336988 0.00075797 7.5797
14:40 108 385178 0.0101134 101.134
15:00 144 511820 0.0018164 18.164
15:20 0 0

Z-Score-Quality Scatter + Regression

Model Buy/Sell Scatter + Regression