KOSPI Backtest Dashboard

run_id: 20260321T111227Z_userreq_toss_tabm_enh129_ceonly_20260320_target350_z1p5
generated_at_utc: 2026-03-21T11:16:24.154150+00:00

Top KPI

trade_return_per_trade_bp = (total_pnl_final / total_trade_notional) * 10000
metric value
total_pnl_final 34.205M
total_trade_notional 18033.325M
daily_trade_notional 439.837M
total_fee 18.033M
mdd_pnl -10.908M
alpha_vs_dynamic_notional_beta_pnl_final 22.360M
alpha_vs_avg_hold_notional_beta_pnl_final 23.268M
dynamic_alpha_mdd_pnl -2.122M
avg_hold_alpha_mdd_pnl -2.162M
dynamic_alpha_sharpe_annualized 9.73545
avg_hold_alpha_sharpe_annualized 10.1446
time_avg_total_notional_position_usdt 98.184M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 98.184M
trade_return_per_trade_bp 18.97bp
roi_avg_notional_position_pct 34.84%
roi_peak_notional_position_pct 32.35%
num_trades 10,120
high_mc_trade_notional 0.000M
high_mc_sharpe_annualized
high_mc_trade_return_per_trade_bp
low_mc_trade_notional 18033.325M
low_mc_sharpe_annualized 8.52734
low_mc_trade_return_per_trade_bp 18.97bp
sharpe_annualized 8.52734

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.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 34.205M
total_pnl_peak 36.170M
dynamic_notional_beta_pnl_final 11.845M
alpha_vs_dynamic_notional_beta_pnl_final 22.360M
avg_hold_notional_beta_pnl_final 10.937M
alpha_vs_avg_hold_notional_beta_pnl_final 23.268M
high_mc_dynamic_notional_beta_pnl_final 0.000M
low_mc_dynamic_notional_beta_pnl_final 11.845M
high_mc_avg_hold_notional_beta_pnl_final 0.000M
low_mc_avg_hold_notional_beta_pnl_final 10.937M
high_mc_alpha_vs_dynamic_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_dynamic_notional_beta_pnl_final 22.360M
high_mc_alpha_vs_avg_hold_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_avg_hold_notional_beta_pnl_final 23.268M
dynamic_alpha_mdd_pnl -2.122M
dynamic_alpha_sharpe_annualized 9.73545
avg_hold_alpha_mdd_pnl -2.162M
avg_hold_alpha_sharpe_annualized 10.1446
num_trades 10,120
total_traded_amount_sum 9.40097e+06
total_trade_notional 18033.325M
daily_trade_notional 439.837M
trading_day_count 41
total_fee 18.033M
time_avg_total_notional_position_usdt 98.184M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 98.184M
time_avg_net_position_usdt 98.184M
time_avg_abs_net_position_usdt 98.184M
peak_abs_net_position_usdt 1.05729e+08
roi_avg_notional_position_pct 34.84%
roi_peak_notional_position_pct 32.35%
mdd_pnl -10.908M
sharpe_annualized 8.52734
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 34.205M
low_mc_trade_notional 18033.325M
low_mc_num_trades 10,120
low_mc_sharpe_annualized 8.52734
low_mc_trade_return_per_trade_bp 18.97bp
model_zscore_pnl_final 8499.620M
hedge_zscore_pnl_final 219.407M
force_zscore_pnl_final 0.000M
funding_fee_pnl_final 0.000M
funding_event_count 0
model_win_rate_20m 53.97%
hedge_win_rate_20m 43.01%
force_win_rate_20m
model_win_rate_btc_adj_20m 53.97%
hedge_win_rate_btc_adj_20m 43.01%
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.42047e+07 1.80333e+10 10120 8.52734 18.9675
high 0 0 0
low 3.42047e+07 1.80333e+10 10120 8.52734 18.9675

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 9483 8.17729e+06 0.00048699 4.8699 0.50754 0.00152977 -0.000380154 0.00190594 8.17729e+06 0.00048699 4.8699 0.50754
10 9483 1.15439e+07 0.000687487 6.87487 0.526943 0.00220927 -0.000582897 0.00250385 1.15439e+07 0.000687487 6.87487 0.526943
20 9481 1.43085e+07 0.000852145 8.52145 0.539711 0.00309284 -0.000831241 0.00272281 1.43085e+07 0.000852145 8.52145 0.539711
30 9476 1.71025e+07 0.00101886 10.1886 0.547911 0.00374701 -0.00101226 0.00263503 1.71025e+07 0.00101886 10.1886 0.547911
60 9469 2.2547e+07 0.00134423 13.4423 0.548104 0.0060767 -0.00177504 0.00414695 2.2547e+07 0.00134423 13.4423 0.548104
120 9458 2.64982e+07 0.00158174 15.8174 0.548742 0.00729045 -0.00201492 0.00329151 2.64982e+07 0.00158174 15.8174 0.548742
240 9418 2.95025e+07 0.00176637 17.6637 0.532172 0.00997675 -0.00317484 0.0031119 2.95025e+07 0.00176637 17.6637 0.532172

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 637 -915920 -0.00073756 -7.3756 0.362637 0.0014557 -0.00105923 0.00237952 -915920 -0.00073756 -7.3756 0.362637
10 637 -888411 -0.000715407 -7.15407 0.414443 0.00261339 -0.00121604 0.00501925 -888411 -0.000715407 -7.15407 0.414443
20 637 -968486 -0.000779889 -7.79889 0.430141 0.00476637 -0.00157383 0.0099895 -968486 -0.000779889 -7.79889 0.430141
30 637 -718802 -0.000578827 -5.78827 0.436421 0.00195332 -0.000837183 0.000964381 -718802 -0.000578827 -5.78827 0.436421
60 634 -815163 -0.000660452 -6.60452 0.44795 -0.000860945 -0.000737756 6.5468e-05 -815163 -0.000660452 -6.60452 0.44795
120 629 -1.00936e+06 -0.000823831 -8.23831 0.446741 -0.00287525 -0.000475418 0.000500825 -1.00936e+06 -0.000823831 -8.23831 0.446741
240 618 -1.83044e+06 -0.00150726 -15.0726 0.462783 0.0012721 -0.00178098 5.06864e-05 -1.83044e+06 -0.00150726 -15.0726 0.462783

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 378 412933 0.00386258 38.6258
09:20 414 256032 0.00229763 22.9763
09:40 341 245859 0.000349229 3.49229
10:00 311 299918 0.000906899 9.06899
10:20 296 223132 0.00216053 21.6053
10:40 325 280552 0.000189536 1.89536
11:00 434 404427 0.00101392 10.1392
11:20 366 481773 0.00315155 31.5155
11:40 368 360161 0.00285715 28.5715
12:00 327 352228 0.00275958 27.5958
12:20 258 335302 0.00267957 26.7957
12:40 297 207911 0.00265168 26.5168
13:00 262 243115 0.00134629 13.4629
13:20 284 204128 0.00576407 57.6407
13:40 215 79243 0.00397365 39.7365
14:00 154 90126 0.00363367 36.3367
14:20 193 90053 0.00253287 25.3287
14:40 175 57703 0.0158264 158.264
15:00 214 85122 0.0107734 107.734
15:20 0 0

Z-Score-Quality Scatter + Regression

Model Buy/Sell Scatter + Regression