KOSPI Backtest Dashboard

run_id: 20260322T120900Z_userreq_toss_ultimate_v2_parquet_20260322_tossenriched_z2p80
generated_at_utc: 2026-03-22T12:13:16.727594+00:00

Top KPI

trade_return_per_trade_bp = (total_pnl_final / total_trade_notional) * 10000
metric value
total_pnl_final 39.463M
total_trade_notional 13448.991M
daily_trade_notional 328.024M
total_fee 13.449M
mdd_pnl -5.602M
alpha_vs_dynamic_notional_beta_pnl_final 34.870M
alpha_vs_avg_hold_notional_beta_pnl_final 32.997M
dynamic_alpha_mdd_pnl -2.493M
avg_hold_alpha_mdd_pnl -2.147M
dynamic_alpha_sharpe_annualized 12.2899
avg_hold_alpha_sharpe_annualized 11.9337
time_avg_total_notional_position_usdt 58.043M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 58.043M
trade_return_per_trade_bp 29.34bp
roi_avg_notional_position_pct 67.99%
roi_peak_notional_position_pct 38.87%
num_trades 5,650
high_mc_trade_notional 0.000M
high_mc_sharpe_annualized
high_mc_trade_return_per_trade_bp
low_mc_trade_notional 13448.991M
low_mc_sharpe_annualized 12.6716
low_mc_trade_return_per_trade_bp 29.34bp
sharpe_annualized 12.6716

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.8
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.463M
total_pnl_peak 39.619M
dynamic_notional_beta_pnl_final 4.592M
alpha_vs_dynamic_notional_beta_pnl_final 34.870M
avg_hold_notional_beta_pnl_final 6.466M
alpha_vs_avg_hold_notional_beta_pnl_final 32.997M
high_mc_dynamic_notional_beta_pnl_final 0.000M
low_mc_dynamic_notional_beta_pnl_final 4.592M
high_mc_avg_hold_notional_beta_pnl_final 0.000M
low_mc_avg_hold_notional_beta_pnl_final 6.466M
high_mc_alpha_vs_dynamic_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_dynamic_notional_beta_pnl_final 34.870M
high_mc_alpha_vs_avg_hold_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_avg_hold_notional_beta_pnl_final 32.997M
dynamic_alpha_mdd_pnl -2.493M
dynamic_alpha_sharpe_annualized 12.2899
avg_hold_alpha_mdd_pnl -2.147M
avg_hold_alpha_sharpe_annualized 11.9337
num_trades 5,650
total_traded_amount_sum 1.07088e+07
total_trade_notional 13448.991M
daily_trade_notional 328.024M
trading_day_count 41
total_fee 13.449M
time_avg_total_notional_position_usdt 58.043M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 58.043M
time_avg_net_position_usdt 58.043M
time_avg_abs_net_position_usdt 58.043M
peak_abs_net_position_usdt 1.01531e+08
roi_avg_notional_position_pct 67.99%
roi_peak_notional_position_pct 38.87%
mdd_pnl -5.602M
sharpe_annualized 12.6716
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.463M
low_mc_trade_notional 13448.991M
low_mc_num_trades 5,650
low_mc_sharpe_annualized 12.6716
low_mc_trade_return_per_trade_bp 29.34bp
model_zscore_pnl_final 2027.622M
hedge_zscore_pnl_final 134.936M
force_zscore_pnl_final 0.000M
funding_fee_pnl_final 0.000M
funding_event_count 0
model_win_rate_20m 60.86%
hedge_win_rate_20m 47.84%
force_win_rate_20m
model_win_rate_btc_adj_20m 60.86%
hedge_win_rate_btc_adj_20m 47.84%
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.94628e+07 1.3449e+10 5650 12.6716 29.3425
high 0 0 0
low 3.94628e+07 1.3449e+10 5650 12.6716 29.3425

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 4239 1.44018e+07 0.0014336 14.336 0.588818 0.0080488 -0.000341574 0.00328089 1.44018e+07 0.0014336 14.336 0.588818
10 4239 1.95321e+07 0.00194429 19.4429 0.610757 0.0141411 -0.00113984 0.00771582 1.95321e+07 0.00194429 19.4429 0.610757
20 4233 2.24355e+07 0.00223665 22.3665 0.608552 0.0180894 -0.00172101 0.00914014 2.24355e+07 0.00223665 22.3665 0.608552
30 4231 2.44088e+07 0.00243459 24.3459 0.604349 0.0184899 -0.00160577 0.00781676 2.44088e+07 0.00243459 24.3459 0.604349
60 4217 2.40001e+07 0.00240165 24.0165 0.597344 0.0138541 -0.000541617 0.00258981 2.40001e+07 0.00240165 24.0165 0.597344
120 4140 3.95011e+07 0.0040303 40.303 0.588647 0.0142409 0.00113282 0.001091 3.95011e+07 0.0040303 40.303 0.588647
240 4076 4.31253e+07 0.00446908 44.6908 0.567223 0.0204695 0.000552168 0.00121941 4.31253e+07 0.00446908 44.6908 0.567223

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 1411 -1.56436e+06 -0.000459687 -4.59687 0.413182 0.00857728 -0.00080501 0.00840696 -1.56436e+06 -0.000459687 -4.59687 0.413182
10 1411 -1.33795e+06 -0.000393158 -3.93158 0.450744 0.00838482 -0.000743969 0.0051726 -1.33795e+06 -0.000393158 -3.93158 0.450744
20 1411 -1.73793e+06 -0.000510693 -5.10693 0.478384 0.0124066 -0.00103826 0.00395106 -1.73793e+06 -0.000510693 -5.10693 0.478384
30 1409 -2.58362e+06 -0.000760348 -7.60348 0.469127 0.0121231 -0.00129472 0.00256745 -2.58362e+06 -0.000760348 -7.60348 0.469127
60 1405 -4.33933e+06 -0.00128083 -12.8083 0.481851 -0.00673274 -0.00105336 0.000462019 -4.33933e+06 -0.00128083 -12.8083 0.481851
120 1395 -3.70463e+06 -0.00110169 -11.0169 0.490323 -4.87122e-05 -0.00118591 1.40117e-08 -3.70463e+06 -0.00110169 -11.0169 0.490323
240 1367 -6.5269e+06 -0.00198214 -19.8214 0.491587 0.00395092 -0.00229305 4.41652e-05 -6.5269e+06 -0.00198214 -19.8214 0.491587

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 205 394303 0.00811467 81.1467
09:20 158 292625 0.00537131 53.7131
09:40 106 241479 -0.00578752 -57.8752
10:00 110 214888 0.00458972 45.8972
10:20 102 187643 0.00306393 30.6393
10:40 106 243059 0.00184448 18.4448
11:00 152 313590 0.000216647 2.16647
11:20 132 253164 0.00609858 60.9858
11:40 93 197960 0.00432695 43.2695
12:00 110 279958 0.00454221 45.4221
12:20 112 293468 0.00577392 57.7392
12:40 126 231277 0.00191757 19.1757
13:00 155 260300 0.00318297 31.8297
13:20 300 521370 0.0172618 172.618
13:40 374 499851 0.00491477 49.1477
14:00 241 356790 0.0113415 113.415
14:20 161 262072 0.00432004 43.2004
14:40 81 138638 0.0050207 50.207
15:00 87 193938 0.00516427 51.6427
15:20 0 0

Z-Score-Quality Scatter + Regression

Model Buy/Sell Scatter + Regression