KOSPI Backtest Dashboard

run_id: 20260321T111546Z_userreq_toss_ens3_105_enh_d7_20260320_tossenriched_target350_z2p95
generated_at_utc: 2026-03-21T11:17:32.091132+00:00

Top KPI

trade_return_per_trade_bp = (total_pnl_final / total_trade_notional) * 10000
metric value
total_pnl_final 46.519M
total_trade_notional 17686.275M
daily_trade_notional 431.373M
total_fee 17.686M
mdd_pnl -10.844M
alpha_vs_dynamic_notional_beta_pnl_final 35.719M
alpha_vs_avg_hold_notional_beta_pnl_final 36.446M
dynamic_alpha_mdd_pnl -1.503M
avg_hold_alpha_mdd_pnl -1.395M
dynamic_alpha_sharpe_annualized 12.1213
avg_hold_alpha_sharpe_annualized 12.1138
time_avg_total_notional_position_usdt 90.427M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 90.427M
trade_return_per_trade_bp 26.30bp
roi_avg_notional_position_pct 51.44%
roi_peak_notional_position_pct 45.56%
num_trades 8,409
high_mc_trade_notional 0.000M
high_mc_sharpe_annualized
high_mc_trade_return_per_trade_bp
low_mc_trade_notional 17686.275M
low_mc_sharpe_annualized 11.9693
low_mc_trade_return_per_trade_bp 26.30bp
sharpe_annualized 11.9693

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.95
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 46.519M
total_pnl_peak 47.270M
dynamic_notional_beta_pnl_final 10.800M
alpha_vs_dynamic_notional_beta_pnl_final 35.719M
avg_hold_notional_beta_pnl_final 10.073M
alpha_vs_avg_hold_notional_beta_pnl_final 36.446M
high_mc_dynamic_notional_beta_pnl_final 0.000M
low_mc_dynamic_notional_beta_pnl_final 10.800M
high_mc_avg_hold_notional_beta_pnl_final 0.000M
low_mc_avg_hold_notional_beta_pnl_final 10.073M
high_mc_alpha_vs_dynamic_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_dynamic_notional_beta_pnl_final 35.719M
high_mc_alpha_vs_avg_hold_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_avg_hold_notional_beta_pnl_final 36.446M
dynamic_alpha_mdd_pnl -1.503M
dynamic_alpha_sharpe_annualized 12.1213
avg_hold_alpha_mdd_pnl -1.395M
avg_hold_alpha_sharpe_annualized 12.1138
num_trades 8,409
total_traded_amount_sum 2.13409e+07
total_trade_notional 17686.275M
daily_trade_notional 431.373M
trading_day_count 41
total_fee 17.686M
time_avg_total_notional_position_usdt 90.427M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 90.427M
time_avg_net_position_usdt 90.427M
time_avg_abs_net_position_usdt 90.427M
peak_abs_net_position_usdt 1.02102e+08
roi_avg_notional_position_pct 51.44%
roi_peak_notional_position_pct 45.56%
mdd_pnl -10.844M
sharpe_annualized 11.9693
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 46.519M
low_mc_trade_notional 17686.275M
low_mc_num_trades 8,409
low_mc_sharpe_annualized 11.9693
low_mc_trade_return_per_trade_bp 26.30bp
model_zscore_pnl_final 5499.458M
hedge_zscore_pnl_final 532.080M
force_zscore_pnl_final 0.000M
funding_fee_pnl_final 0.000M
funding_event_count 0
model_win_rate_20m 58.81%
hedge_win_rate_20m 43.93%
force_win_rate_20m
model_win_rate_btc_adj_20m 58.81%
hedge_win_rate_btc_adj_20m 43.93%
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.65187e+07 1.76863e+10 8409 11.9693 26.3021
high 0 0 0
low 4.65187e+07 1.76863e+10 8409 11.9693 26.3021

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 6337 1.92247e+07 0.00147064 14.7064 0.573773 0.00256539 0.000245885 0.0010583 1.92247e+07 0.00147064 14.7064 0.573773
10 6337 2.46149e+07 0.00188297 18.8297 0.593972 0.00516139 -0.000458987 0.00311398 2.46149e+07 0.00188297 18.8297 0.593972
20 6322 2.59728e+07 0.00199258 19.9258 0.588105 0.00562695 -0.000500478 0.00233378 2.59728e+07 0.00199258 19.9258 0.588105
30 6307 3.05776e+07 0.00235263 23.5263 0.596639 0.00659633 -0.000529671 0.00244699 3.05776e+07 0.00235263 23.5263 0.596639
60 6283 3.69825e+07 0.00285858 28.5858 0.582206 0.00892596 -0.000882082 0.00270635 3.69825e+07 0.00285858 28.5858 0.582206
120 6256 4.44548e+07 0.00345397 34.5397 0.581522 0.00583507 0.00113636 0.000623756 4.44548e+07 0.00345397 34.5397 0.581522
240 6146 4.6561e+07 0.00368874 36.8874 0.552066 0.00215743 0.00278593 4.97542e-05 4.6561e+07 0.00368874 36.8874 0.552066

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 2072 -3.99674e+06 -0.000866231 -8.66231 0.376448 0.00278866 -0.00117248 0.00230257 -3.99674e+06 -0.000866231 -8.66231 0.376448
10 2072 -4.29569e+06 -0.000931025 -9.31025 0.405405 0.000883585 -0.00101066 0.000180793 -4.29569e+06 -0.000931025 -9.31025 0.405405
20 2067 -4.2392e+06 -0.000920971 -9.20971 0.439284 0.00211556 -0.00116669 0.000654333 -4.2392e+06 -0.000920971 -9.20971 0.439284
30 2062 -3.358e+06 -0.000731205 -7.31205 0.455383 0.000920945 -0.000798468 7.09018e-05 -3.358e+06 -0.000731205 -7.31205 0.455383
60 2050 -4.34109e+06 -0.000951139 -9.51139 0.482439 -0.000404712 -0.000832636 4.90151e-06 -4.34109e+06 -0.000951139 -9.51139 0.482439
120 2013 -2.90543e+06 -0.000648009 -6.48009 0.500248 -0.000644348 -0.000386723 6.7707e-06 -2.90543e+06 -0.000648009 -6.48009 0.500248
240 1969 -9.03583e+06 -0.00205764 -20.5764 0.487049 -0.0141912 -1.91289e-05 0.00148241 -9.03583e+06 -0.00205764 -20.5764 0.487049

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 529 496903 0.00773997 77.3997
09:20 341 457823 0.00403774 40.3774
09:40 233 279506 -0.000825804 -8.25804
10:00 210 407432 0.00594228 59.4228
10:20 169 280396 0.00411932 41.1932
10:40 167 387471 0.00433493 43.3493
11:00 374 867456 0.00106701 10.6701
11:20 326 911345 0.00377261 37.7261
11:40 256 676594 0.00337523 33.7523
12:00 227 821180 0.00473851 47.3851
12:20 215 720256 0.00502429 50.2429
12:40 220 738163 0.00331026 33.1026
13:00 231 810635 0.00279855 27.9855
13:20 203 614522 0.00595869 59.5869
13:40 125 408628 0.00772879 77.2879
14:00 136 337871 0.00429632 42.9632
14:20 177 468190 0.0083447 83.447
14:40 144 356486 0.01142 114.2
15:00 223 651046 0.00571959 57.1959
15:20 0 0

Z-Score-Quality Scatter + Regression

Model Buy/Sell Scatter + Regression