KOSPI Backtest Dashboard

run_id: 20260322T114921Z_userreq_toss_tabm3seed_parquet_20260321_tossenriched_target350_z2p5
generated_at_utc: 2026-03-22T11:49:41.301694+00:00

Top KPI

trade_return_per_trade_bp = (total_pnl_final / total_trade_notional) * 10000
metric value
total_pnl_final 43.156M
total_trade_notional 18526.825M
daily_trade_notional 451.874M
total_fee 18.527M
mdd_pnl -7.763M
alpha_vs_dynamic_notional_beta_pnl_final 32.679M
alpha_vs_avg_hold_notional_beta_pnl_final 32.720M
dynamic_alpha_mdd_pnl -1.928M
avg_hold_alpha_mdd_pnl -1.845M
dynamic_alpha_sharpe_annualized 11.4851
avg_hold_alpha_sharpe_annualized 11.2185
time_avg_total_notional_position_usdt 93.687M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 93.687M
trade_return_per_trade_bp 23.29bp
roi_avg_notional_position_pct 46.06%
roi_peak_notional_position_pct 41.75%
num_trades 8,589
high_mc_trade_notional 0.000M
high_mc_sharpe_annualized
high_mc_trade_return_per_trade_bp
low_mc_trade_notional 18526.825M
low_mc_sharpe_annualized 12.1986
low_mc_trade_return_per_trade_bp 23.29bp
sharpe_annualized 12.1986

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 43.156M
total_pnl_peak 43.396M
dynamic_notional_beta_pnl_final 10.477M
alpha_vs_dynamic_notional_beta_pnl_final 32.679M
avg_hold_notional_beta_pnl_final 10.436M
alpha_vs_avg_hold_notional_beta_pnl_final 32.720M
high_mc_dynamic_notional_beta_pnl_final 0.000M
low_mc_dynamic_notional_beta_pnl_final 10.477M
high_mc_avg_hold_notional_beta_pnl_final 0.000M
low_mc_avg_hold_notional_beta_pnl_final 10.436M
high_mc_alpha_vs_dynamic_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_dynamic_notional_beta_pnl_final 32.679M
high_mc_alpha_vs_avg_hold_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_avg_hold_notional_beta_pnl_final 32.720M
dynamic_alpha_mdd_pnl -1.928M
dynamic_alpha_sharpe_annualized 11.4851
avg_hold_alpha_mdd_pnl -1.845M
avg_hold_alpha_sharpe_annualized 11.2185
num_trades 8,589
total_traded_amount_sum 1.35836e+07
total_trade_notional 18526.825M
daily_trade_notional 451.874M
trading_day_count 41
total_fee 18.527M
time_avg_total_notional_position_usdt 93.687M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 93.687M
time_avg_net_position_usdt 93.687M
time_avg_abs_net_position_usdt 93.687M
peak_abs_net_position_usdt 1.03371e+08
roi_avg_notional_position_pct 46.06%
roi_peak_notional_position_pct 41.75%
mdd_pnl -7.763M
sharpe_annualized 12.1986
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 43.156M
low_mc_trade_notional 18526.825M
low_mc_num_trades 8,589
low_mc_sharpe_annualized 12.1986
low_mc_trade_return_per_trade_bp 23.29bp
model_zscore_pnl_final 5913.383M
hedge_zscore_pnl_final 842.741M
force_zscore_pnl_final 0.000M
funding_fee_pnl_final 0.000M
funding_event_count 0
model_win_rate_20m 62.01%
hedge_win_rate_20m 43.23%
force_win_rate_20m
model_win_rate_btc_adj_20m 62.01%
hedge_win_rate_btc_adj_20m 43.23%
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.31558e+07 1.85268e+10 8589 12.1986 23.2937
high 0 0 0
low 4.31558e+07 1.85268e+10 8589 12.1986 23.2937

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 6269 1.68947e+07 0.00127081 12.7081 0.591641 0.00113349 0.000635586 0.000331535 1.68947e+07 0.00127081 12.7081 0.591641
10 6269 2.3143e+07 0.00174081 17.4081 0.61828 0.00367862 -0.000128535 0.00276202 2.3143e+07 0.00174081 17.4081 0.61828
20 6265 2.68289e+07 0.00201922 20.1922 0.620112 0.00262646 0.000580564 0.000948065 2.68289e+07 0.00201922 20.1922 0.620112
30 6259 2.63753e+07 0.00198659 19.8659 0.616872 0.00238021 0.000713435 0.000576152 2.63753e+07 0.00198659 19.8659 0.616872
60 6248 2.80758e+07 0.00211789 21.1789 0.598752 0.00165965 0.0011792 0.00017192 2.80758e+07 0.00211789 21.1789 0.598752
120 6234 4.37819e+07 0.0033097 33.097 0.597369 0.00377453 0.0017339 0.000356838 4.37819e+07 0.0033097 33.097 0.597369
240 6201 4.4472e+07 0.00338247 33.8247 0.574907 0.0040154 0.00183068 0.000237494 4.4472e+07 0.00338247 33.8247 0.574907

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 2320 -3.42334e+06 -0.000654251 -6.54251 0.375 0.00115445 -0.000828665 0.000798578 -3.42334e+06 -0.000654251 -6.54251 0.375
10 2320 -3.41822e+06 -0.000653273 -6.53273 0.415948 -4.75884e-05 -0.000649432 9.55209e-07 -3.41822e+06 -0.000653273 -6.53273 0.415948
20 2318 -4.26367e+06 -0.000815638 -8.15638 0.432269 0.00123135 -0.000996126 0.000323637 -4.26367e+06 -0.000815638 -8.15638 0.432269
30 2314 -3.90893e+06 -0.000749249 -7.49249 0.445549 0.00532665 -0.00155847 0.00366117 -3.90893e+06 -0.000749249 -7.49249 0.445549
60 2308 -5.76346e+06 -0.00110794 -11.0794 0.469671 0.00384087 -0.001716 0.000853715 -5.76346e+06 -0.00110794 -11.0794 0.469671
120 2300 -4.11092e+06 -0.00079334 -7.9334 0.479565 0.00924658 -0.00226302 0.00278881 -4.11092e+06 -0.00079334 -7.9334 0.479565
240 2291 -2.64528e+06 -0.000512775 -5.12775 0.495417 0.00440936 -0.00119864 0.000281946 -2.64528e+06 -0.000512775 -5.12775 0.495417

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 340 538678 0.00504843 50.4843
09:20 273 392286 0.00458393 45.8393
09:40 258 405749 -0.00104851 -10.4851
10:00 282 513413 0.00350386 35.0386
10:20 235 352191 0.00174646 17.4646
10:40 228 404787 0.00224976 22.4976
11:00 336 615811 0.00248179 24.8179
11:20 256 449656 0.00457002 45.7002
11:40 205 379021 0.0035008 35.008
12:00 216 302890 0.00408499 40.8499
12:20 211 412624 0.00326526 32.6526
12:40 236 403924 0.00378027 37.8027
13:00 254 352253 0.00353311 35.3311
13:20 311 441846 0.0121816 121.816
13:40 236 224222 0.0181946 181.946
14:00 210 245763 0.00478292 47.8292
14:20 166 109125 0.00127684 12.7684
14:40 138 118016 0.00568542 56.8542
15:00 167 153502 0.00480194 48.0194
15:20 0 0

Z-Score-Quality Scatter + Regression

Model Buy/Sell Scatter + Regression