KOSPI Backtest Dashboard

run_id: 20260323_ens2_best_tossenriched_z2p995_w120_hpt1p5 generated: 2026-03-24T08:12:33.554427+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 31.646M
Return per Unit Volume 24.96bp
Beta (Dynamic) 18.844M
Alpha (Dynamic) 12.802M
Alpha Return per Unit Volume 10.10bp
Sharpe (Annualized) 5.6391
Alpha Sharpe (Annualized) 6.3114
Trades 5,362
Daily Trade Notional 309.239M
Trading Days 41
Total Fee 12.679M
Avg Position Notional 66.672M
ROI (Avg Position) 47.46%
ROI (Peak Position) 28.84%
Max Drawdown -13.162M
Model Win Rate (120m) 54.33%
Hedge Win Rate (120m) 48.28%

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 1.5
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 120

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 3792 7.08689e+06 0.000798583 7.98583 0.594409 0.00259394 0.000603616 3.42827e-05 7.08689e+06 0.000798583 7.98583 0.594409
10 3792 7.39729e+06 0.00083356 8.3356 0.572521 -0.00559498 0.00122615 8.28658e-05 7.39729e+06 0.00083356 8.3356 0.572521
20 3788 9.61365e+06 0.00108442 10.8442 0.560718 -0.00937108 0.00179301 0.000152928 9.61365e+06 0.00108442 10.8442 0.560718
30 3787 1.19769e+07 0.00135134 13.5134 0.569052 -0.0190124 0.00274017 0.00047523 1.19769e+07 0.00135134 13.5134 0.569052
60 3772 1.47441e+07 0.00167006 16.7006 0.561771 -0.00393444 0.00199464 1.23266e-05 1.47441e+07 0.00167006 16.7006 0.561771
120 3716 1.66187e+07 0.00191192 19.1192 0.543326 0.063978 -0.00257911 0.00147271 1.66187e+07 0.00191192 19.1192 0.543326
240 3657 3.02541e+07 0.00353657 35.3657 0.53213 0.116653 -0.00465193 0.00238683 3.02541e+07 0.00353657 35.3657 0.53213

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 1570 -593152 -0.00015591 -1.5591 0.518471 0.0190423 -0.000618769 0.00269131 -593152 -0.00015591 -1.5591 0.518471
10 1570 -561252 -0.000147525 -1.47525 0.501911 0.0253256 -0.000747481 0.00310406 -561252 -0.000147525 -1.47525 0.501911
20 1568 -600207 -0.000157969 -1.57969 0.508291 0.0348861 -0.000961664 0.00335673 -600207 -0.000157969 -1.57969 0.508291
30 1566 -70906.8 -1.86854e-05 -0.186854 0.514687 0.0239715 -0.000574486 0.00113474 -70906.8 -1.86854e-05 -0.186854 0.514687
60 1561 -329212 -8.70418e-05 -0.870418 0.497758 0.00181749 -0.000105332 3.29098e-06 -329212 -8.70418e-05 -0.870418 0.497758
120 1537 -3.90159e+06 -0.00104842 -10.4842 0.482759 -0.0101651 -0.000731974 4.16757e-05 -3.90159e+06 -0.00104842 -10.4842 0.482759
240 1506 -1.31137e+07 -0.00359424 -35.9424 0.47676 -0.0313961 -0.00278711 0.000172425 -1.31137e+07 -0.00359424 -35.9424 0.47676

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 35 1511 -0.00680015 -68.0015
09:20 47 2911 0.0163427 163.427
09:40 70 5569 0.0043308 43.308
10:00 116 4927 -0.00392671 -39.2671
10:20 223 10047 0.00162204 16.2204
10:40 236 15086 0.000396013 3.96013
11:00 253 12857 -0.000730037 -7.30037
11:20 163 7033 0.00433928 43.3928
11:40 129 5917 0.00447829 44.7829
12:00 97 6498 0.00243257 24.3257
12:20 106 5838 0.00447233 44.7233
12:40 108 7226 -0.00153174 -15.3174
13:00 166 10602 -0.00167173 -16.7173
13:20 360 23811 0.00171343 17.1343
13:40 296 19257 0.00603563 60.3563
14:00 163 10251 0.00458812 45.8812
14:20 85 3972 0.00895585 89.5585
14:40 71 4876 0.0175829 175.829
15:00 44 3042 0.0113372 113.372
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.06030.8140.114%0.041%2.750.355%0.143%2.48
10:000.06060.05331.1360.486%0.246%1.980.184%0.098%1.88
11:000.07700.06211.2390.536%0.691%0.780.075%0.152%0.49
12:000.07980.07431.0740.186%0.139%1.330.092%0.070%1.31
13:000.07210.07740.9310.116%0.075%1.540.157%0.096%1.64
14:000.06970.07310.9540.052%0.094%0.550.062%0.134%0.46
15:000.05220.06940.7520.018%0.039%0.460.252%0.338%0.75

Notes:

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