KOSPI Backtest Dashboard

run_id: cs_mlp_200base_parquet_z2p5_trade generated: 2026-04-03T05:22:43.412318+00:00
backtest_typetrade
exchangekospi
strategy_namelong_short_zscore_gtc_strategy
start_time2026-02-02T09:00:00+09:00
end_time2026-03-31T09:00:00+09:00
fee_rate0.001
trade_maker_exec_ratio0.0
plot_every_minutes120
candle_source/shared/toss_kospi/backtest_candle_1520
inference_source/shared/inference_kospi/cs_mlp_200_base_parquet

Performance

Metric Value
Total PnL -3.637M
Return per Unit Volume -8.15bp
Beta (Dynamic) -7.430M
Alpha (Dynamic) 3.793M
Alpha Return per Unit Volume 8.51bp
Sharpe (Annualized) -0.6564
Alpha Sharpe (Annualized) 1.6687
Trades 2,415
Daily Trade Notional 120.527M
Trading Days 37
Total Fee 4.460M
Avg Position Notional 53.829M
ROI (Avg Position) -6.76%
ROI (Peak Position) -3.54%
Max Drawdown -15.138M
Model Win Rate (120m) 49.74%
Hedge Win Rate (120m) 41.52%

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.5
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 1568 -3.38491e+06 -0.00119486 -11.9486 0.419643 -0.00653854 -0.000390638 0.00206513 -3.38491e+06 -0.00119486 -11.9486 0.419643
10 1566 -4.72773e+06 -0.0016716 -16.716 0.416347 -0.00392854 -0.000982295 0.00048181 -4.72773e+06 -0.0016716 -16.716 0.416347
20 1566 -4.96451e+06 -0.00175532 -17.5532 0.444444 -0.021234 0.000485384 0.00730486 -4.96451e+06 -0.00175532 -17.5532 0.444444
30 1561 -3.85033e+06 -0.00136339 -13.6339 0.44843 -0.00458447 -0.000828594 0.00024249 -3.85033e+06 -0.00136339 -13.6339 0.44843
60 1552 -2.66772e+06 -0.000950484 -9.50484 0.481959 -0.016671 0.000680942 0.00189561 -2.66772e+06 -0.000950484 -9.50484 0.481959
120 1534 2.62979e+06 0.000948466 9.48466 0.497392 0.0949925 -0.00939521 0.0345705 2.62979e+06 0.000948466 9.48466 0.497392
240 1511 1.83516e+06 0.000667003 6.67003 0.475182 0.0880069 -0.00866361 0.0157984 1.83516e+06 0.000667003 6.67003 0.475182

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 847 -1.71939e+06 -0.00105704 -10.5704 0.395514 -0.00323372 -0.000940993 0.00235257 -1.71939e+06 -0.00105704 -10.5704 0.395514
10 846 -2.1282e+06 -0.00131025 -13.1025 0.414894 -0.00156452 -0.00113818 0.000297395 -2.1282e+06 -0.00131025 -13.1025 0.414894
20 844 -1.51052e+06 -0.000931276 -9.31276 0.446682 -0.0177591 -0.000473458 0.019317 -1.51052e+06 -0.000931276 -9.31276 0.446682
30 844 -1.48324e+06 -0.000914457 -9.14457 0.446682 -0.0248362 -0.000285237 0.0209175 -1.48324e+06 -0.000914457 -9.14457 0.446682
60 840 -2.69511e+06 -0.00166693 -16.6693 0.464286 -0.021118 -0.00106298 0.00985996 -2.69511e+06 -0.00166693 -16.6693 0.464286
120 831 -8.2384e+06 -0.00513513 -51.3513 0.415162 0.123827 -0.00786658 0.125623 -8.2384e+06 -0.00513513 -51.3513 0.415162
240 801 -7.31948e+06 -0.00468377 -46.8377 0.451935 0.13023 -0.00823064 0.0912107 -7.31948e+06 -0.00468377 -46.8377 0.451935

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 15 656 -0.00785356 -78.5356
09:20 51 1523 0.000803014 8.03014
09:40 87 3345 0.000922186 9.22186
10:00 71 4529 -0.00496104 -49.6104
10:20 115 5154 -0.00108364 -10.8364
10:40 96 2657 0.00146373 14.6373
11:00 92 3763 0.00136804 13.6804
11:20 53 2713 -0.00352298 -35.2298
11:40 56 4100 -0.00335048 -33.5048
12:00 51 1796 0.00567758 56.7758
12:20 70 2929 0.00523682 52.3682
12:40 47 2249 0.00453428 45.3428
13:00 50 2196 -0.000436997 -4.36997
13:20 71 3814 -0.00409021 -40.9021
13:40 96 4260 0.00163975 16.3975
14:00 118 5809 0.0065601 65.601
14:20 52 2222 -0.000564845 -5.64845
14:40 45 1208 0.00707768 70.7768
15:00 26 739 0.00917004 91.7004
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.08020.09430.8500.329%0.452%0.730.332%0.475%0.70
10:000.10020.08651.1581.126%1.925%0.580.192%0.455%0.42
11:000.10970.09801.1191.126%1.645%0.680.221%0.279%0.79
12:000.10850.10741.0110.705%0.833%0.850.247%0.234%1.06
13:000.10260.10740.9550.522%0.754%0.690.253%0.502%0.50
14:000.10370.10530.9840.606%1.108%0.550.361%0.729%0.49
15:000.09070.10300.8810.369%0.919%0.400.311%0.855%0.36

Notes:

z_score_threshold = 2.500, 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