KOSPI Backtest Dashboard

run_id: 20260322T120517Z_userreq_toss_mega9_parquet_20260322_tossenriched_z3p25
generated_at_utc: 2026-03-22T12:06:07.401358+00:00

Top KPI

trade_return_per_trade_bp = (total_pnl_final / total_trade_notional) * 10000
metric value
total_pnl_final 39.749M
total_trade_notional 12920.015M
daily_trade_notional 315.122M
total_fee 12.920M
mdd_pnl -4.635M
alpha_vs_dynamic_notional_beta_pnl_final 36.595M
alpha_vs_avg_hold_notional_beta_pnl_final 32.880M
dynamic_alpha_mdd_pnl -2.109M
avg_hold_alpha_mdd_pnl -2.624M
dynamic_alpha_sharpe_annualized 13.4961
avg_hold_alpha_sharpe_annualized 11.6613
time_avg_total_notional_position_usdt 61.658M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 61.658M
trade_return_per_trade_bp 30.77bp
roi_avg_notional_position_pct 64.47%
roi_peak_notional_position_pct 38.70%
num_trades 5,313
high_mc_trade_notional 0.000M
high_mc_sharpe_annualized
high_mc_trade_return_per_trade_bp
low_mc_trade_notional 12920.015M
low_mc_sharpe_annualized 13.4134
low_mc_trade_return_per_trade_bp 30.77bp
sharpe_annualized 13.4134

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.25
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 39.749M
total_pnl_peak 39.795M
dynamic_notional_beta_pnl_final 3.154M
alpha_vs_dynamic_notional_beta_pnl_final 36.595M
avg_hold_notional_beta_pnl_final 6.868M
alpha_vs_avg_hold_notional_beta_pnl_final 32.880M
high_mc_dynamic_notional_beta_pnl_final 0.000M
low_mc_dynamic_notional_beta_pnl_final 3.154M
high_mc_avg_hold_notional_beta_pnl_final 0.000M
low_mc_avg_hold_notional_beta_pnl_final 6.868M
high_mc_alpha_vs_dynamic_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_dynamic_notional_beta_pnl_final 36.595M
high_mc_alpha_vs_avg_hold_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_avg_hold_notional_beta_pnl_final 32.880M
dynamic_alpha_mdd_pnl -2.109M
dynamic_alpha_sharpe_annualized 13.4961
avg_hold_alpha_mdd_pnl -2.624M
avg_hold_alpha_sharpe_annualized 11.6613
num_trades 5,313
total_traded_amount_sum 1.21847e+07
total_trade_notional 12920.015M
daily_trade_notional 315.122M
trading_day_count 41
total_fee 12.920M
time_avg_total_notional_position_usdt 61.658M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 61.658M
time_avg_net_position_usdt 61.658M
time_avg_abs_net_position_usdt 61.658M
peak_abs_net_position_usdt 1.02719e+08
roi_avg_notional_position_pct 64.47%
roi_peak_notional_position_pct 38.70%
mdd_pnl -4.635M
sharpe_annualized 13.4134
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 39.749M
low_mc_trade_notional 12920.015M
low_mc_num_trades 5,313
low_mc_sharpe_annualized 13.4134
low_mc_trade_return_per_trade_bp 30.77bp
model_zscore_pnl_final 5326.932M
hedge_zscore_pnl_final 876.214M
force_zscore_pnl_final 0.000M
funding_fee_pnl_final 0.000M
funding_event_count 0
model_win_rate_20m 65.16%
hedge_win_rate_20m 44.21%
force_win_rate_20m
model_win_rate_btc_adj_20m 65.16%
hedge_win_rate_btc_adj_20m 44.21%
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.97486e+07 1.292e+10 5313 13.4134 30.7652
high 0 0 0
low 3.97486e+07 1.292e+10 5313 13.4134 30.7652

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 3638 1.31513e+07 0.00149866 14.9866 0.616548 0.00132115 0.0006023 0.00042619 1.31513e+07 0.00149866 14.9866 0.616548
10 3638 1.98744e+07 0.00226479 22.6479 0.640462 0.00352916 -0.000110483 0.0023873 1.98744e+07 0.00226479 22.6479 0.640462
20 3637 2.35102e+07 0.00267987 26.7987 0.651636 0.00343822 0.00035576 0.0015887 2.35102e+07 0.00267987 26.7987 0.651636
30 3636 2.41011e+07 0.002748 27.48 0.644114 0.00375326 0.000223173 0.00159803 2.41011e+07 0.002748 27.48 0.644114
60 3633 2.4953e+07 0.00284753 28.4753 0.630333 0.00246743 0.00112919 0.00040465 2.4953e+07 0.00284753 28.4753 0.630333
120 3625 4.34207e+07 0.00496641 49.6641 0.613517 -0.00600114 0.00828131 0.000968161 4.34207e+07 0.00496641 49.6641 0.613517
240 3608 4.68367e+07 0.00538331 53.8331 0.590909 -0.00126473 0.00580632 2.65389e-05 4.68367e+07 0.00538331 53.8331 0.590909

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 1675 -3.09049e+06 -0.000745662 -7.45662 0.361194 0.00242356 -0.00125372 0.00555348 -3.09049e+06 -0.000745662 -7.45662 0.361194
10 1675 -2.37696e+06 -0.000573504 -5.73504 0.426866 0.00301938 -0.00120834 0.00640366 -2.37696e+06 -0.000573504 -5.73504 0.426866
20 1674 -3.37161e+06 -0.000813995 -8.13995 0.442055 0.00588741 -0.00203568 0.0077057 -3.37161e+06 -0.000813995 -8.13995 0.442055
30 1673 -3.47445e+06 -0.000839346 -8.39346 0.464435 0.00743698 -0.00237077 0.00783458 -3.47445e+06 -0.000839346 -8.39346 0.464435
60 1668 -4.42571e+06 -0.00107244 -10.7244 0.472422 0.00431004 -0.00201819 0.00158205 -4.42571e+06 -0.00107244 -10.7244 0.472422
120 1665 -2.7731e+06 -0.000673204 -6.73204 0.492492 0.0092575 -0.00264725 0.0038112 -2.7731e+06 -0.000673204 -6.73204 0.492492
240 1661 90781.1 2.20931e-05 0.220931 0.516556 0.00510294 -0.00110754 0.000531984 90781.1 2.20931e-05 0.220931 0.516556

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 229 464517 0.00924297 92.4297
09:20 198 359282 0.00325059 32.5059
09:40 172 472065 -0.00120439 -12.0439
10:00 172 337275 0.0040829 40.829
10:20 152 325391 0.00319965 31.9965
10:40 151 419601 0.00269326 26.9326
11:00 181 443937 0.00125927 12.5927
11:20 166 422619 0.00475993 47.5993
11:40 112 252408 0.0040268 40.268
12:00 118 318270 0.00655687 65.5687
12:20 103 213052 0.00343728 34.3728
12:40 107 188537 0.00461074 46.1074
13:00 114 279878 0.00527718 52.7718
13:20 187 365775 0.0241518 241.518
13:40 176 439696 0.0125116 125.116
14:00 143 326202 0.00618909 61.8909
14:20 114 232278 0.00582331 58.2331
14:40 56 121544 -0.000924468 -9.24468
15:00 64 124092 0.00403705 40.3705
15:20 0 0

Z-Score-Quality Scatter + Regression

Model Buy/Sell Scatter + Regression