QuantProp. Analyze a trade file ↗
stockback / Experiment design

EXP-012 design — separating the Connors RSI(2) signal effect from standalone operability

EXP-012 contract fixed before running: 30 symbols, 3 periods, 4 costs, a signal event test and a standalone operability test.

Original record: not stated in the original · Migrated: 2026-10-27 · Translated from Korean: 2026-10-27
A historical record, not rerun in this migration.

The figures, hypotheses and verdicts of the time are preserved. A past positive result or candidate mention does not mean validated profitability today or a live-trading recommendation. Validation periods that were already used are not treated as new independent validation.

This is an English translation of a preserved Korean original. It describes conditions at the time of writing, not current provider specifications, costs or regulations. EXP-012 has a control-group leakage fix and a D-035 retraction / D-036 correction history. The follow-up EXP-014 was inconclusive, so the signal_positive reading at the time must not be read as confirmed current profitability.

EXP-012 design — separating the Connors RSI(2) signal effect from standalone operability

  • Designed: 2026-09-17
  • Work week: 2026-W38
  • Status: run completed · rejected
  • Execution model: v2
  • Strategy version: the existing connors_rsi2 base form
  • Single question: does daily RSI(2) create a positive after-cost entry effect beyond the simple effect of holding cash?

This document is the EXP-012 contract fixed before running. The comparison groups, periods and verdict criteria were not changed after seeing results . If a change is needed, EXP-012 is not modified; a new experiment ID and the reason for the change are recorded.

1. Rationale for the design

In EXP-010, 6 of 7 symbols were positive, but there were only 4~10 trades per symbol. Later, in the 1,042-symbol sweep, the base form's median market exposure was 6.56% and its median after-cost CAGR 0.00%. Over the same period it lost less than buy-and-hold, but the cash effect of barely participating in the market is mixed with the entry timing effect.

So EXP-012 does not search RSI parameters. It fixes the existing base form on 30 symbols and separates the following two verdicts.

  1. Signal verdict: do RSI(2) oversold entry days earn better subsequent returns than ordinary trading days in the same uptrend?
  2. Operating verdict: does a single-symbol account applying the existing RSI exit have positive after-cost expectancy and sufficient capital deployment?

