KOSPI Backtest Dashboard

run_id: 20260320T091938Z_userreq_toss_full_tabm_256_alpha101_20260320_target350_z1p44
generated_at_utc: 2026-03-20T09:20:05.180852+00:00

Top KPI

trade_return_per_trade_bp = (total_pnl_final / total_trade_notional) * 10000
metric value
total_pnl_final 26.454M
total_trade_notional 14306.431M
daily_trade_notional 348.937M
total_fee 14.306M
mdd_pnl -7.743M
alpha_vs_dynamic_notional_beta_pnl_final 21.553M
alpha_vs_avg_hold_notional_beta_pnl_final 20.426M
dynamic_alpha_mdd_pnl -2.943M
avg_hold_alpha_mdd_pnl -1.655M
dynamic_alpha_sharpe_annualized 9.42171
avg_hold_alpha_sharpe_annualized 10.5401
time_avg_total_notional_position_usdt 54.117M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 54.117M
trade_return_per_trade_bp 18.49bp
roi_avg_notional_position_pct 48.88%
roi_peak_notional_position_pct 26.31%
num_trades 5,875
high_mc_trade_notional 0.000M
high_mc_sharpe_annualized
high_mc_trade_return_per_trade_bp
low_mc_trade_notional 14306.431M
low_mc_sharpe_annualized 10.7926
low_mc_trade_return_per_trade_bp 18.49bp
sharpe_annualized 10.7926

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 1.44
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 26.454M
total_pnl_peak 27.141M
dynamic_notional_beta_pnl_final 4.902M
alpha_vs_dynamic_notional_beta_pnl_final 21.553M
avg_hold_notional_beta_pnl_final 6.028M
alpha_vs_avg_hold_notional_beta_pnl_final 20.426M
high_mc_dynamic_notional_beta_pnl_final 0.000M
low_mc_dynamic_notional_beta_pnl_final 4.902M
high_mc_avg_hold_notional_beta_pnl_final 0.000M
low_mc_avg_hold_notional_beta_pnl_final 6.028M
high_mc_alpha_vs_dynamic_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_dynamic_notional_beta_pnl_final 21.553M
high_mc_alpha_vs_avg_hold_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_avg_hold_notional_beta_pnl_final 20.426M
dynamic_alpha_mdd_pnl -2.943M
dynamic_alpha_sharpe_annualized 9.42171
avg_hold_alpha_mdd_pnl -1.655M
avg_hold_alpha_sharpe_annualized 10.5401
num_trades 5,875
total_traded_amount_sum 9.49425e+06
total_trade_notional 14306.431M
daily_trade_notional 348.937M
trading_day_count 41
total_fee 14.306M
time_avg_total_notional_position_usdt 54.117M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 54.117M
time_avg_net_position_usdt 54.117M
time_avg_abs_net_position_usdt 54.117M
peak_abs_net_position_usdt 1.00566e+08
roi_avg_notional_position_pct 48.88%
roi_peak_notional_position_pct 26.31%
mdd_pnl -7.743M
sharpe_annualized 10.7926
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 26.454M
low_mc_trade_notional 14306.431M
low_mc_num_trades 5,875
low_mc_sharpe_annualized 10.7926
low_mc_trade_return_per_trade_bp 18.49bp
model_zscore_pnl_final 4609.596M
hedge_zscore_pnl_final 169.497M
force_zscore_pnl_final 0.000M
funding_fee_pnl_final 0.000M
funding_event_count 0
model_win_rate_20m 60.10%
hedge_win_rate_20m 42.71%
force_win_rate_20m
model_win_rate_btc_adj_20m 60.10%
hedge_win_rate_btc_adj_20m 42.71%
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 2.64542e+07 1.43064e+10 5875 10.7926 18.4911
high 0 0 0
low 2.64542e+07 1.43064e+10 5875 10.7926 18.4911

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 5010 1.43117e+07 0.00117348 11.7348 0.56008 0.00339239 -0.000105183 0.00363037 1.43117e+07 0.00117348 11.7348 0.56008
10 5010 1.73195e+07 0.0014201 14.201 0.593613 0.00253691 0.000445048 0.00123007 1.73195e+07 0.0014201 14.201 0.593613
20 5000 1.98135e+07 0.00162792 16.2792 0.601 0.00430046 7.41732e-06 0.00207063 1.98135e+07 0.00162792 16.2792 0.601
30 4994 2.35327e+07 0.00193588 19.3588 0.606528 0.00221494 0.00109553 0.000415334 2.35327e+07 0.00193588 19.3588 0.606528
60 4964 2.50637e+07 0.00207454 20.7454 0.585818 0.00306353 0.000958514 0.000371418 2.50637e+07 0.00207454 20.7454 0.585818
120 4939 2.49102e+07 0.00207258 20.7258 0.575218 0.00212057 0.00119783 9.81485e-05 2.49102e+07 0.00207258 20.7258 0.575218
240 4794 2.68889e+07 0.00230376 23.0376 0.557781 -0.00497127 0.00416841 0.000325731 2.68889e+07 0.00230376 23.0376 0.557781

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 865 -2.29878e+06 -0.00108925 -10.8925 0.316763 -0.00225344 -0.000934741 0.00116682 -2.29878e+06 -0.00108925 -10.8925 0.316763
10 865 -1.91513e+06 -0.000907462 -9.07462 0.382659 -0.0032197 -0.000692626 0.00201017 -1.91513e+06 -0.000907462 -9.07462 0.382659
20 864 -2.05368e+06 -0.000973224 -9.73224 0.427083 0.00141299 -0.00109354 0.000147993 -2.05368e+06 -0.000973224 -9.73224 0.427083
30 859 -1.96564e+06 -0.000937036 -9.37036 0.443539 -0.00518078 -0.000432975 0.00151374 -1.96564e+06 -0.000937036 -9.37036 0.443539
60 850 -1.96149e+06 -0.000945213 -9.45213 0.449412 -0.0119139 2.98872e-05 0.0040818 -1.96149e+06 -0.000945213 -9.45213 0.449412
120 837 -1.57892e+06 -0.000771632 -7.71632 0.470729 -0.0211764 0.000968912 0.00794207 -1.57892e+06 -0.000771632 -7.71632 0.470729
240 810 -1.23472e+06 -0.000623728 -6.23728 0.480247 -0.0314637 0.00198253 0.0085656 -1.23472e+06 -0.000623728 -6.23728 0.480247

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 221 184255 0.00354459 35.4459
09:20 213 278300 0.00463045 46.3045
09:40 244 353431 0.0036508 36.508
10:00 219 289786 0.00261204 26.1204
10:20 296 444907 0.00286692 28.6692
10:40 223 365824 0.002284 22.84
11:00 186 293558 0.000346224 3.46224
11:20 143 231696 0.00419022 41.9022
11:40 133 197213 0.00448301 44.8301
12:00 119 214801 0.00480333 48.0333
12:20 107 202507 0.00548515 54.8515
12:40 120 210348 0.00317939 31.7939
13:00 120 261897 0.003744 37.44
13:20 122 220891 0.00786299 78.6299
13:40 56 81472 0.00921356 92.1356
14:00 53 112139 0.0147477 147.477
14:20 62 124504 0.010356 103.56
14:40 114 217319 0.00353395 35.3395
15:00 217 483030 0.00394505 39.4505
15:20 0 0

Z-Score-Quality Scatter + Regression

Model Buy/Sell Scatter + Regression