KOSPI Backtest Dashboard

run_id: 20260321T111418Z_userreq_toss_ens5_2seed_105_d7_a101_tossenriched_target350_z3p1
generated_at_utc: 2026-03-21T11:17:34.224033+00:00

Top KPI

trade_return_per_trade_bp = (total_pnl_final / total_trade_notional) * 10000
metric value
total_pnl_final 42.655M
total_trade_notional 16568.871M
daily_trade_notional 404.119M
total_fee 16.569M
mdd_pnl -7.422M
alpha_vs_dynamic_notional_beta_pnl_final 35.145M
alpha_vs_avg_hold_notional_beta_pnl_final 34.324M
dynamic_alpha_mdd_pnl -2.037M
avg_hold_alpha_mdd_pnl -1.989M
dynamic_alpha_sharpe_annualized 12.625
avg_hold_alpha_sharpe_annualized 11.9351
time_avg_total_notional_position_usdt 74.792M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 74.792M
trade_return_per_trade_bp 25.74bp
roi_avg_notional_position_pct 57.03%
roi_peak_notional_position_pct 42.23%
num_trades 7,052
high_mc_trade_notional 0.000M
high_mc_sharpe_annualized
high_mc_trade_return_per_trade_bp
low_mc_trade_notional 16568.871M
low_mc_sharpe_annualized 13.3041
low_mc_trade_return_per_trade_bp 25.74bp
sharpe_annualized 13.3041

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.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 42.655M
total_pnl_peak 44.114M
dynamic_notional_beta_pnl_final 7.510M
alpha_vs_dynamic_notional_beta_pnl_final 35.145M
avg_hold_notional_beta_pnl_final 8.331M
alpha_vs_avg_hold_notional_beta_pnl_final 34.324M
high_mc_dynamic_notional_beta_pnl_final 0.000M
low_mc_dynamic_notional_beta_pnl_final 7.510M
high_mc_avg_hold_notional_beta_pnl_final 0.000M
low_mc_avg_hold_notional_beta_pnl_final 8.331M
high_mc_alpha_vs_dynamic_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_dynamic_notional_beta_pnl_final 35.145M
high_mc_alpha_vs_avg_hold_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_avg_hold_notional_beta_pnl_final 34.324M
dynamic_alpha_mdd_pnl -2.037M
dynamic_alpha_sharpe_annualized 12.625
avg_hold_alpha_mdd_pnl -1.989M
avg_hold_alpha_sharpe_annualized 11.9351
num_trades 7,052
total_traded_amount_sum 2.63002e+07
total_trade_notional 16568.871M
daily_trade_notional 404.119M
trading_day_count 41
total_fee 16.569M
time_avg_total_notional_position_usdt 74.792M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 74.792M
time_avg_net_position_usdt 74.792M
time_avg_abs_net_position_usdt 74.792M
peak_abs_net_position_usdt 1.01008e+08
roi_avg_notional_position_pct 57.03%
roi_peak_notional_position_pct 42.23%
mdd_pnl -7.422M
sharpe_annualized 13.3041
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 42.655M
low_mc_trade_notional 16568.871M
low_mc_num_trades 7,052
low_mc_sharpe_annualized 13.3041
low_mc_trade_return_per_trade_bp 25.74bp
model_zscore_pnl_final 5325.968M
hedge_zscore_pnl_final 537.604M
force_zscore_pnl_final 0.000M
funding_fee_pnl_final 0.000M
funding_event_count 0
model_win_rate_20m 60.13%
hedge_win_rate_20m 45.08%
force_win_rate_20m
model_win_rate_btc_adj_20m 60.13%
hedge_win_rate_btc_adj_20m 45.08%
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 4.26551e+07 1.65689e+10 7052 13.3041 25.7441
high 0 0 0
low 4.26551e+07 1.65689e+10 7052 13.3041 25.7441

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 5209 2.06633e+07 0.00169806 16.9806 0.575734 0.00277735 0.00046219 0.00107341 2.06633e+07 0.00169806 16.9806 0.575734
10 5209 2.42072e+07 0.00198929 19.8929 0.594356 0.00508688 -0.000330145 0.00248819 2.42072e+07 0.00198929 19.8929 0.594356
20 5207 2.40263e+07 0.00197522 19.7522 0.601306 0.00449958 -5.66729e-05 0.00116921 2.40263e+07 0.00197522 19.7522 0.601306
30 5206 2.76074e+07 0.0022701 22.701 0.602382 0.00455251 0.000203201 0.000990851 2.76074e+07 0.0022701 22.701 0.602382
60 5203 3.39026e+07 0.00278946 27.8946 0.589852 0.00370454 0.00106164 0.000462779 3.39026e+07 0.00278946 27.8946 0.589852
120 5201 4.08761e+07 0.00336462 33.6462 0.580081 -0.0050397 0.00543704 0.000434037 4.08761e+07 0.00336462 33.6462 0.580081
240 5186 4.14618e+07 0.00342345 34.2345 0.563054 -0.00487207 0.00550848 0.000224661 4.14618e+07 0.00342345 34.2345 0.563054

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 1843 -3.69454e+06 -0.000839641 -8.39641 0.36191 0.00391157 -0.00127221 0.00584002 -3.69454e+06 -0.000839641 -8.39641 0.36191
10 1843 -3.74359e+06 -0.000850788 -8.50788 0.406403 0.00160933 -0.00100555 0.000379293 -3.74359e+06 -0.000850788 -8.50788 0.406403
20 1841 -4.1266e+06 -0.000938923 -9.38923 0.450842 0.00234019 -0.00120341 0.000655152 -4.1266e+06 -0.000938923 -9.38923 0.450842
30 1837 -4.2509e+06 -0.000968927 -9.68927 0.449646 0.00203969 -0.00118653 0.000274518 -4.2509e+06 -0.000968927 -9.68927 0.449646
60 1833 -5.47864e+06 -0.00125168 -12.5168 0.463721 0.00374626 -0.00168698 0.000468455 -5.47864e+06 -0.00125168 -12.5168 0.463721
120 1828 -2.67122e+06 -0.000612047 -6.12047 0.491794 0.00362625 -0.000992587 0.000220562 -2.67122e+06 -0.000612047 -6.12047 0.491794
240 1825 -1.6803e+06 -0.000385653 -3.85653 0.499178 -0.00457347 0.000359153 0.000160072 -1.6803e+06 -0.000385653 -3.85653 0.499178

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 474851 0.00583314 58.3314
09:20 361 629876 0.00580307 58.0307
09:40 310 769953 0.000887429 8.87429
10:00 281 917092 0.00359546 35.9546
10:20 222 714621 0.00296311 29.6311
10:40 179 561929 0.00403694 40.3694
11:00 223 815271 0.00121886 12.1886
11:20 184 896641 0.00400438 40.0438
11:40 156 792369 0.00430775 43.0775
12:00 165 921995 0.00590866 59.0866
12:20 134 832852 0.00355293 35.5293
12:40 182 945349 0.0031708 31.708
13:00 176 834422 0.00333547 33.3547
13:20 186 769466 0.00844778 84.4778
13:40 121 552984 0.00508748 50.8748
14:00 87 350270 0.00123635 12.3635
14:20 94 463468 0.00338647 33.8647
14:40 77 367117 0.00707601 70.7601
15:00 115 548848 0.00753373 75.3373
15:20 0 0

Z-Score-Quality Scatter + Regression

Model Buy/Sell Scatter + Regression