KOSPI Backtest Dashboard

run_id: 20260322T115350Z_userreq_toss_ft_trans_bins96_20260322_tossenriched_z2p5
generated_at_utc: 2026-03-22T11:54:16.701155+00:00

Top KPI

trade_return_per_trade_bp = (total_pnl_final / total_trade_notional) * 10000
metric value
total_pnl_final 50.157M
total_trade_notional 19407.366M
daily_trade_notional 473.350M
total_fee 19.407M
mdd_pnl -5.778M
alpha_vs_dynamic_notional_beta_pnl_final 39.237M
alpha_vs_avg_hold_notional_beta_pnl_final 39.643M
dynamic_alpha_mdd_pnl -2.132M
avg_hold_alpha_mdd_pnl -2.434M
dynamic_alpha_sharpe_annualized 13.8697
avg_hold_alpha_sharpe_annualized 13.8085
time_avg_total_notional_position_usdt 94.385M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 94.385M
trade_return_per_trade_bp 25.84bp
roi_avg_notional_position_pct 53.14%
roi_peak_notional_position_pct 49.21%
num_trades 9,087
high_mc_trade_notional 0.000M
high_mc_sharpe_annualized
high_mc_trade_return_per_trade_bp
low_mc_trade_notional 19407.366M
low_mc_sharpe_annualized 14.6577
low_mc_trade_return_per_trade_bp 25.84bp
sharpe_annualized 14.6577

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.5
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 50.157M
total_pnl_peak 50.236M
dynamic_notional_beta_pnl_final 10.920M
alpha_vs_dynamic_notional_beta_pnl_final 39.237M
avg_hold_notional_beta_pnl_final 10.514M
alpha_vs_avg_hold_notional_beta_pnl_final 39.643M
high_mc_dynamic_notional_beta_pnl_final 0.000M
low_mc_dynamic_notional_beta_pnl_final 10.920M
high_mc_avg_hold_notional_beta_pnl_final 0.000M
low_mc_avg_hold_notional_beta_pnl_final 10.514M
high_mc_alpha_vs_dynamic_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_dynamic_notional_beta_pnl_final 39.237M
high_mc_alpha_vs_avg_hold_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_avg_hold_notional_beta_pnl_final 39.643M
dynamic_alpha_mdd_pnl -2.132M
dynamic_alpha_sharpe_annualized 13.8697
avg_hold_alpha_mdd_pnl -2.434M
avg_hold_alpha_sharpe_annualized 13.8085
num_trades 9,087
total_traded_amount_sum 1.73949e+07
total_trade_notional 19407.366M
daily_trade_notional 473.350M
trading_day_count 41
total_fee 19.407M
time_avg_total_notional_position_usdt 94.385M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 94.385M
time_avg_net_position_usdt 94.385M
time_avg_abs_net_position_usdt 94.385M
peak_abs_net_position_usdt 1.0192e+08
roi_avg_notional_position_pct 53.14%
roi_peak_notional_position_pct 49.21%
mdd_pnl -5.778M
sharpe_annualized 14.6577
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 50.157M
low_mc_trade_notional 19407.366M
low_mc_num_trades 9,087
low_mc_sharpe_annualized 14.6577
low_mc_trade_return_per_trade_bp 25.84bp
model_zscore_pnl_final 6858.596M
hedge_zscore_pnl_final 1054.357M
force_zscore_pnl_final 0.000M
funding_fee_pnl_final 0.000M
funding_event_count 0
model_win_rate_20m 61.82%
hedge_win_rate_20m 44.62%
force_win_rate_20m
model_win_rate_btc_adj_20m 61.82%
hedge_win_rate_btc_adj_20m 44.62%
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 5.01572e+07 1.94074e+10 9087 14.6577 25.8444
high 0 0 0
low 5.01572e+07 1.94074e+10 9087 14.6577 25.8444

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 6631 1.82235e+07 0.00130411 13.0411 0.601116 0.00223331 0.000196806 0.00238263 1.82235e+07 0.00130411 13.0411 0.601116
10 6631 2.40658e+07 0.0017222 17.222 0.615443 0.00330667 -2.14599e-05 0.00398038 2.40658e+07 0.0017222 17.222 0.615443
20 6616 2.81314e+07 0.00201761 20.1761 0.618198 0.00549261 -0.000845003 0.00722897 2.81314e+07 0.00201761 20.1761 0.618198
30 6607 2.78643e+07 0.00200102 20.0102 0.615257 0.00509906 -0.000680991 0.00490335 2.78643e+07 0.00200102 20.0102 0.615257
60 6587 3.1855e+07 0.00229471 22.9471 0.600577 0.00500208 -0.00018524 0.00250867 3.1855e+07 0.00229471 22.9471 0.600577
120 6522 4.4612e+07 0.00324678 32.4678 0.588316 0.000266193 0.00317253 3.40622e-06 4.4612e+07 0.00324678 32.4678 0.588316
240 6378 5.29016e+07 0.00394472 39.4472 0.571496 0.000831189 0.00361826 1.96727e-05 5.29016e+07 0.00394472 39.4472 0.571496

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 2456 -3.86944e+06 -0.000712149 -7.12149 0.362378 0.00163033 -0.0010395 0.00287741 -3.86944e+06 -0.000712149 -7.12149 0.362378
10 2456 -2.98176e+06 -0.000548777 -5.48777 0.425896 0.00281526 -0.00111519 0.00532244 -2.98176e+06 -0.000548777 -5.48777 0.425896
20 2452 -2.71958e+06 -0.000501443 -5.01443 0.446166 0.00334453 -0.0012734 0.00248676 -2.71958e+06 -0.000501443 -5.01443 0.446166
30 2443 -2.29212e+06 -0.000424396 -4.24396 0.464183 0.00445357 -0.00140211 0.00382887 -2.29212e+06 -0.000424396 -4.24396 0.464183
60 2430 -4.13872e+06 -0.000770993 -7.70993 0.482305 -0.00264938 -0.00029445 0.000629326 -4.13872e+06 -0.000770993 -7.70993 0.482305
120 2407 -4.38475e+06 -0.000824281 -8.24281 0.491483 -0.000982382 -0.000647547 4.60109e-05 -4.38475e+06 -0.000824281 -8.24281 0.491483
240 2358 -7.64731e+06 -0.00146702 -14.6702 0.497031 -0.00383772 -0.000520485 0.000305672 -7.64731e+06 -0.00146702 -14.6702 0.497031

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 398 606933 0.00305995 30.5995
09:20 318 495009 0.00389279 38.9279
09:40 273 484104 0.000772004 7.72004
10:00 247 550518 0.00369015 36.9015
10:20 189 353889 0.00465926 46.5926
10:40 227 467756 0.00388842 38.8842
11:00 345 684393 0.00164768 16.4768
11:20 289 523673 0.00445481 44.5481
11:40 249 407865 0.00313476 31.3476
12:00 208 404498 0.00333808 33.3808
12:20 204 390056 0.00274023 27.4023
12:40 229 454938 0.00359868 35.9868
13:00 245 521494 0.00426567 42.6567
13:20 267 436740 0.0119352 119.352
13:40 258 482640 0.00899739 89.9739
14:00 253 429928 0.00321569 32.1569
14:20 184 264887 0.00732647 73.2647
14:40 158 316863 0.0122954 122.954
15:00 241 444301 0.00210858 21.0858
15:20 0 0

Z-Score-Quality Scatter + Regression

Model Buy/Sell Scatter + Regression