KOSPI Backtest Dashboard

run_id: 20260321T114429Z_userreq_toss_ens3_105_enh_d7_20260320_tossenriched_target350_z3p40
generated_at_utc: 2026-03-21T11:45:15.311803+00:00

Top KPI

trade_return_per_trade_bp = (total_pnl_final / total_trade_notional) * 10000
metric value
total_pnl_final 40.675M
total_trade_notional 14364.156M
daily_trade_notional 350.345M
total_fee 14.364M
mdd_pnl -7.507M
alpha_vs_dynamic_notional_beta_pnl_final 32.209M
alpha_vs_avg_hold_notional_beta_pnl_final 32.399M
dynamic_alpha_mdd_pnl -1.991M
avg_hold_alpha_mdd_pnl -2.006M
dynamic_alpha_sharpe_annualized 11.1281
avg_hold_alpha_sharpe_annualized 10.9571
time_avg_total_notional_position_usdt 74.299M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 74.299M
trade_return_per_trade_bp 28.32bp
roi_avg_notional_position_pct 54.75%
roi_peak_notional_position_pct 39.93%
num_trades 6,184
high_mc_trade_notional 0.000M
high_mc_sharpe_annualized
high_mc_trade_return_per_trade_bp
low_mc_trade_notional 14364.156M
low_mc_sharpe_annualized 11.4878
low_mc_trade_return_per_trade_bp 28.32bp
sharpe_annualized 11.4878

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.4
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 40.675M
total_pnl_peak 41.572M
dynamic_notional_beta_pnl_final 8.466M
alpha_vs_dynamic_notional_beta_pnl_final 32.209M
avg_hold_notional_beta_pnl_final 8.276M
alpha_vs_avg_hold_notional_beta_pnl_final 32.399M
high_mc_dynamic_notional_beta_pnl_final 0.000M
low_mc_dynamic_notional_beta_pnl_final 8.466M
high_mc_avg_hold_notional_beta_pnl_final 0.000M
low_mc_avg_hold_notional_beta_pnl_final 8.276M
high_mc_alpha_vs_dynamic_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_dynamic_notional_beta_pnl_final 32.209M
high_mc_alpha_vs_avg_hold_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_avg_hold_notional_beta_pnl_final 32.399M
dynamic_alpha_mdd_pnl -1.991M
dynamic_alpha_sharpe_annualized 11.1281
avg_hold_alpha_mdd_pnl -2.006M
avg_hold_alpha_sharpe_annualized 10.9571
num_trades 6,184
total_traded_amount_sum 1.85043e+07
total_trade_notional 14364.156M
daily_trade_notional 350.345M
trading_day_count 41
total_fee 14.364M
time_avg_total_notional_position_usdt 74.299M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 74.299M
time_avg_net_position_usdt 74.299M
time_avg_abs_net_position_usdt 74.299M
peak_abs_net_position_usdt 1.0186e+08
roi_avg_notional_position_pct 54.75%
roi_peak_notional_position_pct 39.93%
mdd_pnl -7.507M
sharpe_annualized 11.4878
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 40.675M
low_mc_trade_notional 14364.156M
low_mc_num_trades 6,184
low_mc_sharpe_annualized 11.4878
low_mc_trade_return_per_trade_bp 28.32bp
model_zscore_pnl_final 4549.424M
hedge_zscore_pnl_final 559.370M
force_zscore_pnl_final 0.000M
funding_fee_pnl_final 0.000M
funding_event_count 0
model_win_rate_20m 59.55%
hedge_win_rate_20m 42.93%
force_win_rate_20m
model_win_rate_btc_adj_20m 59.55%
hedge_win_rate_btc_adj_20m 42.93%
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.06753e+07 1.43642e+10 6184 11.4878 28.3172
high 0 0 0
low 4.06753e+07 1.43642e+10 6184 11.4878 28.3172

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 4294 1.69552e+07 0.00172821 17.2821 0.577084 0.00451025 -0.000471833 0.00281675 1.69552e+07 0.00172821 17.2821 0.577084
10 4294 2.05705e+07 0.00209671 20.9671 0.597578 0.00941143 -0.0024886 0.00897919 2.05705e+07 0.00209671 20.9671 0.597578
20 4284 2.08352e+07 0.00212911 21.2911 0.595472 0.0101034 -0.00270096 0.00709365 2.08352e+07 0.00212911 21.2911 0.595472
30 4280 2.63828e+07 0.00269876 26.9876 0.606075 0.0114203 -0.00282101 0.00703379 2.63828e+07 0.00269876 26.9876 0.606075
60 4271 3.45239e+07 0.00353961 35.3961 0.592835 0.00929364 -0.000974326 0.0027227 3.45239e+07 0.00353961 35.3961 0.592835
120 4263 4.05251e+07 0.00416346 41.6346 0.586207 0.00289643 0.00257569 0.000150862 4.05251e+07 0.00416346 41.6346 0.586207
240 4214 4.25488e+07 0.0044224 44.224 0.562648 -0.00182264 0.00490519 3.21558e-05 4.25488e+07 0.0044224 44.224 0.562648

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 1890 -3.94627e+06 -0.000866682 -8.66682 0.365079 0.000369081 -0.000893962 3.75412e-05 -3.94627e+06 -0.000866682 -8.66682 0.365079
10 1890 -4.02393e+06 -0.000883736 -8.83736 0.389418 -0.00104971 -0.000740045 0.000182526 -4.02393e+06 -0.000883736 -8.83736 0.389418
20 1889 -4.63718e+06 -0.00101899 -10.1899 0.429328 0.000920097 -0.00111462 6.14218e-05 -4.63718e+06 -0.00101899 -10.1899 0.429328
30 1885 -5.51695e+06 -0.00121502 -12.1502 0.440318 0.00207107 -0.00145401 0.00017472 -5.51695e+06 -0.00121502 -12.1502 0.440318
60 1880 -7.2236e+06 -0.00159518 -15.9518 0.453191 0.0051587 -0.002178 0.000570257 -7.2236e+06 -0.00159518 -15.9518 0.453191
120 1859 -3.33786e+06 -0.000745653 -7.45653 0.493814 0.00453455 -0.0012396 0.000313604 -3.33786e+06 -0.000745653 -7.45653 0.493814
240 1809 -4.48892e+06 -0.00102946 -10.2946 0.510227 -0.00434911 -0.000524199 0.000140866 -4.48892e+06 -0.00102946 -10.2946 0.510227

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 455 527859 0.00546634 54.6634
09:20 276 335234 0.00444117 44.4117
09:40 207 379500 0.00155752 15.5752
10:00 188 363161 0.00477358 47.7358
10:20 134 304827 0.00452147 45.2147
10:40 116 266916 0.00564183 56.4183
11:00 202 529148 0.00225839 22.5839
11:20 193 755661 0.00381263 38.1263
11:40 160 611804 0.00423386 42.3386
12:00 161 679830 0.00399329 39.9329
12:20 138 651245 0.00425216 42.5216
12:40 160 688460 0.00208659 20.8659
13:00 164 793905 0.0027555 27.555
13:20 189 630377 0.00739715 73.9715
13:40 102 417211 0.00125958 12.5958
14:00 78 264005 -4.70715e-05 -0.470715
14:20 104 342693 0.00893707 89.3707
14:40 79 290926 0.01846 184.6
15:00 119 428656 0.010974 109.74
15:20 0 0

Z-Score-Quality Scatter + Regression

Model Buy/Sell Scatter + Regression