KOSPI Backtest Dashboard

run_id: 20260321T011500Z_userreq_toss_ens4_105_enh_d7_a101_tossenriched_target350_z3p1
generated_at_utc: 2026-03-21T01:13:23.784525+00:00

Top KPI

trade_return_per_trade_bp = (total_pnl_final / total_trade_notional) * 10000
metric value
total_pnl_final 36.737M
total_trade_notional 14290.542M
daily_trade_notional 348.550M
total_fee 14.291M
mdd_pnl -9.051M
alpha_vs_dynamic_notional_beta_pnl_final 29.902M
alpha_vs_avg_hold_notional_beta_pnl_final 28.978M
dynamic_alpha_mdd_pnl -1.486M
avg_hold_alpha_mdd_pnl -1.526M
dynamic_alpha_sharpe_annualized 11.6189
avg_hold_alpha_sharpe_annualized 11.0584
time_avg_total_notional_position_usdt 69.654M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 69.654M
trade_return_per_trade_bp 25.71bp
roi_avg_notional_position_pct 52.74%
roi_peak_notional_position_pct 36.29%
num_trades 6,043
high_mc_trade_notional 0.000M
high_mc_sharpe_annualized
high_mc_trade_return_per_trade_bp
low_mc_trade_notional 14290.542M
low_mc_sharpe_annualized 11.3631
low_mc_trade_return_per_trade_bp 25.71bp
sharpe_annualized 11.3631

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.1
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.737M
total_pnl_peak 39.144M
dynamic_notional_beta_pnl_final 6.835M
alpha_vs_dynamic_notional_beta_pnl_final 29.902M
avg_hold_notional_beta_pnl_final 7.759M
alpha_vs_avg_hold_notional_beta_pnl_final 28.978M
high_mc_dynamic_notional_beta_pnl_final 0.000M
low_mc_dynamic_notional_beta_pnl_final 6.835M
high_mc_avg_hold_notional_beta_pnl_final 0.000M
low_mc_avg_hold_notional_beta_pnl_final 7.759M
high_mc_alpha_vs_dynamic_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_dynamic_notional_beta_pnl_final 29.902M
high_mc_alpha_vs_avg_hold_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_avg_hold_notional_beta_pnl_final 28.978M
dynamic_alpha_mdd_pnl -1.486M
dynamic_alpha_sharpe_annualized 11.6189
avg_hold_alpha_mdd_pnl -1.526M
avg_hold_alpha_sharpe_annualized 11.0584
num_trades 6,043
total_traded_amount_sum 1.80058e+07
total_trade_notional 14290.542M
daily_trade_notional 348.550M
trading_day_count 41
total_fee 14.291M
time_avg_total_notional_position_usdt 69.654M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 69.654M
time_avg_net_position_usdt 69.654M
time_avg_abs_net_position_usdt 69.654M
peak_abs_net_position_usdt 1.01223e+08
roi_avg_notional_position_pct 52.74%
roi_peak_notional_position_pct 36.29%
mdd_pnl -9.051M
sharpe_annualized 11.3631
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.737M
low_mc_trade_notional 14290.542M
low_mc_num_trades 6,043
low_mc_sharpe_annualized 11.3631
low_mc_trade_return_per_trade_bp 25.71bp
model_zscore_pnl_final 4471.627M
hedge_zscore_pnl_final 432.076M
force_zscore_pnl_final 0.000M
funding_fee_pnl_final 0.000M
funding_event_count 0
model_win_rate_20m 61.09%
hedge_win_rate_20m 43.28%
force_win_rate_20m
model_win_rate_btc_adj_20m 61.09%
hedge_win_rate_btc_adj_20m 43.28%
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.6737e+07 1.42905e+10 6043 11.3631 25.7072
high 0 0 0
low 3.6737e+07 1.42905e+10 6043 11.3631 25.7072

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 4412 1.81454e+07 0.00175125 17.5125 0.581142 0.00266714 0.00053564 0.000741787 1.81454e+07 0.00175125 17.5125 0.581142
10 4412 2.24812e+07 0.00216972 21.6972 0.614914 0.00535276 -0.000224368 0.00223898 2.24812e+07 0.00216972 21.6972 0.614914
20 4408 2.40522e+07 0.00232358 23.2358 0.610935 0.00554357 -0.000143057 0.00160489 2.40522e+07 0.00232358 23.2358 0.610935
30 4407 2.51335e+07 0.00242862 24.2862 0.612435 0.0051849 0.000155933 0.00100108 2.51335e+07 0.00242862 24.2862 0.612435
60 4400 3.1035e+07 0.00300389 30.0389 0.600455 0.00638128 0.000152344 0.00102249 3.1035e+07 0.00300389 30.0389 0.600455
120 4393 3.87197e+07 0.00375412 37.5412 0.588664 -0.00360186 0.00498215 0.000166902 3.87197e+07 0.00375412 37.5412 0.588664
240 4340 3.99462e+07 0.0039225 39.225 0.574654 -0.0125938 0.00897408 0.00122372 3.99462e+07 0.0039225 39.225 0.574654

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 1631 -3.58203e+06 -0.000911646 -9.11646 0.356223 0.0029072 -0.001193 0.00317663 -3.58203e+06 -0.000911646 -9.11646 0.356223
10 1631 -3.81941e+06 -0.00097206 -9.7206 0.396076 0.00258605 -0.00121176 0.00115178 -3.81941e+06 -0.00097206 -9.7206 0.396076
20 1629 -4.17054e+06 -0.0010628 -10.628 0.432781 0.00368553 -0.00142693 0.00124207 -4.17054e+06 -0.0010628 -10.628 0.432781
30 1621 -4.649e+06 -0.00118965 -11.8965 0.438001 -0.00345435 -0.000745592 0.000535908 -4.649e+06 -0.00118965 -11.8965 0.438001
60 1616 -5.22579e+06 -0.00134155 -13.4155 0.450495 0.00107279 -0.00135985 3.98625e-05 -5.22579e+06 -0.00134155 -13.4155 0.450495
120 1594 -2.60386e+06 -0.000678062 -6.78062 0.494354 -0.00093771 -0.000403572 1.54888e-05 -2.60386e+06 -0.000678062 -6.78062 0.494354
240 1548 -4.42177e+06 -0.00118342 -11.8342 0.48062 -0.0127792 0.000303666 0.00129748 -4.42177e+06 -0.00118342 -11.8342 0.48062

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 317 326530 0.00809636 80.9636
09:20 296 422850 0.00233245 23.3245
09:40 247 396288 0.00112591 11.2591
10:00 211 491303 0.00467876 46.7876
10:20 196 422250 0.00313471 31.3471
10:40 151 346406 0.00563905 56.3905
11:00 184 488448 0.000239018 2.39018
11:20 170 602986 0.00344947 34.4947
11:40 137 546544 0.00355894 35.5894
12:00 137 592761 0.0054801 54.801
12:20 111 602319 0.00371134 37.1134
12:40 138 674394 0.00319754 31.9754
13:00 140 620184 0.00361459 36.1459
13:20 158 553301 0.00968161 96.8161
13:40 104 334790 0.00674765 67.4765
14:00 92 379727 0.00295722 29.5722
14:20 92 329093 0.00107931 10.7931
14:40 96 369507 0.00505929 50.5929
15:00 132 511844 0.00426996 42.6996
15:20 0 0

Z-Score-Quality Scatter + Regression

Model Buy/Sell Scatter + Regression