KOSPI Backtest Dashboard

run_id: 20260402T034809Z_userreq_cs_mlp_200base_z2p5_tradefill_m1_0309_0401 generated: 2026-04-02T03:50:28.831547+00:00
backtest_typetrade
exchangekospi
strategy_namelong_short_zscore_gtc_strategy
start_time2026-03-09T09:00:00+09:00
end_time2026-04-02T09:00:00+09:00
fee_rate0.001
trade_maker_exec_ratio1.0
plot_every_minutes120
candle_source/shared/toss_kospi/backtest_candle_1520
inference_source/shared/inference_kospi/cs_mlp_200_base_20260401

Performance

Metric Value
Total PnL 5.808M
Return per Unit Volume 14.31bp
Beta (Dynamic) 1.857M
Alpha (Dynamic) 3.950M
Alpha Return per Unit Volume 9.74bp
Sharpe (Annualized) 2.6419
Alpha Sharpe (Annualized) 5.5088
Trades 2,541
Daily Trade Notional 253.605M
Trading Days 16
Total Fee 4.058M
Avg Position Notional 82.623M
ROI (Avg Position) 7.03%
ROI (Peak Position) 5.72%
Max Drawdown -6.299M
Model Win Rate (120m) 52.58%
Hedge Win Rate (120m) 47.56%

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 1742 -54751.6 -2.01384e-05 -0.201384 0.533295 -0.00315753 0.00043298 0.000579079 -54751.6 -2.01384e-05 -0.201384 0.533295
10 1742 -396412 -0.000145805 -1.45805 0.535591 -0.00110919 0.000216007 4.56885e-05 -396412 -0.000145805 -1.45805 0.535591
20 1742 555015 0.000204142 2.04142 0.540184 0.00833953 -0.000373445 0.00140134 555015 0.000204142 2.04142 0.540184
30 1742 939908 0.00034571 3.4571 0.519518 0.0140421 -0.00084901 0.00263835 939908 0.00034571 3.4571 0.519518
60 1742 1.57422e+06 0.000579019 5.79019 0.533295 0.0425039 -0.00318906 0.0126719 1.57422e+06 0.000579019 5.79019 0.533295
120 1742 4.39163e+06 0.0016153 16.153 0.525832 0.101145 -0.00818756 0.0292764 4.39163e+06 0.0016153 16.153 0.525832
240 1742 4.44053e+06 0.00163329 16.3329 0.494834 0.117651 -0.00983605 0.0182562 4.44053e+06 0.00163329 16.3329 0.494834

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 799 -310850 -0.000232168 -2.32168 0.498123 0.00173629 -0.000144934 0.000482086 -310850 -0.000232168 -2.32168 0.498123
10 799 -437860 -0.00032703 -3.2703 0.500626 0.0152635 -0.000677339 0.0129422 -437860 -0.00032703 -3.2703 0.500626
20 799 -59029.1 -4.40878e-05 -0.440878 0.525657 0.00976578 -0.000105319 0.00313853 -59029.1 -4.40878e-05 -0.440878 0.525657
30 799 375591 0.000280522 2.80522 0.530663 0.0301767 -0.000782651 0.0187613 375591 0.000280522 2.80522 0.530663
60 799 -613297 -0.000458061 -4.58061 0.516896 0.0444441 -0.00210083 0.0274281 -613297 -0.000458061 -4.58061 0.516896
120 799 -1.83967e+06 -0.00137402 -13.7402 0.475594 0.0108002 -0.00150632 0.000669296 -1.83967e+06 -0.00137402 -13.7402 0.475594
240 792 -3.18293e+06 -0.00239546 -23.9546 0.494949 0.00667954 -0.00233516 0.000142008 -3.18293e+06 -0.00239546 -23.9546 0.494949

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 13 274 0.00473215 47.3215
09:20 34 1296 0.000551074 5.51074
09:40 68 2402 0.00215821 21.5821
10:00 57 2647 -0.00233229 -23.3229
10:20 93 3160 0.001976 19.76
10:40 120 4274 0.0010712 10.712
11:00 97 6197 0.00304036 30.4036
11:20 69 2511 -0.000395753 -3.95753
11:40 70 4066 0.00154794 15.4794
12:00 77 2113 0.00579684 57.9684
12:20 77 2421 0.00736354 73.6354
12:40 53 2488 0.00347185 34.7185
13:00 66 1117 0.0021827 21.827
13:20 80 2660 -0.0109303 -109.303
13:40 121 4567 0.000282278 2.82278
14:00 97 2918 0.000579908 5.79908
14:20 50 2213 0.00659162 65.9162
14:40 28 667 0.000658291 6.58291
15:00 22 603 0.0210207 210.207
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.125%1.925%0.580.193%0.455%0.42
11:000.10970.09801.1191.127%1.643%0.690.221%0.278%0.79
12:000.10850.10731.0110.705%0.832%0.850.247%0.234%1.06
13:000.10260.10740.9550.522%0.753%0.690.253%0.502%0.50
14:000.10370.10530.9840.608%1.109%0.550.361%0.729%0.50
15:000.09070.10300.8810.369%0.921%0.400.311%0.854%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