KOSPI Backtest Dashboard

run_id: 20260323_ens2_best_tossenriched_z2p995_w10 generated: 2026-03-23T08:51:14.619086+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 16.491M
Return per Unit Volume 14.13bp
Beta (Dynamic) 12.156M
Alpha (Dynamic) 4.336M
Alpha Return per Unit Volume 3.71bp
Sharpe (Annualized) 3.7131
Alpha Sharpe (Annualized) 2.1677
Trades 4,985
Daily Trade Notional 284.764M
Trading Days 41
Total Fee 11.675M
Avg Position Notional 56.119M
ROI (Avg Position) 29.39%
ROI (Peak Position) 16.37%
Max Drawdown -15.166M
Model Win Rate (120m) 52.41%
Hedge Win Rate (120m) 47.23%

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 10

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 3346 1.40876e+06 0.000182926 1.82926 0.562762 0.0409411 -0.0026784 0.00380596 1.40876e+06 0.000182926 1.82926 0.562762
10 3346 74791.3 9.71155e-06 0.0971155 0.543036 0.0586 -0.00389139 0.00497058 74791.3 9.71155e-06 0.0971155 0.543036
20 3344 3.20053e+06 0.00041582 4.1582 0.540371 0.0587359 -0.00347412 0.00432857 3.20053e+06 0.00041582 4.1582 0.540371
30 3344 6.48064e+06 0.000841979 8.41979 0.542763 0.0667989 -0.0037743 0.00452385 6.48064e+06 0.000841979 8.41979 0.542763
60 3336 9.13437e+06 0.00118945 11.8945 0.536271 0.0782341 -0.00425117 0.00377557 9.13437e+06 0.00118945 11.8945 0.536271
120 3305 8.78559e+06 0.00115538 11.5538 0.524054 0.141928 -0.00887519 0.00722293 8.78559e+06 0.00115538 11.5538 0.524054
240 3240 2.27232e+07 0.00304868 30.4868 0.52716 0.198808 -0.0109356 0.00743196 2.27232e+07 0.00304868 30.4868 0.52716

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 1639 -1.04016e+06 -0.000261736 -2.61736 0.461257 0.00757995 -0.000394175 0.000478102 -1.04016e+06 -0.000261736 -2.61736 0.461257
10 1639 -1.47674e+06 -0.000371593 -3.71593 0.456986 0.000335691 -0.000377336 6.09572e-07 -1.47674e+06 -0.000371593 -3.71593 0.456986
20 1630 -2.59594e+06 -0.000656769 -6.56769 0.479141 -0.00263735 -0.00060022 1.43023e-05 -2.59594e+06 -0.000656769 -6.56769 0.479141
30 1625 -3.50179e+06 -0.000888658 -8.88658 0.468308 -0.00261049 -0.000823497 7.94271e-06 -3.50179e+06 -0.000888658 -8.88658 0.468308
60 1619 -5.75176e+06 -0.00146482 -14.6482 0.493515 0.0430381 -0.00215235 0.000996304 -5.75176e+06 -0.00146482 -14.6482 0.493515
120 1609 -1.12051e+07 -0.00287033 -28.7033 0.472343 0.0561481 -0.00380307 0.000914063 -1.12051e+07 -0.00287033 -28.7033 0.472343
240 1566 -2.07118e+07 -0.00545244 -54.5244 0.461047 0.16062 -0.00815508 0.00321301 -2.07118e+07 -0.00545244 -54.5244 0.461047

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 461 23859 -0.002953 -29.53
09:20 253 11791 0.00383609 38.3609
09:40 179 13264 0.00420783 42.0783
10:00 136 4864 -0.00363175 -36.3175
10:20 132 5977 -0.00191575 -19.1575
10:40 113 6935 0.00117524 11.7524
11:00 132 6120 -0.000539383 -5.39383
11:20 70 2401 0.00787551 78.7551
11:40 82 4420 -0.0015274 -15.274
12:00 84 6354 0.00407116 40.7116
12:20 89 5757 0.00398301 39.8301
12:40 129 8268 -0.00195443 -19.5443
13:00 224 15632 -0.000467703 -4.67703
13:20 206 12298 0.00199223 19.9223
13:40 105 5852 0.00293914 29.3914
14:00 78 5185 0.00809386 80.9386
14:20 44 2334 0.0195292 195.292
14:40 38 2501 0.0200848 200.848
15:00 39 3406 0.00951984 95.1984
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.04531.0830.715%0.567%1.260.355%0.143%2.48
10:000.06060.05991.0120.187%0.119%1.580.184%0.098%1.88
11:000.07700.07471.0300.105%0.167%0.630.075%0.152%0.49
12:000.07980.07971.0010.098%0.065%1.500.092%0.070%1.31
13:000.07210.07211.0000.156%0.094%1.660.157%0.096%1.64
14:000.06970.06980.9980.060%0.118%0.510.062%0.134%0.46
15:000.05220.05500.9480.253%0.542%0.470.252%0.338%0.75

Notes:

z_score_threshold = 2.995, z_score_time_window = 10 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