KOSPI Backtest Dashboard

run_id: 20260321T111227Z_userreq_toss_tabm_enh129_ceonly_20260320_target350_z2
generated_at_utc: 2026-03-21T11:17:33.020251+00:00

Top KPI

trade_return_per_trade_bp = (total_pnl_final / total_trade_notional) * 10000
metric value
total_pnl_final 26.415M
total_trade_notional 15435.488M
daily_trade_notional 376.475M
total_fee 15.435M
mdd_pnl -12.842M
alpha_vs_dynamic_notional_beta_pnl_final 14.409M
alpha_vs_avg_hold_notional_beta_pnl_final 15.482M
dynamic_alpha_mdd_pnl -1.481M
avg_hold_alpha_mdd_pnl -1.454M
dynamic_alpha_sharpe_annualized 6.35592
avg_hold_alpha_sharpe_annualized 6.83425
time_avg_total_notional_position_usdt 98.148M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 98.148M
trade_return_per_trade_bp 17.11bp
roi_avg_notional_position_pct 26.91%
roi_peak_notional_position_pct 24.98%
num_trades 8,808
high_mc_trade_notional 0.000M
high_mc_sharpe_annualized
high_mc_trade_return_per_trade_bp
low_mc_trade_notional 15435.488M
low_mc_sharpe_annualized 6.42202
low_mc_trade_return_per_trade_bp 17.11bp
sharpe_annualized 6.42202

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
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.415M
total_pnl_peak 31.050M
dynamic_notional_beta_pnl_final 12.006M
alpha_vs_dynamic_notional_beta_pnl_final 14.409M
avg_hold_notional_beta_pnl_final 10.933M
alpha_vs_avg_hold_notional_beta_pnl_final 15.482M
high_mc_dynamic_notional_beta_pnl_final 0.000M
low_mc_dynamic_notional_beta_pnl_final 12.006M
high_mc_avg_hold_notional_beta_pnl_final 0.000M
low_mc_avg_hold_notional_beta_pnl_final 10.933M
high_mc_alpha_vs_dynamic_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_dynamic_notional_beta_pnl_final 14.409M
high_mc_alpha_vs_avg_hold_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_avg_hold_notional_beta_pnl_final 15.482M
dynamic_alpha_mdd_pnl -1.481M
dynamic_alpha_sharpe_annualized 6.35592
avg_hold_alpha_mdd_pnl -1.454M
avg_hold_alpha_sharpe_annualized 6.83425
num_trades 8,808
total_traded_amount_sum 7.43065e+06
total_trade_notional 15435.488M
daily_trade_notional 376.475M
trading_day_count 41
total_fee 15.435M
time_avg_total_notional_position_usdt 98.148M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 98.148M
time_avg_net_position_usdt 98.148M
time_avg_abs_net_position_usdt 98.148M
peak_abs_net_position_usdt 1.05737e+08
roi_avg_notional_position_pct 26.91%
roi_peak_notional_position_pct 24.98%
mdd_pnl -12.842M
sharpe_annualized 6.42202
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.415M
low_mc_trade_notional 15435.488M
low_mc_num_trades 8,808
low_mc_sharpe_annualized 6.42202
low_mc_trade_return_per_trade_bp 17.11bp
model_zscore_pnl_final 6493.043M
hedge_zscore_pnl_final 755.856M
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 44.67%
force_win_rate_20m
model_win_rate_btc_adj_20m 53.97%
hedge_win_rate_btc_adj_20m 44.67%
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.64155e+07 1.54355e+10 8808 6.42202 17.1135
high 0 0 0
low 2.64155e+07 1.54355e+10 8808 6.42202 17.1135

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 7008 7.33453e+06 0.000617081 6.17081 0.513841 9.05603e-05 0.000447386 6.50407e-06 7.33453e+06 0.000617081 6.17081 0.513841
10 7008 9.11935e+06 0.000767244 7.67244 0.533105 0.000501995 0.000313807 0.000129161 9.11935e+06 0.000767244 7.67244 0.533105
20 7006 1.10231e+07 0.000927804 9.27804 0.53968 0.00115124 0.000153069 0.000406603 1.10231e+07 0.000927804 9.27804 0.53968
30 7005 1.25975e+07 0.00106033 10.6033 0.545039 0.00161175 3.04667e-05 0.000467736 1.25975e+07 0.00106033 10.6033 0.545039
60 6995 1.72262e+07 0.0014519 14.519 0.548964 0.00385294 -0.000599643 0.00147303 1.72262e+07 0.0014519 14.519 0.548964
120 6988 2.24535e+07 0.00189427 18.9427 0.549513 0.00378817 -3.71491e-05 0.000871494 2.24535e+07 0.00189427 18.9427 0.549513
240 6953 2.37424e+07 0.00201512 20.1512 0.539048 0.0056155 -0.000618943 0.000989456 2.37424e+07 0.00201512 20.1512 0.539048

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 1800 -2.53999e+06 -0.000715565 -7.15565 0.378333 2.38855e-05 -0.000739341 4.22633e-07 -2.53999e+06 -0.000715565 -7.15565 0.378333
10 1800 -2.72255e+06 -0.000766993 -7.66993 0.398333 3.88948e-05 -0.000792203 8.01345e-07 -2.72255e+06 -0.000766993 -7.66993 0.398333
20 1800 -2.68989e+06 -0.000757793 -7.57793 0.446667 -1.68512e-06 -0.000747254 8.05635e-10 -2.68989e+06 -0.000757793 -7.57793 0.446667
30 1800 -2.33055e+06 -0.000656561 -6.56561 0.46 0.000717753 -0.000721178 8.9455e-05 -2.33055e+06 -0.000656561 -6.56561 0.46
60 1792 -3.68685e+06 -0.0010434 -10.434 0.461496 0.000171882 -0.00110384 2.51518e-06 -3.68685e+06 -0.0010434 -10.434 0.461496
120 1787 -2.65963e+06 -0.000755294 -7.55294 0.476217 -0.000896293 -0.000535363 4.16368e-05 -2.65963e+06 -0.000755294 -7.55294 0.476217
240 1780 -5.28063e+06 -0.0015061 -15.061 0.467978 0.00083797 -0.00142923 1.78365e-05 -5.28063e+06 -0.0015061 -15.061 0.467978

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 352 384442 0.00459767 45.9767
09:20 315 242588 0.00103343 10.3343
09:40 230 161299 0.00205857 20.5857
10:00 298 258601 0.00149814 14.9814
10:20 316 195176 2.93921e-05 0.293921
10:40 320 271635 0.000232459 2.32459
11:00 427 406832 0.000979337 9.79337
11:20 290 223381 0.00193869 19.3869
11:40 281 209470 0.00220902 22.0902
12:00 235 251128 0.00304602 30.4602
12:20 219 208003 0.00228797 22.8797
12:40 214 165908 0.00271456 27.1456
13:00 260 201087 0.00163258 16.3258
13:20 271 139559 0.00354372 35.4372
13:40 183 87265 0.00260205 26.0205
14:00 125 71099 0.001341 13.41
14:20 188 62971 0.00153896 15.3896
14:40 174 58782 0.0131003 131.003
15:00 229 126953 0.0150563 150.563
15:20 0 0

Z-Score-Quality Scatter + Regression

Model Buy/Sell Scatter + Regression