KOSPI Backtest Dashboard

run_id: 20260322T114746Z_userreq_toss_mega9_parquet_20260322_tossenriched_z3p3
generated_at_utc: 2026-03-22T11:50:24.644718+00:00

Top KPI

trade_return_per_trade_bp = (total_pnl_final / total_trade_notional) * 10000
metric value
total_pnl_final 38.624M
total_trade_notional 12180.673M
daily_trade_notional 297.090M
total_fee 12.181M
mdd_pnl -4.375M
alpha_vs_dynamic_notional_beta_pnl_final 35.981M
alpha_vs_avg_hold_notional_beta_pnl_final 32.187M
dynamic_alpha_mdd_pnl -1.962M
avg_hold_alpha_mdd_pnl -2.657M
dynamic_alpha_sharpe_annualized 13.2787
avg_hold_alpha_sharpe_annualized 11.4401
time_avg_total_notional_position_usdt 57.793M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 57.793M
trade_return_per_trade_bp 31.71bp
roi_avg_notional_position_pct 66.83%
roi_peak_notional_position_pct 37.70%
num_trades 4,991
high_mc_trade_notional 0.000M
high_mc_sharpe_annualized
high_mc_trade_return_per_trade_bp
low_mc_trade_notional 12180.673M
low_mc_sharpe_annualized 13.1912
low_mc_trade_return_per_trade_bp 31.71bp
sharpe_annualized 13.1912

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 38.624M
total_pnl_peak 38.708M
dynamic_notional_beta_pnl_final 2.643M
alpha_vs_dynamic_notional_beta_pnl_final 35.981M
avg_hold_notional_beta_pnl_final 6.438M
alpha_vs_avg_hold_notional_beta_pnl_final 32.187M
high_mc_dynamic_notional_beta_pnl_final 0.000M
low_mc_dynamic_notional_beta_pnl_final 2.643M
high_mc_avg_hold_notional_beta_pnl_final 0.000M
low_mc_avg_hold_notional_beta_pnl_final 6.438M
high_mc_alpha_vs_dynamic_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_dynamic_notional_beta_pnl_final 35.981M
high_mc_alpha_vs_avg_hold_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_avg_hold_notional_beta_pnl_final 32.187M
dynamic_alpha_mdd_pnl -1.962M
dynamic_alpha_sharpe_annualized 13.2787
avg_hold_alpha_mdd_pnl -2.657M
avg_hold_alpha_sharpe_annualized 11.4401
num_trades 4,991
total_traded_amount_sum 1.1404e+07
total_trade_notional 12180.673M
daily_trade_notional 297.090M
trading_day_count 41
total_fee 12.181M
time_avg_total_notional_position_usdt 57.793M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 57.793M
time_avg_net_position_usdt 57.793M
time_avg_abs_net_position_usdt 57.793M
peak_abs_net_position_usdt 1.02448e+08
roi_avg_notional_position_pct 66.83%
roi_peak_notional_position_pct 37.70%
mdd_pnl -4.375M
sharpe_annualized 13.1912
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 38.624M
low_mc_trade_notional 12180.673M
low_mc_num_trades 4,991
low_mc_sharpe_annualized 13.1912
low_mc_trade_return_per_trade_bp 31.71bp
model_zscore_pnl_final 5073.533M
hedge_zscore_pnl_final 833.930M
force_zscore_pnl_final 0.000M
funding_fee_pnl_final 0.000M
funding_event_count 0
model_win_rate_20m 65.22%
hedge_win_rate_20m 44.73%
force_win_rate_20m
model_win_rate_btc_adj_20m 65.22%
hedge_win_rate_btc_adj_20m 44.73%
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.86244e+07 1.21807e+10 4991 13.1912 31.7096
high 0 0 0
low 3.86244e+07 1.21807e+10 4991 13.1912 31.7096

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 3407 1.31041e+07 0.00158815 15.8815 0.620194 0.00184285 0.000347319 0.000794976 1.31041e+07 0.00158815 15.8815 0.620194
10 3407 1.96258e+07 0.00237855 23.7855 0.648958 0.00334478 7.10051e-05 0.00208504 1.96258e+07 0.00237855 23.7855 0.648958
20 3407 2.27985e+07 0.00276305 27.6305 0.652187 0.00348723 0.000381792 0.00159338 2.27985e+07 0.00276305 27.6305 0.652187
30 3406 2.35527e+07 0.00285532 28.5532 0.646506 0.00402918 0.000132937 0.00182205 2.35527e+07 0.00285532 28.5532 0.646506
60 3403 2.5188e+07 0.00305629 30.5629 0.636203 0.00330225 0.000804458 0.000669336 2.5188e+07 0.00305629 30.5629 0.636203
120 3396 4.33654e+07 0.00527322 52.7322 0.616313 -0.006312 0.00888749 0.00101664 4.33654e+07 0.00527322 52.7322 0.616313
240 3382 4.54368e+07 0.00554868 55.4868 0.590183 -0.000472065 0.00562352 3.56792e-06 4.54368e+07 0.00554868 55.4868 0.590183

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 1584 -2.93222e+06 -0.000746213 -7.46213 0.358586 0.00297283 -0.00137817 0.00844577 -2.93222e+06 -0.000746213 -7.46213 0.358586
10 1584 -2.28671e+06 -0.000581939 -5.81939 0.42298 0.0031684 -0.0012602 0.00687364 -2.28671e+06 -0.000581939 -5.81939 0.42298
20 1583 -2.97701e+06 -0.000758107 -7.58107 0.447252 0.00618589 -0.00208185 0.00813011 -2.97701e+06 -0.000758107 -7.58107 0.447252
30 1582 -3.44931e+06 -0.00087896 -8.7896 0.462073 0.00709567 -0.00238195 0.00704323 -3.44931e+06 -0.00087896 -8.7896 0.462073
60 1578 -3.50437e+06 -0.000895301 -8.95301 0.475919 0.00368309 -0.00174643 0.00112023 -3.50437e+06 -0.000895301 -8.95301 0.475919
120 1576 -2.67805e+06 -0.00068507 -6.8507 0.491117 0.00893113 -0.00257832 0.00355228 -2.67805e+06 -0.00068507 -6.8507 0.491117
240 1572 73675.7 1.88963e-05 0.188963 0.522265 0.00520922 -0.00108498 0.000539627 73675.7 1.88963e-05 0.188963 0.522265

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 206 441798 0.00953886 95.3886
09:20 180 321579 0.00317102 31.7102
09:40 165 467545 -0.00171751 -17.1751
10:00 163 325225 0.00442814 44.2814
10:20 140 316101 0.0029937 29.937
10:40 142 389832 0.00288326 28.8326
11:00 167 424104 0.00115272 11.5272
11:20 162 410776 0.0052718 52.718
11:40 109 241945 0.00457512 45.7512
12:00 113 283628 0.00638819 63.8819
12:20 99 235891 0.00522301 52.2301
12:40 97 189376 0.00484392 48.4392
13:00 111 247715 0.00532375 53.2375
13:20 176 314119 0.0249016 249.016
13:40 164 369822 0.0144471 144.471
14:00 132 294155 0.00781945 78.1945
14:20 109 195766 0.00578613 57.8613
14:40 54 117687 0.00024802 2.4802
15:00 61 127532 0.00400934 40.0934
15:20 0 0

Z-Score-Quality Scatter + Regression

Model Buy/Sell Scatter + Regression