KOSPI Backtest Dashboard

run_id: 20260323_ens2_best_tossenriched_z2p995_w1 generated: 2026-03-23T08:08:45.918626+00:00
exchangekospi
strategy_namelong_short_zscore_gtc_strategy
start_time2026-01-02T09:00:00+09:00
end_time2026-03-06T09:00:00+09:00
fee_rate0.001
plot_every_minutes60
candle_source/data/kospi_data/enriched_candle_toss_from_enricher
inference_source/shared/inference_kospi/top200_ens2_best_parquet_20260323

Performance

Metric Value
Total PnL 17.936M
Return per Unit Volume 16.66bp
Beta (Dynamic) 10.746M
Alpha (Dynamic) 7.190M
Alpha Return per Unit Volume 6.68bp
Sharpe (Annualized) 4.5803
Alpha Sharpe (Annualized) 3.8267
Trades 4,563
Daily Trade Notional 262.551M
Trading Days 41
Total Fee 10.765M
Avg Position Notional 48.347M
ROI (Avg Position) 37.10%
ROI (Peak Position) 21.09%
Max Drawdown -11.586M
Model Win Rate (120m) 53.30%
Hedge Win Rate (120m) 48.37%

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.995
z_score_time_window 1

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_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 3026 3.13238e+06 0.000445948 4.45948 0.573364 0.0207225 -0.00102537 0.000947215 3.13238e+06 0.000445948 4.45948 0.573364
10 3026 3.65147e+06 0.000519849 5.19849 0.561798 0.0233393 -0.000991432 0.000741195 3.65147e+06 0.000519849 5.19849 0.561798
20 3023 6.1901e+06 0.000882119 8.82119 0.5478 0.0322803 -0.00131478 0.00119031 6.1901e+06 0.000882119 8.82119 0.5478
30 3023 8.57011e+06 0.00122128 12.2128 0.551108 0.0392251 -0.00156003 0.00143313 8.57011e+06 0.00122128 12.2128 0.551108
60 3016 1.03526e+07 0.00147842 14.7842 0.542772 0.0802074 -0.00425555 0.00349084 1.03526e+07 0.00147842 14.7842 0.542772
120 2985 1.02188e+07 0.00147523 14.7523 0.532998 0.131519 -0.0078798 0.00522985 1.02188e+07 0.00147523 14.7523 0.532998
240 2920 2.31563e+07 0.00341742 34.1742 0.525342 0.190439 -0.0102229 0.00577168 2.31563e+07 0.00341742 34.1742 0.525342

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 1537 -861826 -0.000230404 -2.30404 0.472999 0.00879277 -0.000382512 0.000504198 -861826 -0.000230404 -2.30404 0.472999
10 1537 -1.3543e+06 -0.000362064 -3.62064 0.463891 0.00461312 -0.00043679 8.34495e-05 -1.3543e+06 -0.000362064 -3.62064 0.463891
20 1529 -2.21275e+06 -0.000594602 -5.94602 0.489209 -0.00878717 -0.000435574 0.000114489 -2.21275e+06 -0.000594602 -5.94602 0.489209
30 1526 -2.39185e+06 -0.000643951 -6.43951 0.485583 -0.0313138 -0.00012751 0.000918094 -2.39185e+06 -0.000643951 -6.43951 0.485583
60 1519 -5.2723e+06 -0.00142579 -14.2579 0.508229 -0.0080335 -0.00123129 2.73949e-05 -5.2723e+06 -0.00142579 -14.2579 0.508229
120 1507 -7.72503e+06 -0.0021052 -21.052 0.483743 -0.0500762 -0.00127695 0.000672162 -7.72503e+06 -0.0021052 -21.052 0.483743
240 1460 -1.85415e+07 -0.00521489 -52.1489 0.484932 0.0369661 -0.00573019 0.000160023 -1.85415e+07 -0.00521489 -52.1489 0.484932

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_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 284 15556 -0.00152329 -15.2329
09:20 264 11712 0.00467473 46.7473
09:40 183 12218 0.00457866 45.7866
10:00 140 5195 -0.00238079 -23.8079
10:20 135 6696 0.000449359 4.49359
10:40 127 7679 0.000396888 3.96888
11:00 124 6044 -0.00153934 -15.3934
11:20 71 2407 0.00943868 94.3868
11:40 72 3757 0.00279795 27.9795
12:00 80 5738 0.00388183 38.8183
12:20 82 5400 0.00206721 20.6721
12:40 133 8569 -0.000549986 -5.49986
13:00 214 14684 -0.000131899 -1.31899
13:20 156 8792 0.00129265 12.9265
13:40 102 4845 0.00594649 59.4649
14:00 78 5181 0.00627311 62.7311
14:20 43 1642 0.0235671 235.671
14:40 39 3563 0.0271771 271.771
15:00 39 2531 0.00521937 52.1937
15:20 0 0

Z-Score-Quality Scatter + Regression

Model Buy/Sell Scatter + Regression

Notional Periodicity Analysis

Intraday periodicity in total notional position: inference tail asymmetry & rolling z-score window effects

Intraday Notional & Execution Pattern

Inference Tail Asymmetry (before z-score)

Rolling Z-Score Window Effect

Counterfactual: Cross-Sectional Z vs Rolling Z

Summary Table

Hourdata σpool σamp (d/p)Buy sig%Sell sig%B/S ratiopos >3σ%neg >3σ%pos/neg
09:000.04910.04781.0260.302%0.104%2.910.355%0.143%2.48
10:000.06060.06021.0060.158%0.091%1.730.184%0.098%1.88
11:000.07700.07581.0150.083%0.107%0.770.075%0.152%0.49
12:000.07980.07901.0100.092%0.059%1.540.092%0.070%1.31
13:000.07210.07161.0060.147%0.087%1.680.157%0.096%1.64
14:000.06970.06931.0060.058%0.115%0.500.062%0.134%0.46
15:000.05220.04361.1960.035%0.172%0.200.252%0.338%0.75

Notes:

z_score_threshold = 2.995, z_score_time_window = 1 bars, coins = 200

data σ = model_pred cross-sectional std at that hour

pool σ = rolling shared window std (z-score denominator)

amp = data σ / pool σ (>1 → z-scores inflated, <1 → suppressed)

B/S ratio = buy signal / sell signal (>1 → net long entry dominant)

pos/neg >3σ = raw model_pred tail asymmetry before z-score transformation