KOSPI Backtest Dashboard

run_id: 20260322T115350Z_userreq_toss_ft_trans_bins96_20260322_tossenriched_z3p3
generated_at_utc: 2026-03-22T11:56:43.943107+00:00

Top KPI

trade_return_per_trade_bp = (total_pnl_final / total_trade_notional) * 10000
metric value
total_pnl_final 36.377M
total_trade_notional 10205.783M
daily_trade_notional 248.922M
total_fee 10.206M
mdd_pnl -5.441M
alpha_vs_dynamic_notional_beta_pnl_final 31.497M
alpha_vs_avg_hold_notional_beta_pnl_final 31.047M
dynamic_alpha_mdd_pnl -1.679M
avg_hold_alpha_mdd_pnl -2.213M
dynamic_alpha_sharpe_annualized 13.0904
avg_hold_alpha_sharpe_annualized 12.817
time_avg_total_notional_position_usdt 47.851M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 47.851M
trade_return_per_trade_bp 35.64bp
roi_avg_notional_position_pct 76.02%
roi_peak_notional_position_pct 35.97%
num_trades 4,168
high_mc_trade_notional 0.000M
high_mc_sharpe_annualized
high_mc_trade_return_per_trade_bp
low_mc_trade_notional 10205.783M
low_mc_sharpe_annualized 13.3819
low_mc_trade_return_per_trade_bp 35.64bp
sharpe_annualized 13.3819

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.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 36.377M
total_pnl_peak 36.512M
dynamic_notional_beta_pnl_final 4.880M
alpha_vs_dynamic_notional_beta_pnl_final 31.497M
avg_hold_notional_beta_pnl_final 5.330M
alpha_vs_avg_hold_notional_beta_pnl_final 31.047M
high_mc_dynamic_notional_beta_pnl_final 0.000M
low_mc_dynamic_notional_beta_pnl_final 4.880M
high_mc_avg_hold_notional_beta_pnl_final 0.000M
low_mc_avg_hold_notional_beta_pnl_final 5.330M
high_mc_alpha_vs_dynamic_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_dynamic_notional_beta_pnl_final 31.497M
high_mc_alpha_vs_avg_hold_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_avg_hold_notional_beta_pnl_final 31.047M
dynamic_alpha_mdd_pnl -1.679M
dynamic_alpha_sharpe_annualized 13.0904
avg_hold_alpha_mdd_pnl -2.213M
avg_hold_alpha_sharpe_annualized 12.817
num_trades 4,168
total_traded_amount_sum 8.56579e+06
total_trade_notional 10205.783M
daily_trade_notional 248.922M
trading_day_count 41
total_fee 10.206M
time_avg_total_notional_position_usdt 47.851M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 47.851M
time_avg_net_position_usdt 47.851M
time_avg_abs_net_position_usdt 47.851M
peak_abs_net_position_usdt 1.0112e+08
roi_avg_notional_position_pct 76.02%
roi_peak_notional_position_pct 35.97%
mdd_pnl -5.441M
sharpe_annualized 13.3819
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 36.377M
low_mc_trade_notional 10205.783M
low_mc_num_trades 4,168
low_mc_sharpe_annualized 13.3819
low_mc_trade_return_per_trade_bp 35.64bp
model_zscore_pnl_final 4061.802M
hedge_zscore_pnl_final 749.519M
force_zscore_pnl_final 0.000M
funding_fee_pnl_final 0.000M
funding_event_count 0
model_win_rate_20m 65.43%
hedge_win_rate_20m 44.51%
force_win_rate_20m
model_win_rate_btc_adj_20m 65.43%
hedge_win_rate_btc_adj_20m 44.51%
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 3.63772e+07 1.02058e+10 4168 13.3819 35.6437
high 0 0 0
low 3.63772e+07 1.02058e+10 4168 13.3819 35.6437

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 2755 1.2237e+07 0.00183025 18.3025 0.633031 0.000938913 0.00115449 0.000270587 1.2237e+07 0.00183025 18.3025 0.633031
10 2755 1.67892e+07 0.00251111 25.1111 0.647187 0.00270803 0.000642151 0.00172058 1.67892e+07 0.00251111 25.1111 0.647187
20 2754 2.02301e+07 0.0030269 30.269 0.654321 0.00552039 -0.000552046 0.00505711 2.02301e+07 0.0030269 30.269 0.654321
30 2753 2.16453e+07 0.00323988 32.3988 0.649473 0.00622883 -0.000775788 0.00562933 2.16453e+07 0.00323988 32.3988 0.649473
60 2746 2.58212e+07 0.00387498 38.7498 0.642025 0.00461854 0.000885221 0.00172329 2.58212e+07 0.00387498 38.7498 0.642025
120 2724 3.80565e+07 0.00575891 57.5891 0.613069 -0.00486924 0.00833948 0.000761611 3.80565e+07 0.00575891 57.5891 0.613069
240 2678 4.26497e+07 0.00656886 65.6886 0.598581 0.000730274 0.00570429 1.16728e-05 4.26497e+07 0.00656886 65.6886 0.598581

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 1413 -2.36249e+06 -0.000671198 -6.71198 0.374381 0.00349264 -0.00140733 0.0137331 -2.36249e+06 -0.000671198 -6.71198 0.374381
10 1413 -2.56029e+06 -0.000727393 -7.27393 0.418967 0.00329842 -0.00140269 0.00822426 -2.56029e+06 -0.000727393 -7.27393 0.418967
20 1411 -3.56757e+06 -0.00101501 -10.1501 0.445074 0.00443954 -0.00196358 0.00411831 -3.56757e+06 -0.00101501 -10.1501 0.445074
30 1408 -2.9092e+06 -0.000829486 -8.29486 0.462358 0.00645437 -0.00220119 0.00912726 -2.9092e+06 -0.000829486 -8.29486 0.462358
60 1401 -5.07803e+06 -0.00145523 -14.5523 0.449679 -0.00991913 0.000607084 0.00896931 -5.07803e+06 -0.00145523 -14.5523 0.449679
120 1392 -6.15707e+06 -0.00177601 -17.7601 0.469828 -0.00834046 -3.90604e-05 0.00365769 -6.15707e+06 -0.00177601 -17.7601 0.469828
240 1357 -6.52903e+06 -0.00193235 -19.3235 0.484156 -0.0201283 0.00226152 0.0116743 -6.52903e+06 -0.00193235 -19.3235 0.484156

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 214 374503 0.00773072 77.3072
09:20 183 373460 0.00515849 51.5849
09:40 122 316689 -0.00111489 -11.1489
10:00 124 224557 0.00541862 54.1862
10:20 93 170412 0.0046843 46.843
10:40 94 280920 0.00393698 39.3698
11:00 117 271331 0.00290799 29.0799
11:20 116 340323 0.00545519 54.5519
11:40 67 124158 0.00555154 55.5154
12:00 72 192482 0.00607235 60.7235
12:20 86 136479 0.00718737 71.8737
12:40 90 149694 0.00446828 44.6828
13:00 97 195105 0.00526649 52.6649
13:20 140 302106 0.0225054 225.054
13:40 142 259718 0.0127912 127.912
14:00 122 215560 0.00372993 37.2993
14:20 122 185972 0.0063602 63.602
14:40 50 79221 0.0164941 164.941
15:00 79 105124 0.00360603 36.0603
15:20 0 0

Z-Score-Quality Scatter + Regression

Model Buy/Sell Scatter + Regression