KOSPI Backtest Dashboard

run_id: 20260321T111721Z_userreq_toss_tabm_enh129_ex200_20260321_target350_z3p24
generated_at_utc: 2026-03-21T11:17:52.420121+00:00

Top KPI

trade_return_per_trade_bp = (total_pnl_final / total_trade_notional) * 10000
metric value
total_pnl_final 38.613M
total_trade_notional 14343.966M
daily_trade_notional 349.853M
total_fee 14.344M
mdd_pnl -4.277M
alpha_vs_dynamic_notional_beta_pnl_final 32.159M
alpha_vs_avg_hold_notional_beta_pnl_final 33.916M
dynamic_alpha_mdd_pnl -1.770M
avg_hold_alpha_mdd_pnl -2.229M
dynamic_alpha_sharpe_annualized 13.2558
avg_hold_alpha_sharpe_annualized 13.2762
time_avg_total_notional_position_usdt 60.261M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 60.261M
trade_return_per_trade_bp 26.92bp
roi_avg_notional_position_pct 64.08%
roi_peak_notional_position_pct 38.27%
num_trades 5,857
high_mc_trade_notional 0.000M
high_mc_sharpe_annualized
high_mc_trade_return_per_trade_bp
low_mc_trade_notional 14343.966M
low_mc_sharpe_annualized 13.0116
low_mc_trade_return_per_trade_bp 26.92bp
sharpe_annualized 13.0116

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 3.24
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 38.613M
total_pnl_peak 38.727M
dynamic_notional_beta_pnl_final 6.453M
alpha_vs_dynamic_notional_beta_pnl_final 32.159M
avg_hold_notional_beta_pnl_final 4.697M
alpha_vs_avg_hold_notional_beta_pnl_final 33.916M
high_mc_dynamic_notional_beta_pnl_final 0.000M
low_mc_dynamic_notional_beta_pnl_final 6.453M
high_mc_avg_hold_notional_beta_pnl_final 0.000M
low_mc_avg_hold_notional_beta_pnl_final 4.697M
high_mc_alpha_vs_dynamic_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_dynamic_notional_beta_pnl_final 32.159M
high_mc_alpha_vs_avg_hold_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_avg_hold_notional_beta_pnl_final 33.916M
dynamic_alpha_mdd_pnl -1.770M
dynamic_alpha_sharpe_annualized 13.2558
avg_hold_alpha_mdd_pnl -2.229M
avg_hold_alpha_sharpe_annualized 13.2762
num_trades 5,857
total_traded_amount_sum 2.53624e+07
total_trade_notional 14343.966M
daily_trade_notional 349.853M
trading_day_count 41
total_fee 14.344M
time_avg_total_notional_position_usdt 60.261M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 60.261M
time_avg_net_position_usdt 60.261M
time_avg_abs_net_position_usdt 60.261M
peak_abs_net_position_usdt 1.00882e+08
roi_avg_notional_position_pct 64.08%
roi_peak_notional_position_pct 38.27%
mdd_pnl -4.277M
sharpe_annualized 13.0116
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 38.613M
low_mc_trade_notional 14343.966M
low_mc_num_trades 5,857
low_mc_sharpe_annualized 13.0116
low_mc_trade_return_per_trade_bp 26.92bp
model_zscore_pnl_final 5349.306M
hedge_zscore_pnl_final 724.196M
force_zscore_pnl_final 0.000M
funding_fee_pnl_final 0.000M
funding_event_count 0
model_win_rate_20m 59.88%
hedge_win_rate_20m 42.84%
force_win_rate_20m
model_win_rate_btc_adj_20m 59.88%
hedge_win_rate_btc_adj_20m 42.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.86125e+07 1.4344e+10 5857 13.0116 26.919
high 0 0 0
low 3.86125e+07 1.4344e+10 5857 13.0116 26.919

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 3867 1.69939e+07 0.00180936 18.0936 0.576933 0.00158494 0.000797093 0.000455368 1.69939e+07 0.00180936 18.0936 0.576933
10 3867 2.13253e+07 0.00227052 22.7052 0.595035 0.0043775 -0.000378015 0.00263876 2.13253e+07 0.00227052 22.7052 0.595035
20 3866 2.35326e+07 0.00250621 25.0621 0.59881 0.0056158 -0.000853965 0.00243155 2.35326e+07 0.00250621 25.0621 0.59881
30 3866 2.58941e+07 0.00275771 27.5771 0.598034 0.00635007 -0.000916174 0.00224995 2.58941e+07 0.00275771 27.5771 0.598034
60 3860 3.32936e+07 0.0035514 35.514 0.595596 0.00817857 -0.00118354 0.0023096 3.32936e+07 0.0035514 35.514 0.595596
120 3852 3.77695e+07 0.00403739 40.3739 0.585929 0.00744638 -0.000297183 0.00122023 3.77695e+07 0.00403739 40.3739 0.585929
240 3848 4.39972e+07 0.00470813 47.0813 0.56211 0.0121096 -0.00238204 0.00187943 4.39972e+07 0.00470813 47.0813 0.56211

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 1990 -4.19929e+06 -0.000848045 -8.48045 0.355276 0.00311983 -0.00132064 0.00381951 -4.19929e+06 -0.000848045 -8.48045 0.355276
10 1990 -3.56628e+06 -0.000720208 -7.20208 0.393467 0.00129702 -0.000941437 0.000455167 -3.56628e+06 -0.000720208 -7.20208 0.393467
20 1989 -4.32048e+06 -0.000872966 -8.72966 0.428356 0.000521598 -0.00102576 2.59265e-05 -4.32048e+06 -0.000872966 -8.72966 0.428356
30 1989 -5.13918e+06 -0.00103839 -10.3839 0.455505 -0.00269263 -0.000719289 0.000377275 -5.13918e+06 -0.00103839 -10.3839 0.455505
60 1988 -6.59153e+06 -0.00133253 -13.3253 0.464789 0.00219463 -0.00172127 0.00020539 -6.59153e+06 -0.00133253 -13.3253 0.464789
120 1988 -5.09309e+06 -0.00102961 -10.2961 0.464789 0.00932081 -0.00248905 0.00247555 -5.09309e+06 -0.00102961 -10.2961 0.464789
240 1984 -1.06488e+07 -0.00215799 -21.5799 0.486895 0.00413103 -0.00268376 0.000187332 -1.06488e+07 -0.00215799 -21.5799 0.486895

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 287 595424 0.010096 100.96
09:20 212 481992 0.00511053 51.1053
09:40 184 675229 0.000704705 7.04705
10:00 157 680838 0.00360303 36.0303
10:20 144 593284 0.00303358 30.3358
10:40 121 490498 0.0039278 39.278
11:00 147 600998 0.00151291 15.1291
11:20 141 857977 0.00544262 54.4262
11:40 120 781674 0.00616386 61.6386
12:00 145 951040 0.00535161 53.5161
12:20 153 1.00526e+06 0.00407476 40.7476
12:40 198 1.07769e+06 0.00317406 31.7406
13:00 240 1.01993e+06 0.00392669 39.2669
13:20 200 789007 0.00464636 46.4636
13:40 135 503902 0.00216586 21.6586
14:00 105 490485 0.00204263 20.4263
14:20 97 359357 -0.00120803 -12.0803
14:40 86 405292 0.00711109 71.1109
15:00 113 332308 0.0180682 180.682
15:20 0 0

Z-Score-Quality Scatter + Regression

Model Buy/Sell Scatter + Regression