KOSPI Backtest Dashboard

run_id: 20260322T120517Z_userreq_toss_mega9_parquet_20260322_tossenriched_z3p20
generated_at_utc: 2026-03-22T12:05:56.964215+00:00

Top KPI

trade_return_per_trade_bp = (total_pnl_final / total_trade_notional) * 10000
metric value
total_pnl_final 40.315M
total_trade_notional 13628.148M
daily_trade_notional 332.394M
total_fee 13.628M
mdd_pnl -4.823M
alpha_vs_dynamic_notional_beta_pnl_final 37.203M
alpha_vs_avg_hold_notional_beta_pnl_final 33.069M
dynamic_alpha_mdd_pnl -2.076M
avg_hold_alpha_mdd_pnl -2.533M
dynamic_alpha_sharpe_annualized 13.5337
avg_hold_alpha_sharpe_annualized 11.5414
time_avg_total_notional_position_usdt 65.042M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 65.042M
trade_return_per_trade_bp 29.58bp
roi_avg_notional_position_pct 61.98%
roi_peak_notional_position_pct 39.81%
num_trades 5,638
high_mc_trade_notional 0.000M
high_mc_sharpe_annualized
high_mc_trade_return_per_trade_bp
low_mc_trade_notional 13628.148M
low_mc_sharpe_annualized 13.3412
low_mc_trade_return_per_trade_bp 29.58bp
sharpe_annualized 13.3412

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.315M
total_pnl_peak 40.361M
dynamic_notional_beta_pnl_final 3.112M
alpha_vs_dynamic_notional_beta_pnl_final 37.203M
avg_hold_notional_beta_pnl_final 7.245M
alpha_vs_avg_hold_notional_beta_pnl_final 33.069M
high_mc_dynamic_notional_beta_pnl_final 0.000M
low_mc_dynamic_notional_beta_pnl_final 3.112M
high_mc_avg_hold_notional_beta_pnl_final 0.000M
low_mc_avg_hold_notional_beta_pnl_final 7.245M
high_mc_alpha_vs_dynamic_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_dynamic_notional_beta_pnl_final 37.203M
high_mc_alpha_vs_avg_hold_notional_beta_pnl_final 0.000M
low_mc_alpha_vs_avg_hold_notional_beta_pnl_final 33.069M
dynamic_alpha_mdd_pnl -2.076M
dynamic_alpha_sharpe_annualized 13.5337
avg_hold_alpha_mdd_pnl -2.533M
avg_hold_alpha_sharpe_annualized 11.5414
num_trades 5,638
total_traded_amount_sum 1.2919e+07
total_trade_notional 13628.148M
daily_trade_notional 332.394M
trading_day_count 41
total_fee 13.628M
time_avg_total_notional_position_usdt 65.042M
time_avg_high_mc_notional_position_usdt 0.000M
time_avg_low_mc_notional_position_usdt 65.042M
time_avg_net_position_usdt 65.042M
time_avg_abs_net_position_usdt 65.042M
peak_abs_net_position_usdt 1.01268e+08
roi_avg_notional_position_pct 61.98%
roi_peak_notional_position_pct 39.81%
mdd_pnl -4.823M
sharpe_annualized 13.3412
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.315M
low_mc_trade_notional 13628.148M
low_mc_num_trades 5,638
low_mc_sharpe_annualized 13.3412
low_mc_trade_return_per_trade_bp 29.58bp
model_zscore_pnl_final 5577.076M
hedge_zscore_pnl_final 908.516M
force_zscore_pnl_final 0.000M
funding_fee_pnl_final 0.000M
funding_event_count 0
model_win_rate_20m 64.98%
hedge_win_rate_20m 44.10%
force_win_rate_20m
model_win_rate_btc_adj_20m 64.98%
hedge_win_rate_btc_adj_20m 44.10%
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.03147e+07 1.36281e+10 5638 13.3412 29.5819
high 0 0 0
low 4.03147e+07 1.36281e+10 5638 13.3412 29.5819

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 3882 1.3542e+07 0.00145502 14.5502 0.614116 0.00146908 0.000511639 0.000555502 1.3542e+07 0.00145502 14.5502 0.614116
10 3882 2.02238e+07 0.00217294 21.7294 0.640392 0.00393064 -0.000355675 0.00314012 2.02238e+07 0.00217294 21.7294 0.640392
20 3881 2.35918e+07 0.0025355 25.355 0.649833 0.00388245 1.51097e-05 0.00214185 2.35918e+07 0.0025355 25.355 0.649833
30 3880 2.4666e+07 0.00265165 26.5165 0.641753 0.00485287 -0.00043674 0.00281461 2.4666e+07 0.00265165 26.5165 0.641753
60 3877 2.60777e+07 0.00280564 28.0564 0.629611 0.00308115 0.000778459 0.000694442 2.60777e+07 0.00280564 28.0564 0.629611
120 3869 4.42253e+07 0.00476844 47.6844 0.611786 -0.00456646 0.00716564 0.000607873 4.42253e+07 0.00476844 47.6844 0.611786
240 3851 4.81703e+07 0.00521911 52.1911 0.590496 -0.000177238 0.00505132 5.60336e-07 4.81703e+07 0.00521911 52.1911 0.590496

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 1756 -2.89356e+06 -0.000669644 -6.69644 0.373007 0.00323082 -0.00135497 0.00958551 -2.89356e+06 -0.000669644 -6.69644 0.373007
10 1756 -2.26322e+06 -0.000523768 -5.23768 0.432802 0.0047846 -0.00151721 0.0151957 -2.26322e+06 -0.000523768 -5.23768 0.432802
20 1755 -3.15479e+06 -0.000730534 -7.30534 0.441026 0.00648111 -0.00213798 0.00899658 -3.15479e+06 -0.000730534 -7.30534 0.441026
30 1754 -3.48808e+06 -0.000808195 -8.08195 0.467503 0.00794336 -0.00250668 0.00899395 -3.48808e+06 -0.000808195 -8.08195 0.467503
60 1748 -5.22996e+06 -0.00121608 -12.1608 0.469108 0.0053964 -0.00244995 0.00225636 -5.22996e+06 -0.00121608 -12.1608 0.469108
120 1745 -2.84379e+06 -0.000662405 -6.62405 0.494556 0.0111249 -0.00313494 0.00545225 -2.84379e+06 -0.000662405 -6.62405 0.494556
240 1741 -343341 -8.01653e-05 -0.801653 0.519242 0.00524658 -0.00129172 0.000568748 -343341 -8.01653e-05 -0.801653 0.519242

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 250 499374 0.00895554 89.5554
09:20 204 359101 0.00309458 30.9458
09:40 190 497608 -0.0011856 -11.856
10:00 176 358695 0.00427322 42.7322
10:20 162 332716 0.00311537 31.1537
10:40 150 423983 0.00213049 21.3049
11:00 186 465475 0.00132614 13.2614
11:20 178 447756 0.00456455 45.6455
11:40 125 282470 0.00329979 32.9979
12:00 125 327816 0.00635909 63.5909
12:20 111 228687 0.00420743 42.0743
12:40 114 209070 0.00440179 44.0179
13:00 124 273851 0.00497303 49.7303
13:20 200 409950 0.0221363 221.363
13:40 186 487155 0.01224 122.4
14:00 153 357671 0.00610664 61.0664
14:20 127 247779 0.00394081 39.4081
14:40 57 139944 0.00144717 14.4717
15:00 67 124478 0.0038017 38.017
15:20 0 0

Z-Score-Quality Scatter + Regression

Model Buy/Sell Scatter + Regression