KOSPI Backtest Dashboard

run_id: 20260321T111418Z_userreq_toss_ens5_2seed_105_d7_a101_tossenriched_target350_z3p2
generated_at_utc: 2026-03-21T11:18:23.683353+00:00

Top KPI

trade_return_per_trade_bp = (total_pnl_final / total_trade_notional) * 10000
metric value
total_pnl_final 40.513M
total_trade_notional 15269.757M
daily_trade_notional 372.433M
total_fee 15.270M
mdd_pnl -6.395M
alpha_vs_dynamic_notional_beta_pnl_final 33.186M
alpha_vs_avg_hold_notional_beta_pnl_final 32.751M
dynamic_alpha_mdd_pnl -2.125M
avg_hold_alpha_mdd_pnl -2.091M
dynamic_alpha_sharpe_annualized 12.0376
avg_hold_alpha_sharpe_annualized 11.5846
time_avg_total_notional_position_usdt 69.681M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 69.681M
trade_return_per_trade_bp 26.53bp
roi_avg_notional_position_pct 58.14%
roi_peak_notional_position_pct 40.16%
num_trades 6,436
high_mc_trade_notional 0.000M
high_mc_sharpe_annualized
high_mc_trade_return_per_trade_bp
low_mc_trade_notional 15269.757M
low_mc_sharpe_annualized 12.8917
low_mc_trade_return_per_trade_bp 26.53bp
sharpe_annualized 12.8917

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.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 40.513M
total_pnl_peak 41.381M
dynamic_notional_beta_pnl_final 7.326M
alpha_vs_dynamic_notional_beta_pnl_final 33.186M
avg_hold_notional_beta_pnl_final 7.762M
alpha_vs_avg_hold_notional_beta_pnl_final 32.751M
high_mc_dynamic_notional_beta_pnl_final 0.000M
low_mc_dynamic_notional_beta_pnl_final 7.326M
high_mc_avg_hold_notional_beta_pnl_final 0.000M
low_mc_avg_hold_notional_beta_pnl_final 7.762M
high_mc_alpha_vs_dynamic_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_dynamic_notional_beta_pnl_final 33.186M
high_mc_alpha_vs_avg_hold_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_avg_hold_notional_beta_pnl_final 32.751M
dynamic_alpha_mdd_pnl -2.125M
dynamic_alpha_sharpe_annualized 12.0376
avg_hold_alpha_mdd_pnl -2.091M
avg_hold_alpha_sharpe_annualized 11.5846
num_trades 6,436
total_traded_amount_sum 2.48421e+07
total_trade_notional 15269.757M
daily_trade_notional 372.433M
trading_day_count 41
total_fee 15.270M
time_avg_total_notional_position_usdt 69.681M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 69.681M
time_avg_net_position_usdt 69.681M
time_avg_abs_net_position_usdt 69.681M
peak_abs_net_position_usdt 1.00887e+08
roi_avg_notional_position_pct 58.14%
roi_peak_notional_position_pct 40.16%
mdd_pnl -6.395M
sharpe_annualized 12.8917
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.513M
low_mc_trade_notional 15269.757M
low_mc_num_trades 6,436
low_mc_sharpe_annualized 12.8917
low_mc_trade_return_per_trade_bp 26.53bp
model_zscore_pnl_final 4954.404M
hedge_zscore_pnl_final 518.684M
force_zscore_pnl_final 0.000M
funding_fee_pnl_final 0.000M
funding_event_count 0
model_win_rate_20m 60.69%
hedge_win_rate_20m 44.52%
force_win_rate_20m
model_win_rate_btc_adj_20m 60.69%
hedge_win_rate_btc_adj_20m 44.52%
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.05127e+07 1.52698e+10 6436 12.8917 26.5314
high 0 0 0
low 4.05127e+07 1.52698e+10 6436 12.8917 26.5314

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 4701 1.99854e+07 0.00180674 18.0674 0.579026 0.000687513 0.00140005 5.77769e-05 1.99854e+07 0.00180674 18.0674 0.579026
10 4701 2.38912e+07 0.00215984 21.5984 0.599234 0.00317779 0.000582401 0.000974054 2.38912e+07 0.00215984 21.5984 0.599234
20 4699 2.50764e+07 0.00226799 22.6799 0.606938 0.0024118 0.00104215 0.000329843 2.50764e+07 0.00226799 22.6799 0.606938
30 4698 2.90559e+07 0.0026285 26.285 0.608557 0.00272794 0.00123466 0.000356019 2.90559e+07 0.0026285 26.285 0.608557
60 4696 3.54666e+07 0.00320987 32.0987 0.5954 0.0029164 0.00168544 0.00027876 3.54666e+07 0.00320987 32.0987 0.5954
120 4694 4.0376e+07 0.00365586 36.5586 0.58138 -0.00762754 0.00684023 0.000985524 4.0376e+07 0.00365586 36.5586 0.58138
240 4683 4.38536e+07 0.0039807 39.807 0.571215 -0.00742419 0.00710791 0.000546968 4.38536e+07 0.0039807 39.807 0.571215

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 1735 -3.50315e+06 -0.000832463 -8.32463 0.358501 0.00423172 -0.00131994 0.00734106 -3.50315e+06 -0.000832463 -8.32463 0.358501
10 1735 -3.47642e+06 -0.000826112 -8.26112 0.40634 0.00284231 -0.00114114 0.00144148 -3.47642e+06 -0.000826112 -8.26112 0.40634
20 1734 -4.33417e+06 -0.00103056 -10.3056 0.445213 0.00206973 -0.00125454 0.000445861 -4.33417e+06 -0.00103056 -10.3056 0.445213
30 1732 -4.88861e+06 -0.00116378 -11.6378 0.438799 0.00439603 -0.0016592 0.00132275 -4.88861e+06 -0.00116378 -11.6378 0.438799
60 1728 -6.67312e+06 -0.00159245 -15.9245 0.453125 0.00955784 -0.00277207 0.00288592 -6.67312e+06 -0.00159245 -15.9245 0.453125
120 1723 -3.14647e+06 -0.00075313 -7.5313 0.495647 0.00676975 -0.00156827 0.000778715 -3.14647e+06 -0.00075313 -7.5313 0.495647
240 1722 -1.204e+06 -0.000288366 -2.88366 0.505807 0.00277045 -0.000541402 6.22586e-05 -1.204e+06 -0.000288366 -2.88366 0.505807

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 339 432514 0.00668032 66.8032
09:20 321 574553 0.00477262 47.7262
09:40 293 774651 -0.000179356 -1.79356
10:00 263 858383 0.00388132 38.8132
10:20 221 778059 0.00266605 26.6605
10:40 170 626691 0.00431025 43.1025
11:00 201 715671 0.00141736 14.1736
11:20 166 810996 0.00394462 39.4462
11:40 133 678950 0.00418772 41.8772
12:00 148 854159 0.00578719 57.8719
12:20 118 745134 0.00421723 42.1723
12:40 148 873307 0.00304522 30.4522
13:00 162 814037 0.00378735 37.8735
13:20 156 702429 0.012072 120.72
13:40 115 504447 0.0023112 23.112
14:00 97 499939 0.00565378 56.5378
14:20 88 440878 0.000730169 7.30169
14:40 68 312004 0.00776054 77.6054
15:00 95 432965 0.0116258 116.258
15:20 0 0

Z-Score-Quality Scatter + Regression

Model Buy/Sell Scatter + Regression