KOSPI Backtest Dashboard

run_id: 20260322T120623Z_userreq_toss_ultimate_v3_parquet_20260322_tossenriched_z2p95
generated_at_utc: 2026-03-22T12:06:41.337500+00:00

Top KPI

trade_return_per_trade_bp = (total_pnl_final / total_trade_notional) * 10000
metric value
total_pnl_final 42.539M
total_trade_notional 15831.824M
daily_trade_notional 386.142M
total_fee 15.832M
mdd_pnl -5.204M
alpha_vs_dynamic_notional_beta_pnl_final 37.397M
alpha_vs_avg_hold_notional_beta_pnl_final 33.823M
dynamic_alpha_mdd_pnl -1.423M
avg_hold_alpha_mdd_pnl -2.400M
dynamic_alpha_sharpe_annualized 13.3304
avg_hold_alpha_sharpe_annualized 11.4522
time_avg_total_notional_position_usdt 78.242M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 78.242M
trade_return_per_trade_bp 26.87bp
roi_avg_notional_position_pct 54.37%
roi_peak_notional_position_pct 42.25%
num_trades 6,717
high_mc_trade_notional 0.000M
high_mc_sharpe_annualized
high_mc_trade_return_per_trade_bp
low_mc_trade_notional 15831.824M
low_mc_sharpe_annualized 13.1706
low_mc_trade_return_per_trade_bp 26.87bp
sharpe_annualized 13.1706

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 42.539M
total_pnl_peak 42.569M
dynamic_notional_beta_pnl_final 5.142M
alpha_vs_dynamic_notional_beta_pnl_final 37.397M
avg_hold_notional_beta_pnl_final 8.716M
alpha_vs_avg_hold_notional_beta_pnl_final 33.823M
high_mc_dynamic_notional_beta_pnl_final 0.000M
low_mc_dynamic_notional_beta_pnl_final 5.142M
high_mc_avg_hold_notional_beta_pnl_final 0.000M
low_mc_avg_hold_notional_beta_pnl_final 8.716M
high_mc_alpha_vs_dynamic_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_dynamic_notional_beta_pnl_final 37.397M
high_mc_alpha_vs_avg_hold_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_avg_hold_notional_beta_pnl_final 33.823M
dynamic_alpha_mdd_pnl -1.423M
dynamic_alpha_sharpe_annualized 13.3304
avg_hold_alpha_mdd_pnl -2.400M
avg_hold_alpha_sharpe_annualized 11.4522
num_trades 6,717
total_traded_amount_sum 1.33938e+07
total_trade_notional 15831.824M
daily_trade_notional 386.142M
trading_day_count 41
total_fee 15.832M
time_avg_total_notional_position_usdt 78.242M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 78.242M
time_avg_net_position_usdt 78.242M
time_avg_abs_net_position_usdt 78.242M
peak_abs_net_position_usdt 1.00687e+08
roi_avg_notional_position_pct 54.37%
roi_peak_notional_position_pct 42.25%
mdd_pnl -5.204M
sharpe_annualized 13.1706
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 42.539M
low_mc_trade_notional 15831.824M
low_mc_num_trades 6,717
low_mc_sharpe_annualized 13.1706
low_mc_trade_return_per_trade_bp 26.87bp
model_zscore_pnl_final 5674.455M
hedge_zscore_pnl_final 920.225M
force_zscore_pnl_final 0.000M
funding_fee_pnl_final 0.000M
funding_event_count 0
model_win_rate_20m 63.81%
hedge_win_rate_20m 44.63%
force_win_rate_20m
model_win_rate_btc_adj_20m 63.81%
hedge_win_rate_btc_adj_20m 44.63%
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.25388e+07 1.58318e+10 6717 13.1706 26.8691
high 0 0 0
low 4.25388e+07 1.58318e+10 6717 13.1706 26.8691

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 4622 1.63185e+07 0.00151521 15.1521 0.607746 0.0024987 7.36768e-05 0.00145518 1.63185e+07 0.00151521 15.1521 0.607746
10 4622 2.42637e+07 0.00225294 22.5294 0.637819 0.00597634 -0.00111795 0.00663464 2.42637e+07 0.00225294 22.5294 0.637819
20 4620 2.64334e+07 0.00245555 24.5555 0.638095 0.00598616 -0.000918985 0.00475834 2.64334e+07 0.00245555 24.5555 0.638095
30 4618 2.79375e+07 0.00259647 25.9647 0.638155 0.00624217 -0.000937373 0.00418122 2.79375e+07 0.00259647 25.9647 0.638155
60 4612 3.06417e+07 0.00285174 28.5174 0.629228 0.00526772 -0.000144268 0.00180778 3.06417e+07 0.00285174 28.5174 0.629228
120 4599 4.61918e+07 0.004312 43.12 0.605566 -0.00057513 0.00435181 8.22058e-06 4.61918e+07 0.004312 43.12 0.605566
240 4580 5.05466e+07 0.00473952 47.3952 0.586245 0.00102777 0.00392339 1.63995e-05 5.05466e+07 0.00473952 47.3952 0.586245

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 2095 -2.89046e+06 -0.000571009 -5.71009 0.378998 0.00388777 -0.0012811 0.0122532 -2.89046e+06 -0.000571009 -5.71009 0.378998
10 2095 -2.3306e+06 -0.000460408 -4.60408 0.439141 0.00362857 -0.00111196 0.00760264 -2.3306e+06 -0.000460408 -4.60408 0.439141
20 2095 -4.29858e+06 -0.000849182 -8.49182 0.446301 0.00356601 -0.00155614 0.00164514 -4.29858e+06 -0.000849182 -8.49182 0.446301
30 2093 -3.75814e+06 -0.000743167 -7.43167 0.46345 0.00609677 -0.00191479 0.0036744 -3.75814e+06 -0.000743167 -7.43167 0.46345
60 2090 -6.28632e+06 -0.00124498 -12.4498 0.47799 0.00360191 -0.00193795 0.000737145 -6.28632e+06 -0.00124498 -12.4498 0.47799
120 2086 -3.64687e+06 -0.000723683 -7.23683 0.496644 0.0114844 -0.00282077 0.0052452 -3.64687e+06 -0.000723683 -7.23683 0.496644
240 2081 -3.61415e+06 -0.000719004 -7.19004 0.510812 0.00329699 -0.00123579 0.000186924 -3.61415e+06 -0.000719004 -7.19004 0.510812

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 257 511595 0.00777955 77.7955
09:20 232 373261 0.00391726 39.1726
09:40 204 470354 -0.000521057 -5.21057
10:00 207 410316 0.00316686 31.6686
10:20 190 355757 0.00225579 22.5579
10:40 200 472820 0.00202521 20.2521
11:00 218 465030 0.00112642 11.2642
11:20 209 396530 0.00452714 45.2714
11:40 144 265119 0.00394343 39.4343
12:00 153 328023 0.00552418 55.2418
12:20 140 292404 0.00336337 33.6337
12:40 144 242192 0.00457519 45.7519
13:00 167 348778 0.00388357 38.8357
13:20 242 438233 0.0207445 207.445
13:40 231 447352 0.0112418 112.418
14:00 197 408294 0.000660507 6.60507
14:20 149 239946 0.00627344 62.7344
14:40 79 113638 0.00442467 44.2467
15:00 106 140301 0.00127271 12.7271
15:20 0 0

Z-Score-Quality Scatter + Regression

Model Buy/Sell Scatter + Regression