KOSPI Backtest Dashboard

run_id: 20260322T115350Z_userreq_toss_ft_trans_bins96_20260322_tossenriched_z2p9
generated_at_utc: 2026-03-22T11:55:25.232019+00:00

Top KPI

trade_return_per_trade_bp = (total_pnl_final / total_trade_notional) * 10000
metric value
total_pnl_final 41.665M
total_trade_notional 16188.350M
daily_trade_notional 394.838M
total_fee 16.188M
mdd_pnl -5.870M
alpha_vs_dynamic_notional_beta_pnl_final 34.784M
alpha_vs_avg_hold_notional_beta_pnl_final 33.225M
dynamic_alpha_mdd_pnl -2.164M
avg_hold_alpha_mdd_pnl -2.429M
dynamic_alpha_sharpe_annualized 12.3917
avg_hold_alpha_sharpe_annualized 11.8479
time_avg_total_notional_position_usdt 75.770M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 75.770M
trade_return_per_trade_bp 25.74bp
roi_avg_notional_position_pct 54.99%
roi_peak_notional_position_pct 40.88%
num_trades 6,853
high_mc_trade_notional 0.000M
high_mc_sharpe_annualized
high_mc_trade_return_per_trade_bp
low_mc_trade_notional 16188.350M
low_mc_sharpe_annualized 12.9931
low_mc_trade_return_per_trade_bp 25.74bp
sharpe_annualized 12.9931

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.9
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 41.665M
total_pnl_peak 41.701M
dynamic_notional_beta_pnl_final 6.881M
alpha_vs_dynamic_notional_beta_pnl_final 34.784M
avg_hold_notional_beta_pnl_final 8.440M
alpha_vs_avg_hold_notional_beta_pnl_final 33.225M
high_mc_dynamic_notional_beta_pnl_final 0.000M
low_mc_dynamic_notional_beta_pnl_final 6.881M
high_mc_avg_hold_notional_beta_pnl_final 0.000M
low_mc_avg_hold_notional_beta_pnl_final 8.440M
high_mc_alpha_vs_dynamic_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_dynamic_notional_beta_pnl_final 34.784M
high_mc_alpha_vs_avg_hold_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_avg_hold_notional_beta_pnl_final 33.225M
dynamic_alpha_mdd_pnl -2.164M
dynamic_alpha_sharpe_annualized 12.3917
avg_hold_alpha_mdd_pnl -2.429M
avg_hold_alpha_sharpe_annualized 11.8479
num_trades 6,853
total_traded_amount_sum 1.2904e+07
total_trade_notional 16188.350M
daily_trade_notional 394.838M
trading_day_count 41
total_fee 16.188M
time_avg_total_notional_position_usdt 75.770M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 75.770M
time_avg_net_position_usdt 75.770M
time_avg_abs_net_position_usdt 75.770M
peak_abs_net_position_usdt 1.01932e+08
roi_avg_notional_position_pct 54.99%
roi_peak_notional_position_pct 40.88%
mdd_pnl -5.870M
sharpe_annualized 12.9931
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 41.665M
low_mc_trade_notional 16188.350M
low_mc_num_trades 6,853
low_mc_sharpe_annualized 12.9931
low_mc_trade_return_per_trade_bp 25.74bp
model_zscore_pnl_final 5809.433M
hedge_zscore_pnl_final 1079.428M
force_zscore_pnl_final 0.000M
funding_fee_pnl_final 0.000M
funding_event_count 0
model_win_rate_20m 63.50%
hedge_win_rate_20m 43.95%
force_win_rate_20m
model_win_rate_btc_adj_20m 63.50%
hedge_win_rate_btc_adj_20m 43.95%
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.16649e+07 1.61884e+10 6853 12.9931 25.7376
high 0 0 0
low 4.16649e+07 1.61884e+10 6853 12.9931 25.7376

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 4665 1.66559e+07 0.00152534 15.2534 0.614791 0.00194361 0.000453096 0.00147976 1.66559e+07 0.00152534 15.2534 0.614791
10 4665 2.13366e+07 0.001954 19.54 0.631511 0.00315352 0.000154925 0.00296858 2.13366e+07 0.001954 19.54 0.631511
20 4657 2.46338e+07 0.00225969 22.5969 0.634958 0.00544657 -0.000742123 0.00595873 2.46338e+07 0.00225969 22.5969 0.634958
30 4655 2.50175e+07 0.00229594 22.9594 0.63072 0.00597739 -0.000960072 0.00567019 2.50175e+07 0.00229594 22.9594 0.63072
60 4641 2.68455e+07 0.00247103 24.7103 0.611075 0.00496361 -0.000164402 0.00207825 2.68455e+07 0.00247103 24.7103 0.611075
120 4593 4.21662e+07 0.00392441 39.2441 0.59656 -0.000166146 0.00392588 1.11598e-06 4.21662e+07 0.00392441 39.2441 0.59656
240 4515 5.10195e+07 0.00483213 48.3213 0.584718 0.00486919 0.0021845 0.000613228 5.10195e+07 0.00483213 48.3213 0.584718

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 2188 -3.81221e+06 -0.000723531 -7.23531 0.36426 0.00280405 -0.00130995 0.00968521 -3.81221e+06 -0.000723531 -7.23531 0.36426
10 2188 -3.6683e+06 -0.000696218 -6.96218 0.409963 0.00268547 -0.00124686 0.00543269 -3.6683e+06 -0.000696218 -6.96218 0.409963
20 2182 -4.26217e+06 -0.000811254 -8.11254 0.439505 0.0019032 -0.00122282 0.000840049 -4.26217e+06 -0.000811254 -8.11254 0.439505
30 2177 -4.29592e+06 -0.000819307 -8.19307 0.458429 0.00439548 -0.00169636 0.00401898 -4.29592e+06 -0.000819307 -8.19307 0.458429
60 2170 -6.47193e+06 -0.00123849 -12.3849 0.476959 -0.00814158 0.000326498 0.00509407 -6.47193e+06 -0.00123849 -12.3849 0.476959
120 2159 -5.54964e+06 -0.00106763 -10.6763 0.487263 -0.00599361 6.19717e-05 0.00161082 -5.54964e+06 -0.00106763 -10.6763 0.487263
240 2113 -9.62288e+06 -0.00189145 -18.9145 0.481306 -0.012903 0.000661539 0.00336144 -9.62288e+06 -0.00189145 -18.9145 0.481306

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 299 557016 0.00448087 44.8087
09:20 279 479363 0.00528836 52.8836
09:40 195 445670 -0.000289769 -2.89769
10:00 188 352066 0.0043644 43.644
10:20 163 337209 0.00307852 30.7852
10:40 149 301412 0.00330557 33.0557
11:00 186 429999 0.000772933 7.72933
11:20 183 367463 0.00625443 62.5443
11:40 142 224545 0.00561614 56.1614
12:00 151 340271 0.00441599 44.1599
12:20 141 237330 0.00382061 38.2061
12:40 150 286658 0.00459551 45.9551
13:00 187 328265 0.00355436 35.5436
13:20 235 418755 0.0107417 107.417
13:40 214 374812 0.00654658 65.4658
14:00 196 299917 0.00591007 59.1007
14:20 203 272958 0.00752767 75.2767
14:40 103 201052 0.00988945 98.8945
15:00 159 220264 0.00154937 15.4937
15:20 0 0

Z-Score-Quality Scatter + Regression

Model Buy/Sell Scatter + Regression