KOSPI Backtest Dashboard

run_id: 20260321T011352Z_userreq_toss_ens2_105_enhanced_20260320_target350_z2p75
generated_at_utc: 2026-03-21T01:14:50.065494+00:00

Top KPI

trade_return_per_trade_bp = (total_pnl_final / total_trade_notional) * 10000
metric value
total_pnl_final 44.875M
total_trade_notional 15446.436M
daily_trade_notional 376.742M
total_fee 15.446M
mdd_pnl -12.712M
alpha_vs_dynamic_notional_beta_pnl_final 34.744M
alpha_vs_avg_hold_notional_beta_pnl_final 34.684M
dynamic_alpha_mdd_pnl -2.378M
avg_hold_alpha_mdd_pnl -2.373M
dynamic_alpha_sharpe_annualized 10.6587
avg_hold_alpha_sharpe_annualized 10.6225
time_avg_total_notional_position_usdt 91.482M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 91.482M
trade_return_per_trade_bp 29.05bp
roi_avg_notional_position_pct 49.05%
roi_peak_notional_position_pct 43.64%
num_trades 7,566
high_mc_trade_notional 0.000M
high_mc_sharpe_annualized
high_mc_trade_return_per_trade_bp
low_mc_trade_notional 15446.436M
low_mc_sharpe_annualized 10.3436
low_mc_trade_return_per_trade_bp 29.05bp
sharpe_annualized 10.3436

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.75
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 44.875M
total_pnl_peak 46.495M
dynamic_notional_beta_pnl_final 10.131M
alpha_vs_dynamic_notional_beta_pnl_final 34.744M
avg_hold_notional_beta_pnl_final 10.190M
alpha_vs_avg_hold_notional_beta_pnl_final 34.684M
high_mc_dynamic_notional_beta_pnl_final 0.000M
low_mc_dynamic_notional_beta_pnl_final 10.131M
high_mc_avg_hold_notional_beta_pnl_final 0.000M
low_mc_avg_hold_notional_beta_pnl_final 10.190M
high_mc_alpha_vs_dynamic_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_dynamic_notional_beta_pnl_final 34.744M
high_mc_alpha_vs_avg_hold_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_avg_hold_notional_beta_pnl_final 34.684M
dynamic_alpha_mdd_pnl -2.378M
dynamic_alpha_sharpe_annualized 10.6587
avg_hold_alpha_mdd_pnl -2.373M
avg_hold_alpha_sharpe_annualized 10.6225
num_trades 7,566
total_traded_amount_sum 1.92524e+07
total_trade_notional 15446.436M
daily_trade_notional 376.742M
trading_day_count 41
total_fee 15.446M
time_avg_total_notional_position_usdt 91.482M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 91.482M
time_avg_net_position_usdt 91.482M
time_avg_abs_net_position_usdt 91.482M
peak_abs_net_position_usdt 1.0284e+08
roi_avg_notional_position_pct 49.05%
roi_peak_notional_position_pct 43.64%
mdd_pnl -12.712M
sharpe_annualized 10.3436
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 44.875M
low_mc_trade_notional 15446.436M
low_mc_num_trades 7,566
low_mc_sharpe_annualized 10.3436
low_mc_trade_return_per_trade_bp 29.05bp
model_zscore_pnl_final 5477.184M
hedge_zscore_pnl_final 586.099M
force_zscore_pnl_final 0.000M
funding_fee_pnl_final 0.000M
funding_event_count 0
model_win_rate_20m 58.19%
hedge_win_rate_20m 45.53%
force_win_rate_20m
model_win_rate_btc_adj_20m 58.19%
hedge_win_rate_btc_adj_20m 45.53%
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.4875e+07 1.54464e+10 7566 10.3436 29.052
high 0 0 0
low 4.4875e+07 1.54464e+10 7566 10.3436 29.052

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 5548 1.3822e+07 0.00125865 12.5865 0.550829 0.00217205 2.67295e-05 0.00166176 1.3822e+07 0.00125865 12.5865 0.550829
10 5548 1.90514e+07 0.00173486 17.3486 0.574081 0.00318111 -8.19135e-05 0.00260408 1.90514e+07 0.00173486 17.3486 0.574081
20 5542 1.88857e+07 0.00172211 17.2211 0.58192 0.00325566 -0.000136338 0.00158909 1.88857e+07 0.00172211 17.2211 0.58192
30 5538 2.342e+07 0.0021374 21.374 0.583785 0.00564795 -0.000801118 0.00321057 2.342e+07 0.0021374 21.374 0.583785
60 5520 2.97627e+07 0.0027269 27.269 0.583152 0.00626862 -0.000485926 0.00241838 2.97627e+07 0.0027269 27.269 0.583152
120 5495 4.20386e+07 0.00387357 38.7357 0.581438 0.005578 0.000962066 0.00101904 4.20386e+07 0.00387357 38.7357 0.581438
240 5401 4.39883e+07 0.00413671 41.3671 0.554712 -0.000121762 0.00386216 2.75631e-07 4.39883e+07 0.00413671 41.3671 0.554712

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 2018 -4.08839e+06 -0.000915675 -9.15675 0.388008 0.000420614 -0.000826403 5.55561e-05 -4.08839e+06 -0.000915675 -9.15675 0.388008
10 2018 -4.71561e+06 -0.00105615 -10.5615 0.410803 -0.000696931 -0.000892112 0.000117165 -4.71561e+06 -0.00105615 -10.5615 0.410803
20 2012 -3.56812e+06 -0.000801878 -8.01878 0.455268 -5.22838e-05 -0.000862005 4.24306e-07 -3.56812e+06 -0.000801878 -8.01878 0.455268
30 2006 -3.54869e+06 -0.000800232 -8.00232 0.473579 -0.00311475 -0.000370864 0.000826966 -3.54869e+06 -0.000800232 -8.00232 0.473579
60 2000 -2.39804e+06 -0.000542579 -5.42579 0.501 -0.00536728 0.000135253 0.00132793 -2.39804e+06 -0.000542579 -5.42579 0.501
120 1970 795642 0.000182585 1.82585 0.514213 0.00985269 -0.00100947 0.00274656 795642 0.000182585 1.82585 0.514213
240 1929 -4.43347e+06 -0.00103891 -10.3891 0.522551 -0.00114679 -0.000712769 1.51828e-05 -4.43347e+06 -0.00103891 -10.3891 0.522551

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 531 587895 0.00533686 53.3686
09:20 305 410171 0.00566941 56.6941
09:40 229 242834 -0.00180373 -18.0373
10:00 202 354015 0.00537602 53.7602
10:20 186 308013 0.00187846 18.7846
10:40 177 353817 0.00542515 54.2515
11:00 324 667281 0.00262684 26.2684
11:20 275 824033 0.00292995 29.2995
11:40 216 577984 0.00524632 52.4632
12:00 186 713709 0.00451622 45.1622
12:20 198 787532 0.00471868 47.1868
12:40 216 782404 0.00237332 23.7332
13:00 219 829669 0.0022252 22.252
13:20 231 659279 0.00669342 66.9342
13:40 119 333241 0.0161085 161.085
14:00 127 283817 0.00116846 11.6846
14:20 136 261636 0.0137499 137.499
14:40 85 278678 0.00559762 55.9762
15:00 151 387476 0.0100593 100.593
15:20 0 0

Z-Score-Quality Scatter + Regression

Model Buy/Sell Scatter + Regression