KOSPI Backtest Dashboard

run_id: 20260402T032829Z_userreq_cs_mlp_200base_z3p5_0309_0401 generated: 2026-04-02T03:28:47.271705+00:00
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
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 -1.113M
Return per Unit Volume -11.97bp
Beta (Dynamic) -1.032M
Alpha (Dynamic) -0.080M
Alpha Return per Unit Volume -0.86bp
Sharpe (Annualized) -1.4922
Alpha Sharpe (Annualized) -0.1774
Trades 388
Daily Trade Notional 58.107M
Trading Days 16
Total Fee 0.930M
Avg Position Notional 18.631M
ROI (Avg Position) -5.97%
ROI (Peak Position) -1.80%
Max Drawdown -4.176M
Model Win Rate (120m) 48.10%
Hedge Win Rate (120m) 46.63%

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 3.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 210 -154376 -0.000310619 -3.10619 0.466667 0.000172914 -0.000131472 1.56712e-06 -154376 -0.000310619 -3.10619 0.466667
10 210 -257100 -0.000517313 -5.17313 0.47619 0.00307974 -0.000673433 0.000245745 -257100 -0.000517313 -5.17313 0.47619
20 210 -141290 -0.000284291 -2.84291 0.490476 0.0286482 -0.0029593 0.0131562 -141290 -0.000284291 -2.84291 0.490476
30 210 405814 0.00081654 8.1654 0.552381 0.0370456 -0.00270904 0.0145937 405814 0.00081654 8.1654 0.552381
60 210 904554 0.00182006 18.2006 0.542857 0.11293 -0.00986997 0.0659356 904554 0.00182006 18.2006 0.542857
120 210 -107887 -0.000217079 -2.17079 0.480952 0.18123 -0.0189887 0.0887201 -107887 -0.000217079 -2.17079 0.480952
240 210 36810.5 7.40665e-05 0.740665 0.47619 0.240477 -0.0253501 0.0813166 36810.5 7.40665e-05 0.740665 0.47619

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 178 -110400 -0.00025513 -2.5513 0.44382 0.00589539 -0.000478738 0.00514663 -110400 -0.00025513 -2.5513 0.44382
10 178 116401 0.000268999 2.68999 0.550562 0.0125436 -0.000217623 0.0153975 116401 0.000268999 2.68999 0.550562
20 178 155520 0.000359402 3.59402 0.516854 0.0108978 -3.33996e-05 0.00414154 155520 0.000359402 3.59402 0.516854
30 178 78416.3 0.000181217 1.81217 0.533708 -0.00463052 0.000352616 0.000467594 78416.3 0.000181217 1.81217 0.533708
60 178 -1.05246e+06 -0.00243219 -24.3219 0.488764 0.0281807 -0.00334901 0.00480604 -1.05246e+06 -0.00243219 -24.3219 0.488764
120 178 -2.14815e+06 -0.00496431 -49.6431 0.466292 0.00572515 -0.00509869 0.000127937 -2.14815e+06 -0.00496431 -49.6431 0.466292
240 170 -74319.1 -0.000179783 -1.79783 0.494118 0.0245678 -0.000863617 0.00117066 -74319.1 -0.000179783 -1.79783 0.494118

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 0 0
09:20 6 132 0.00447852 44.7852
09:40 12 447 0.0132479 132.479
10:00 5 93 -0.013566 -135.66
10:20 5 652 -0.00650652 -65.0652
10:40 16 1305 -0.000393726 -3.93726
11:00 23 1737 0.00192315 19.2315
11:20 16 1017 -0.00171787 -17.1787
11:40 13 1143 -0.00154157 -15.4157
12:00 7 461 0.0269081 269.081
12:20 11 455 0.00244621 24.4621
12:40 5 67 0.00713683 71.3683
13:00 8 198 0.00196072 19.6072
13:20 10 742 -0.0070639 -70.639
13:40 18 1268 -0.0198466 -198.466
14:00 21 1840 0.000684103 6.84103
14:20 18 887 0.00435276 43.5276
14:40 4 181 0.000786355 7.86355
15:00 3 271 0.0184491 184.491
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.026%0.053%0.490.332%0.475%0.70
10:000.10020.08651.1580.121%0.349%0.350.193%0.455%0.42
11:000.10970.09801.1190.098%0.205%0.480.221%0.278%0.79
12:000.10850.10731.0110.059%0.054%1.100.247%0.234%1.06
13:000.10260.10740.9550.075%0.165%0.450.253%0.502%0.50
14:000.10370.10530.9840.135%0.325%0.420.361%0.729%0.50
15:000.09070.10300.8810.069%0.275%0.250.311%0.854%0.36

Notes:

z_score_threshold = 3.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