2. Data and universe

  • Source: data/raw/creon/bulk/all_research/<symbol>/D/*.csv
  • Snapshot: creon-20260826T104553Z
  • Universe: the top 30 by trading value in data/manifests/EXP-011-universe.json, reused in the same order
  • Control: the 7 symbols included in EXP-010
  • Generalization group: the other 23 symbols
  • Warm-up: indicators computed from 2005-01-01; trades allowed only inside each evaluation period

The 30 symbols were selected by train-period trading value but start from the listing as of 2026-08-26, so survivorship bias remains. These 30 symbols' results were also already seen in the full-universe sweep. No period is called new OOS, and EXP-012's results are used only as a historical robustness recheck.

3. Fixed periods

PeriodDatesRole
train2010-01-01 ~ 2018-12-31Past calibration and structure check
validation2019-01-01 ~ 2022-12-31Period consistency check
historical_recheck2023-01-01 ~ 2026-08-26Recheck of the repeatedly viewed recent period

Each period runs independently with an initial 3,000,000 KRW. Signal calculation uses earlier warm-up bars, but cash, P&L and risk state are not carried between periods. Positions at the end of a period are closed at the last close as window_end.

4. Fixed strategy contract

  • Entry signal: same-day close > SMA(200) and Wilder RSI(2) < 5
  • Entry fill: next valid trading day's open
  • Exit signal: same-day close RSI(2) > 70
  • Exit fill: next valid trading day's open
  • Repeat buys: no additional entry while a position is held
  • Stops and time exits: none
  • Capital: an independent 3,000,000 KRW account per symbol
  • Quantity: 95% of cash just before entry, integer quantity including costs, no leverage
  • Risk policy: only research_unhalted is used for the verdict
  • Execution: execution_model="v2", no fills on bars with 0 volume

The results of the 30 independent accounts are not combined and shown as if they were the return of one 3,000,000 KRW portfolio. account_halt, the -7% stop, the 5-bar exit and RSI threshold changes are excluded from the EXP-012 matrix.

5. Cost matrix

ProfileDefinitionUse
frictionlessCommissions, taxes and slippage 0Check the signal's direction before costs
normalized_actual_proxyCommission 1.5bp/one-way + per-product taxes1st verdict
normalized_2x_stressCommissions and taxes 2xCost robustness
normalized_plus_5bp_slippageBaseline costs + 5bp/one-way slippageExecution stress

Nothing is labelled actual until actual CREON execution commissions are confirmed. Tax-exempt symbols are checked against the product master, and unconfirmed symbols are not exempted by guesswork.

The base strategy matrix is 30 symbols × 3 periods × 4 costs = 360 cells.

6. Test A — signal event comparison experiment

6.1 Purpose

Measure whether a short-term rebound effect exists at RSI entry times, independent of the existing strategy's exit rule. This result is not a backtest of a separate 5-day holding strategy but an entry signal diagnostic.

6.2 Signal events

The signal day is t, and the next valid trading day's open is the entry price. The 1st return runs from the entry open to the open of the fifth valid trading day. If the opens after the entry day are O1..O6 in order:

gross_return_5d = O6 / O1 - 1
net_return_5d   = (net proceeds from selling 1 share at O6 / total outlay to buy 1 share at O1) - 1

Net proceeds and total outlay are computed with the profile's CostModel, and the sell tax uses the rate in force at the time of the comparison day. To remove the influence of integer quantities and account size, event returns are per 1 share.

If O6 does not exist before the end of the period, both the signal and control groups are excluded by the same rule. 1-, 3- and 10-trading-day returns are auxiliary diagnostics and are not used for the verdict in place of the 5-trading-day result.

Every raw buy signal on the same symbol counts as an event, regardless of whether a position is held. To distinguish it from the actual strategy's unfilled repeat signals, raw_signal_event=true is recorded.

6.3 Generating control events

For each signal event, dates on the same symbol and in the same period that meet all the conditions below become candidates.

  1. The same-day close is above SMA(200).
  2. RSI(2) is 5 or higher.
  3. There is no day with RSI(2) < 5 within the 10 trading days before the candidate day. Signals after the candidate day are not used.
  4. It is in the same month as the signal day. If there is no candidate in the same month, widen to the same quarter; if there is still none, that signal event is excluded from the control analysis and the exclusion count is recorded.
  5. The required O6 after entry exists within the same evaluation period.

Among the candidates, the one date with the smallest sum of standardized distances in the 20-trading-day return and 20-trading-day volatility just before the signal day is selected. On ties, the earlier candidate is chosen. A candidate date can be reused as the control for other signals, but each signal maps to only one. This rule removes result variation due to random numbers.

The standardization denominator is each variable's MAD (median absolute deviation) computed on that signal's candidate set. If the MAD is 0, that variable's candidate-set standard deviation is used, and if that is also 0, that variable's distance is set to 0.

All matching variables use only values confirmed up to the candidate day. Returns after the control day are not used for matching.

6.4 1st statistic

event_effect = mean(signal net_return_5d - matched_control net_return_5d)
  • 1st cell: generalization group of 23 symbols × historical_recheck × normalized_actual_proxy
  • Auxiliary cells: all 30 symbols, each of the three periods, the four cost profiles
  • Uncertainty: 10,000 bootstrap draws resampling calendar-month blocks common to all symbols in the same order
  • Sensitivity: 10,000 draws with 3-month consecutive blocks
  • Recorded: mean and median effect, 95% percentile interval, signal count, matching success rate, number of distinct signal dates

A simple t-test assuming per-symbol trades are independent samples is not used as 1st evidence. Simultaneous signals on the same market crash day can inflate the sample count.

7. Test B — standalone operability of the existing strategy

The 360 cells are run with the existing RSI exit contract. For each cell, the following are computed.

  • Trade count, number of distinct entry dates, net expectancy, win rate, payoff ratio, profit factor
  • Total return, CAGR, MDD, total costs
  • Share of trading days with a position held
  • Capital deployment rate, the mean of daily position value / NAV
  • Net P&L contribution by symbol and year, and net P&L excluding the single top contributor
  • Order outcomes such as quantity_zero, no_trading and window_end

Exposure-matched comparison group

Alongside 100% cash and per-symbol buy-and-hold, a buy-and-hold at pre-calibrated exposure is computed.

  • Initial investment weight for validation: the same symbol's average capital deployment in train
  • Initial investment weight for historical_recheck: the same symbol's average capital deployment in validation
  • Buy only that weight in integer quantity at the period's first valid open, keeping the rest in cash at 0% interest
  • Sell at the period's last valid close, applying the same costs as the strategy
  • Train has no preceding calibration period, so this comparison group is not built for it

The comparison weight is not matched after seeing the evaluation period's actual exposure. This comparison is auxiliary evidence of whether, from the same initial participation budget, entry timing added value.

8. Sample gate

Before the 1st verdict, the following is checked in historical_recheck for the generalization group of 23 symbols.

  • At least 100 completed actual strategy trades in total
  • At least 50 distinct actual entry dates
  • Signal event matching success rate of 80% or higher
  • Cells with quantity_zero are flagged as contaminated by capital constraints and excluded from performance medians

If any one is unmet, no definitive verdict is made regardless of the sign of the effect, and it is recorded as inconclusive_sample . 100 trades and 50 days are not statistical laws guaranteeing independence but a preregistered research budget criterion for deciding whether to spend resources on follow-up research.

9. Dual verdict rules

9.1 Signal verdict

VerdictCondition
signal_positiveSample gate passed, 1st event_effect > 0, 95% bootstrap lower bound > 0
signal_negativeSample gate passed, 95% bootstrap upper bound <= 0
signal_inconclusiveConfidence interval includes 0 or sample gate not met

This verdict is not replaced with results from a favourable 1/3/10-day horizon, the 7 control symbols or a particular cost profile.

9.2 Standalone operation verdict

First, all of the following gates are checked in the 1st cell of the generalization group of 23 symbols.

  1. Median after-cost per-symbol trade expectancy > 0
  2. Combined net P&L excluding the single top-earning symbol > 0
  3. Combined net P&L excluding the single top-earning year > 0
  4. Direction of the median trade expectancy held at 2x costs and 5bp slippage
  5. Median expectancy > 0 in at least 2 of train, validation and historical_recheck
  6. Median per-symbol share of position-holding days >= 10%

10% is not a law of profitability but an interim operating gate checking whether a standalone strategy actually uses its capital . It is not lowered after seeing results.

VerdictCondition
standalone_advanceSample gate and all 6 gates above passed
standalone_rejectGate 1 fails after the sample gate passes, or signal_negative
standalone_holdOtherwise

standalone_advance is not live-trading approval but a move to the next robustness stage. CAGR 15% is shown separately as whether the existing business target is met, but it is not used as a statistical pass line for the existence of a signal.

10. Conditions for passing to the EXP-013 shared-capital test

  • If signal_positive, EXP-013 proceeds regardless of the standalone verdict.
  • If signal_inconclusive but the event effect point estimate is positive and only the sample gate falls short, first compute whether a shared-capital implementation solves the sample shortfall, then decide whether to start EXP-013.
  • If signal_negative, shared capital cannot dress up a negative signal, so it does not proceed.

EXP-013 is a separate experiment whose base contract is total capital of 3,000,000 KRW, at most 5 symbols, and 19% of pre-entry NAV per symbol . Multi-symbol shared capital is not a simple aggregation of the current single-symbol engine, so in EXP-012 it is neither implemented nor are its results mixed in.

11. Execution record

The command was python -X utf8 scripts/backtest/run_connors_rsi2_exp012.py. After passing 37 synthetic and regression checks, the 30 symbols were run, generating the summary, benchmark and event ledgers and EXP-012-run.json. Results and verdicts are recorded in the 2 and the 3.

Source and migration evidence

Source: docs/test-plans/2026-W38-connors-rsi2-exp012.md

Original SHA-256: db2744f8ed5e853a26bda08489d1218e0a5aa9e67a043434541178b98fae9bff

Raw data and account information are not part of the public package. The original results do not replace statistical or scientific revalidation. The English text is a translation; numbers, tables and charts are carried over unchanged.