KOSPI Backtest Dashboard

run_id: 20260322T115350Z_userreq_toss_ft_trans_bins96_20260322_tossenriched_z2p7
generated_at_utc: 2026-03-22T11:54:46.547505+00:00

Top KPI

trade_return_per_trade_bp = (total_pnl_final / total_trade_notional) * 10000
metric value
total_pnl_final 48.242M
total_trade_notional 18324.876M
daily_trade_notional 446.948M
total_fee 18.325M
mdd_pnl -5.618M
alpha_vs_dynamic_notional_beta_pnl_final 38.716M
alpha_vs_avg_hold_notional_beta_pnl_final 38.500M
dynamic_alpha_mdd_pnl -2.178M
avg_hold_alpha_mdd_pnl -2.047M
dynamic_alpha_sharpe_annualized 13.55
avg_hold_alpha_sharpe_annualized 13.6234
time_avg_total_notional_position_usdt 87.455M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 87.455M
trade_return_per_trade_bp 26.33bp
roi_avg_notional_position_pct 55.16%
roi_peak_notional_position_pct 47.41%
num_trades 8,113
high_mc_trade_notional 0.000M
high_mc_sharpe_annualized
high_mc_trade_return_per_trade_bp
low_mc_trade_notional 18324.876M
low_mc_sharpe_annualized 14.2788
low_mc_trade_return_per_trade_bp 26.33bp
sharpe_annualized 14.2788

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.7
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 48.242M
total_pnl_peak 48.310M
dynamic_notional_beta_pnl_final 9.526M
alpha_vs_dynamic_notional_beta_pnl_final 38.716M
avg_hold_notional_beta_pnl_final 9.742M
alpha_vs_avg_hold_notional_beta_pnl_final 38.500M
high_mc_dynamic_notional_beta_pnl_final 0.000M
low_mc_dynamic_notional_beta_pnl_final 9.526M
high_mc_avg_hold_notional_beta_pnl_final 0.000M
low_mc_avg_hold_notional_beta_pnl_final 9.742M
high_mc_alpha_vs_dynamic_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_dynamic_notional_beta_pnl_final 38.716M
high_mc_alpha_vs_avg_hold_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_avg_hold_notional_beta_pnl_final 38.500M
dynamic_alpha_mdd_pnl -2.178M
dynamic_alpha_sharpe_annualized 13.55
avg_hold_alpha_mdd_pnl -2.047M
avg_hold_alpha_sharpe_annualized 13.6234
num_trades 8,113
total_traded_amount_sum 1.53276e+07
total_trade_notional 18324.876M
daily_trade_notional 446.948M
trading_day_count 41
total_fee 18.325M
time_avg_total_notional_position_usdt 87.455M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 87.455M
time_avg_net_position_usdt 87.455M
time_avg_abs_net_position_usdt 87.455M
peak_abs_net_position_usdt 1.0175e+08
roi_avg_notional_position_pct 55.16%
roi_peak_notional_position_pct 47.41%
mdd_pnl -5.618M
sharpe_annualized 14.2788
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 48.242M
low_mc_trade_notional 18324.876M
low_mc_num_trades 8,113
low_mc_sharpe_annualized 14.2788
low_mc_trade_return_per_trade_bp 26.33bp
model_zscore_pnl_final 6452.747M
hedge_zscore_pnl_final 1110.501M
force_zscore_pnl_final 0.000M
funding_fee_pnl_final 0.000M
funding_event_count 0
model_win_rate_20m 62.65%
hedge_win_rate_20m 43.67%
force_win_rate_20m
model_win_rate_btc_adj_20m 62.65%
hedge_win_rate_btc_adj_20m 43.67%
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.82416e+07 1.83249e+10 8113 14.2788 26.3257
high 0 0 0
low 4.82416e+07 1.83249e+10 8113 14.2788 26.3257

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 5694 1.81433e+07 0.0014273 14.273 0.60836 0.00173497 0.000530346 0.00123181 1.81433e+07 0.0014273 14.273 0.60836
10 5694 2.31141e+07 0.00181835 18.1835 0.626449 0.00284187 0.000297947 0.00261508 2.31141e+07 0.00181835 18.1835 0.626449
20 5682 2.61017e+07 0.00205824 20.5824 0.62654 0.00502418 -0.000566264 0.00545872 2.61017e+07 0.00205824 20.5824 0.62654
30 5676 2.76898e+07 0.00218565 21.8565 0.627202 0.00526959 -0.000532884 0.00495467 2.76898e+07 0.00218565 21.8565 0.627202
60 5661 3.32048e+07 0.00262829 26.2829 0.604663 0.00544268 -0.000260582 0.0028359 3.32048e+07 0.00262829 26.2829 0.604663
120 5602 4.68996e+07 0.00375438 37.5438 0.598179 0.000221757 0.00349622 2.19054e-06 4.68996e+07 0.00375438 37.5438 0.598179
240 5505 5.79971e+07 0.00473115 47.3115 0.578565 0.00365015 0.00268461 0.000378339 5.79971e+07 0.00473115 47.3115 0.578565

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 2419 -4.24865e+06 -0.000756887 -7.56887 0.355105 0.00234511 -0.00119751 0.0054348 -4.24865e+06 -0.000756887 -7.56887 0.355105
10 2419 -3.82402e+06 -0.00068124 -6.8124 0.420008 0.00301989 -0.00124605 0.00607586 -3.82402e+06 -0.00068124 -6.8124 0.420008
20 2416 -4.17953e+06 -0.000745574 -7.45574 0.436672 0.00246996 -0.00129964 0.00129656 -4.17953e+06 -0.000745574 -7.45574 0.436672
30 2408 -4.81337e+06 -0.000861723 -8.61723 0.454734 0.00178605 -0.00124445 0.00051957 -4.81337e+06 -0.000861723 -8.61723 0.454734
60 2399 -6.68295e+06 -0.00120131 -12.0131 0.47228 -0.00803385 0.000319153 0.00519171 -6.68295e+06 -0.00120131 -12.0131 0.47228
120 2383 -7.84582e+06 -0.00141989 -14.1989 0.481746 -0.00721539 2.91037e-05 0.00222039 -7.84582e+06 -0.00141989 -14.1989 0.481746
240 2327 -1.22845e+07 -0.00227719 -22.7719 0.477869 -0.0106955 -5.66837e-05 0.00216012 -1.22845e+07 -0.00227719 -22.7719 0.477869

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 353 558520 0.00392773 39.2773
09:20 318 535425 0.00455045 45.5045
09:40 229 436516 0.000152085 1.52085
10:00 228 506980 0.00255108 25.5108
10:20 195 354273 0.00468538 46.8538
10:40 183 404831 0.0043715 43.715
11:00 253 523477 0.00183325 18.3325
11:20 238 396905 0.00434636 43.4636
11:40 199 362054 0.00410473 41.0473
12:00 166 375833 0.00515999 51.5999
12:20 181 301367 0.00255311 25.5311
12:40 203 360790 0.00368778 36.8778
13:00 224 437345 0.00431418 43.1418
13:20 269 418186 0.010281 102.81
13:40 254 483091 0.00839446 83.9446
14:00 213 390180 0.00587174 58.7174
14:20 179 263975 0.00721574 72.1574
14:40 130 248541 0.00640945 64.0945
15:00 206 332970 0.00254028 25.4028
15:20 0 0

Z-Score-Quality Scatter + Regression

Model Buy/Sell Scatter + Regression