KOSPI Backtest Dashboard

run_id: 20260321T111227Z_userreq_toss_tabm_enh129_ceonly_20260320_target350_z1
generated_at_utc: 2026-03-21T11:15:32.916902+00:00

Top KPI

trade_return_per_trade_bp = (total_pnl_final / total_trade_notional) * 10000
metric value
total_pnl_final 36.711M
total_trade_notional 29031.962M
daily_trade_notional 708.097M
total_fee 29.032M
mdd_pnl -10.536M
alpha_vs_dynamic_notional_beta_pnl_final 24.664M
alpha_vs_avg_hold_notional_beta_pnl_final 25.847M
dynamic_alpha_mdd_pnl -1.817M
avg_hold_alpha_mdd_pnl -1.824M
dynamic_alpha_sharpe_annualized 10.3416
avg_hold_alpha_sharpe_annualized 10.8858
time_avg_total_notional_position_usdt 97.531M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 97.531M
trade_return_per_trade_bp 12.65bp
roi_avg_notional_position_pct 37.64%
roi_peak_notional_position_pct 34.77%
num_trades 15,053
high_mc_trade_notional 0.000M
high_mc_sharpe_annualized
high_mc_trade_return_per_trade_bp
low_mc_trade_notional 29031.962M
low_mc_sharpe_annualized 9.91758
low_mc_trade_return_per_trade_bp 12.65bp
sharpe_annualized 9.91758

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
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 36.711M
total_pnl_peak 38.146M
dynamic_notional_beta_pnl_final 12.047M
alpha_vs_dynamic_notional_beta_pnl_final 24.664M
avg_hold_notional_beta_pnl_final 10.864M
alpha_vs_avg_hold_notional_beta_pnl_final 25.847M
high_mc_dynamic_notional_beta_pnl_final 0.000M
low_mc_dynamic_notional_beta_pnl_final 12.047M
high_mc_avg_hold_notional_beta_pnl_final 0.000M
low_mc_avg_hold_notional_beta_pnl_final 10.864M
high_mc_alpha_vs_dynamic_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_dynamic_notional_beta_pnl_final 24.664M
high_mc_alpha_vs_avg_hold_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_avg_hold_notional_beta_pnl_final 25.847M
dynamic_alpha_mdd_pnl -1.817M
dynamic_alpha_sharpe_annualized 10.3416
avg_hold_alpha_mdd_pnl -1.824M
avg_hold_alpha_sharpe_annualized 10.8858
num_trades 15,053
total_traded_amount_sum 1.53132e+07
total_trade_notional 29031.962M
daily_trade_notional 708.097M
trading_day_count 41
total_fee 29.032M
time_avg_total_notional_position_usdt 97.531M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 97.531M
time_avg_net_position_usdt 97.531M
time_avg_abs_net_position_usdt 97.531M
peak_abs_net_position_usdt 1.05593e+08
roi_avg_notional_position_pct 37.64%
roi_peak_notional_position_pct 34.77%
mdd_pnl -10.536M
sharpe_annualized 9.91758
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 36.711M
low_mc_trade_notional 29031.962M
low_mc_num_trades 15,053
low_mc_sharpe_annualized 9.91758
low_mc_trade_return_per_trade_bp 12.65bp
model_zscore_pnl_final 12931.973M
hedge_zscore_pnl_final 17.062M
force_zscore_pnl_final 0.000M
funding_fee_pnl_final 0.000M
funding_event_count 0
model_win_rate_20m 52.90%
hedge_win_rate_20m 35.21%
force_win_rate_20m
model_win_rate_btc_adj_20m 52.90%
hedge_win_rate_btc_adj_20m 35.21%
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.6711e+07 2.9032e+10 15053 9.91758 12.645
high 0 0 0
low 3.6711e+07 2.9032e+10 15053 9.91758 12.645

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 14982 9.81083e+06 0.000339727 3.39727 0.50247 0.00170077 -0.000473173 0.00247758 9.81083e+06 0.000339727 3.39727 0.50247
10 14982 1.34249e+07 0.000464873 4.64873 0.520892 0.00200234 -0.000510954 0.00234199 1.34249e+07 0.000464873 4.64873 0.520892
20 14971 1.61476e+07 0.000559583 5.59583 0.528956 0.00227302 -0.000576865 0.00176103 1.61476e+07 0.000559583 5.59583 0.528956
30 14953 1.88913e+07 0.000655351 6.55351 0.535946 0.00234023 -0.000474545 0.00112942 1.88913e+07 0.000655351 6.55351 0.535946
60 14949 2.33378e+07 0.000809641 8.09641 0.534618 0.00301961 -0.000611667 0.00115903 2.33378e+07 0.000809641 8.09641 0.534618
120 14935 2.86168e+07 0.000993567 9.93567 0.53311 0.00411325 -0.000775137 0.00110278 2.86168e+07 0.000993567 9.93567 0.53311
240 14876 3.55321e+07 0.00123707 12.3707 0.52662 0.00482905 -0.000877212 0.000767052 3.55321e+07 0.00123707 12.3707 0.52662

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 71 -149241 -0.000972786 -9.72786 0.225352 -0.0013215 -0.000793083 0.00419941 -149241 -0.000972786 -9.72786 0.225352
10 71 -142556 -0.000929212 -9.29212 0.28169 -0.00311544 -0.000556155 0.0211093 -142556 -0.000929212 -9.29212 0.28169
20 71 -177855 -0.0011593 -11.593 0.352113 0.00024078 -0.000997498 4.24694e-05 -177855 -0.0011593 -11.593 0.352113
30 71 -173168 -0.00112875 -11.2875 0.408451 -0.000711426 -0.000869655 0.000339356 -173168 -0.00112875 -11.2875 0.408451
60 71 -259183 -0.00168941 -16.8941 0.394366 0.0116104 -0.00246407 0.0345143 -259183 -0.00168941 -16.8941 0.394366
120 71 -594526 -0.00387526 -38.7526 0.408451 0.0113972 -0.00444388 0.0100329 -594526 -0.00387526 -38.7526 0.408451
240 71 -600512 -0.00391427 -39.1427 0.43662 -0.0192163 -0.000891011 0.0104257 -600512 -0.00391427 -39.1427 0.43662

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 655 669393 0.0045275 45.275
09:20 647 512198 0.0014085 14.085
09:40 563 501405 0.00120986 12.0986
10:00 474 476841 0.000135376 1.35376
10:20 426 339018 0.000396481 3.96481
10:40 406 369350 0.000303416 3.03416
11:00 525 578767 0.00174072 17.4072
11:20 448 543713 0.00213277 21.3277
11:40 536 579908 0.00239518 23.9518
12:00 465 568484 0.00239382 23.9382
12:20 401 454222 0.0020763 20.763
12:40 408 490616 0.00161629 16.1629
13:00 390 578010 0.000448332 4.48332
13:20 423 328135 0.004857 48.57
13:40 276 112915 0.0013538 13.538
14:00 251 85533 0.00471041 47.1041
14:20 258 124841 0.00445818 44.5818
14:40 241 108313 0.00812061 81.2061
15:00 365 245898 0.00383438 38.3438
15:20 0 0

Z-Score-Quality Scatter + Regression

Model Buy/Sell Scatter + Regression