KOSPI Backtest Dashboard

run_id: 20260323_ens2_best_tossenriched_z2p995_w391 generated: 2026-03-24T08:05:57.153016+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 21.053M
Return per Unit Volume 17.85bp
Beta (Dynamic) 12.622M
Alpha (Dynamic) 8.431M
Alpha Return per Unit Volume 7.15bp
Sharpe (Annualized) 3.8542
Alpha Sharpe (Annualized) 4.5570
Trades 4,972
Daily Trade Notional 287.694M
Trading Days 41
Total Fee 11.795M
Avg Position Notional 51.401M
ROI (Avg Position) 40.96%
ROI (Peak Position) 19.20%
Max Drawdown -15.673M
Model Win Rate (120m) 55.42%
Hedge Win Rate (120m) 45.18%

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 391

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 3378 4.09662e+06 0.000515891 5.15891 0.584962 0.00788464 -0.000106171 0.000263126 4.09662e+06 0.000515891 5.15891 0.584962
10 3378 4.79744e+06 0.000604146 6.04146 0.569864 0.00923864 -9.63253e-05 0.000211202 4.79744e+06 0.000604146 6.04146 0.569864
20 3375 7.6178e+06 0.000960157 9.60157 0.560593 0.00364944 0.000691566 2.29834e-05 7.6178e+06 0.000960157 9.60157 0.560593
30 3369 9.17027e+06 0.00115792 11.5792 0.56545 -0.000773505 0.00129486 7.41978e-07 9.17027e+06 0.00115792 11.5792 0.56545
60 3342 1.46452e+07 0.00186317 18.6317 0.561341 0.0163632 0.000765947 0.000165589 1.46452e+07 0.00186317 18.6317 0.561341
120 3257 2.25801e+07 0.00294487 29.4487 0.554191 0.0656295 -0.00188137 0.00128722 2.25801e+07 0.00294487 29.4487 0.554191
240 3176 3.91852e+07 0.00523885 52.3885 0.541562 0.17092 -0.00756182 0.0055028 3.91852e+07 0.00523885 52.3885 0.541562

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 1594 -3.7887e+06 -0.000982903 -9.82903 0.470514 0.10936 -0.00226166 0.0294248 -3.7887e+06 -0.000982903 -9.82903 0.470514
10 1594 -2.48217e+06 -0.000643948 -6.43948 0.469887 0.0350111 -0.00119888 0.00144711 -2.48217e+06 -0.000643948 -6.43948 0.469887
20 1589 -3.68043e+06 -0.000957843 -9.57843 0.477659 0.0805046 -0.00204043 0.0057016 -3.68043e+06 -0.000957843 -9.57843 0.477659
30 1587 -4.14123e+06 -0.00107916 -10.7916 0.470699 0.0126393 -0.00134201 0.000130942 -4.14123e+06 -0.00107916 -10.7916 0.470699
60 1576 -8.60128e+06 -0.00225703 -22.5703 0.457487 0.0646805 -0.00316493 0.00191234 -8.60128e+06 -0.00225703 -22.5703 0.457487
120 1567 -1.05364e+07 -0.00278091 -27.8091 0.451819 -0.00401178 -0.00275362 5.43606e-06 -1.05364e+07 -0.00278091 -27.8091 0.451819
240 1542 -1.99347e+07 -0.00534858 -53.4858 0.437095 -0.0903788 -0.00451424 0.00122658 -1.99347e+07 -0.00534858 -53.4858 0.437095

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 57 2915 0.00176452 17.6452
09:20 61 3462 0.0134247 134.247
09:40 63 5758 0.00195245 19.5245
10:00 83 2978 -0.00656387 -65.6387
10:20 84 3677 0.0012442 12.442
10:40 77 4618 0.00326544 32.6544
11:00 100 4683 0.00246346 24.6346
11:20 75 2879 0.00971406 97.1406
11:40 82 4425 0.00342417 34.2417
12:00 77 4684 0.00267453 26.7453
12:20 87 4817 0.0032428 32.428
12:40 96 5765 0.00055909 5.5909
13:00 169 13713 -0.00118894 -11.8894
13:20 363 25196 0.0032793 32.793
13:40 351 22766 0.00592487 59.2487
14:00 259 16923 0.00428104 42.8104
14:20 175 10495 0.0120936 120.936
14:40 162 14483 0.0161441 161.441
15:00 135 14298 0.0101361 101.361
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.06770.7250.043%0.020%2.090.355%0.143%2.48
10:000.06060.06770.8950.084%0.052%1.610.184%0.098%1.88
11:000.07700.06771.1370.295%0.384%0.770.075%0.152%0.49
12:000.07980.06771.1790.395%0.263%1.500.092%0.070%1.31
13:000.07210.06761.0660.283%0.139%2.040.157%0.096%1.64
14:000.06970.06751.0320.108%0.156%0.690.062%0.134%0.46
15:000.05220.06750.7730.030%0.053%0.560.252%0.338%0.75

Notes:

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