KOSPI Backtest Dashboard

run_id: 20260321T111418Z_userreq_toss_ens5_2seed_105_d7_a101_tossenriched_target350_z3
generated_at_utc: 2026-03-21T11:14:59.054413+00:00

Top KPI

trade_return_per_trade_bp = (total_pnl_final / total_trade_notional) * 10000
metric value
total_pnl_final 43.955M
total_trade_notional 17674.299M
daily_trade_notional 431.080M
total_fee 17.674M
mdd_pnl -8.711M
alpha_vs_dynamic_notional_beta_pnl_final 35.817M
alpha_vs_avg_hold_notional_beta_pnl_final 34.991M
dynamic_alpha_mdd_pnl -2.174M
avg_hold_alpha_mdd_pnl -2.037M
dynamic_alpha_sharpe_annualized 12.5414
avg_hold_alpha_sharpe_annualized 11.9522
time_avg_total_notional_position_usdt 80.467M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 80.467M
trade_return_per_trade_bp 24.87bp
roi_avg_notional_position_pct 54.62%
roi_peak_notional_position_pct 43.40%
num_trades 7,683
high_mc_trade_notional 0.000M
high_mc_sharpe_annualized
high_mc_trade_return_per_trade_bp
low_mc_trade_notional 17674.299M
low_mc_sharpe_annualized 12.993
low_mc_trade_return_per_trade_bp 24.87bp
sharpe_annualized 12.993

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
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 43.955M
total_pnl_peak 45.934M
dynamic_notional_beta_pnl_final 8.138M
alpha_vs_dynamic_notional_beta_pnl_final 35.817M
avg_hold_notional_beta_pnl_final 8.964M
alpha_vs_avg_hold_notional_beta_pnl_final 34.991M
high_mc_dynamic_notional_beta_pnl_final 0.000M
low_mc_dynamic_notional_beta_pnl_final 8.138M
high_mc_avg_hold_notional_beta_pnl_final 0.000M
low_mc_avg_hold_notional_beta_pnl_final 8.964M
high_mc_alpha_vs_dynamic_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_dynamic_notional_beta_pnl_final 35.817M
high_mc_alpha_vs_avg_hold_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_avg_hold_notional_beta_pnl_final 34.991M
dynamic_alpha_mdd_pnl -2.174M
dynamic_alpha_sharpe_annualized 12.5414
avg_hold_alpha_mdd_pnl -2.037M
avg_hold_alpha_sharpe_annualized 11.9522
num_trades 7,683
total_traded_amount_sum 2.72906e+07
total_trade_notional 17674.299M
daily_trade_notional 431.080M
trading_day_count 41
total_fee 17.674M
time_avg_total_notional_position_usdt 80.467M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 80.467M
time_avg_net_position_usdt 80.467M
time_avg_abs_net_position_usdt 80.467M
peak_abs_net_position_usdt 1.01267e+08
roi_avg_notional_position_pct 54.62%
roi_peak_notional_position_pct 43.40%
mdd_pnl -8.711M
sharpe_annualized 12.993
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 43.955M
low_mc_trade_notional 17674.299M
low_mc_num_trades 7,683
low_mc_sharpe_annualized 12.993
low_mc_trade_return_per_trade_bp 24.87bp
model_zscore_pnl_final 5610.037M
hedge_zscore_pnl_final 536.413M
force_zscore_pnl_final 0.000M
funding_fee_pnl_final 0.000M
funding_event_count 0
model_win_rate_20m 59.87%
hedge_win_rate_20m 45.25%
force_win_rate_20m
model_win_rate_btc_adj_20m 59.87%
hedge_win_rate_btc_adj_20m 45.25%
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.39548e+07 1.76743e+10 7683 12.993 24.8693
high 0 0 0
low 4.39548e+07 1.76743e+10 7683 12.993 24.8693

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 5766 2.18728e+07 0.00166383 16.6383 0.573361 0.00211237 0.000758428 0.000616771 2.18728e+07 0.00166383 16.6383 0.573361
10 5766 2.58208e+07 0.00196414 19.6414 0.591224 0.00434945 2.38031e-05 0.00198542 2.58208e+07 0.00196414 19.6414 0.591224
20 5764 2.61802e+07 0.00199222 19.9222 0.598716 0.00275768 0.000762486 0.000492312 2.61802e+07 0.00199222 19.9222 0.598716
30 5763 2.95936e+07 0.0022524 22.524 0.602117 0.00311888 0.000845965 0.000514696 2.95936e+07 0.0022524 22.524 0.602117
60 5759 3.3617e+07 0.00256057 25.6057 0.585692 0.0025939 0.00137855 0.000235823 3.3617e+07 0.00256057 25.6057 0.585692
120 5756 4.17363e+07 0.00318084 31.8084 0.583044 -0.00383507 0.00480634 0.00025452 4.17363e+07 0.00318084 31.8084 0.583044
240 5736 4.01427e+07 0.00307063 30.7063 0.557183 -0.00411575 0.00477064 0.000167519 4.01427e+07 0.00307063 30.7063 0.557183

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 1917 -3.63027e+06 -0.000801702 -8.01702 0.360981 0.0033923 -0.00116188 0.00434277 -3.63027e+06 -0.000801702 -8.01702 0.360981
10 1917 -3.50749e+06 -0.000774588 -7.74588 0.396453 0.0019061 -0.000961724 0.000921628 -3.50749e+06 -0.000774588 -7.74588 0.396453
20 1916 -3.82414e+06 -0.000844989 -8.44989 0.452505 0.00240017 -0.00109386 0.000771116 -3.82414e+06 -0.000844989 -8.44989 0.452505
30 1912 -3.28355e+06 -0.000726782 -7.26782 0.46182 0.00277888 -0.000970031 0.000695468 -3.28355e+06 -0.000726782 -7.26782 0.46182
60 1905 -3.88605e+06 -0.000863558 -8.63558 0.468766 0.00651079 -0.00158553 0.00157002 -3.88605e+06 -0.000863558 -8.63558 0.468766
120 1900 -360334 -8.02982e-05 -0.802982 0.498947 0.00900279 -0.00105585 0.00162423 -360334 -8.02982e-05 -0.802982 0.498947
240 1898 1.28838e+06 0.000287436 2.87436 0.499473 0.00469658 2.09575e-05 0.000181606 1.28838e+06 0.000287436 2.87436 0.499473

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 424 556137 0.00574025 57.4025
09:20 392 678661 0.0056041 56.041
09:40 307 694010 6.97802e-05 0.697802
10:00 264 832257 0.00321529 32.1529
10:20 216 614037 0.00306572 30.6572
10:40 194 606781 0.00500774 50.0774
11:00 261 863813 0.00124904 12.4904
11:20 217 884833 0.00373563 37.3563
11:40 183 872450 0.00461532 46.1532
12:00 176 962809 0.00540887 54.0887
12:20 172 893855 0.00407663 40.7663
12:40 202 989281 0.0035859 35.859
13:00 205 899461 0.0038751 38.751
13:20 199 793492 0.00809735 80.9735
13:40 116 542016 0.00329523 32.9523
14:00 99 383146 0.00158028 15.8028
14:20 105 453645 0.0029513 29.513
14:40 112 504562 0.00753498 75.3498
15:00 137 630138 0.00462947 46.2947
15:20 0 0

Z-Score-Quality Scatter + Regression

Model Buy/Sell Scatter + Regression