Skip to main content
Strategy Lab / Swing-Trade / ACCUMEDGE

ACCUMEDGE AccumEdge v1.0 - Quiet Accumulation

A stock that's flat-to-mildly-up while its own volume-flow (On-Balance-Volume) is quietly rising faster than price reflects tends to break out once that buying pressure catches up to price. Version v1 - status ACTIVE - daily evaluation cadence.

Equity
$9996.16
Closed Trades
14
Win Rate
28.6%
Evidence Status
Insufficient Evidence
N=14 closed trades

A genuinely NEW engine (not a renamed or consolidated ST-0x module) - the only engine that fires BEFORE a trend/selloff/event already exists, rather than confirming one that already happened.

Pure OHLCV mechanism: features.obv_series() cross-sectionally ranked against the universe's own price-change rank over the same window - no new data feed required.

3-tier Setup Score: 0.30xOBVDivergence + 0.20xAccumulationPersistence + 0.20xBaseQuality + 0.15xRegime + 0.15xRelativeStrength.

Thesis-honest exit: exits if the OBV accumulation itself reverses, independent of price - the position was opened for a reason that can stop being true before the stop is ever hit.

Known limitations:

  • No real Protected-NBBO/executable-quote feed - synthetic liquidity-tier spreads used instead (same substitution as the Day-Trade Lab).
  • No true 9:45am ET intraday primary-entry checkpoint or 10:15-11am secondary pullback window - the NEXT session's daily-bar OPEN price is used as the sole executable-price basis for every engine (strictly no-look-ahead, but this lab is uniformly daily-bar-driven, not intraday).
  • Earnings-calendar feed (Finnhub /calendar/earnings) powers DriftEdge's post-event entries and the 2-session earnings-blackout gate on TrendForge/ReboundEdge/RankForge - requires FINNHUB_API_KEY; degrades to no-op (no blackout, DriftEdge finds no candidates) if absent.
  • No qualifying-event feed beyond earnings for DriftEdge (guidance/contract/regulatory/product-update events per the spec's fuller event taxonomy aren't in this app's data layer).
  • No analyst-revisions or fundamental/valuation feed - every engine's revisions/valuation Setup Score component is held at a neutral 50 rather than fabricated (documented per-engine in each engines/*.py module).
  • RegimeShield's 5-tier state is derived from this app's existing 3-way Risk-On/Neutral/Risk-Off classifier + volatility/breadth flags, not an independently-scored regime model (see scoring.regime_shield_state).
  • Correlation controls use pairwise correlation computed directly from each symbol's own trailing 40-session daily log returns (see correlation.py) - a genuine but shorter/noisier sample than a dedicated vendor correlation matrix.
  • HistoricalTwin is now built (packages/shared/bullyeah_engine/swing_lab/learning.py) but stays observer-only (a genuine 0-delta) until an engine has 30+ closed episodes with a similar recorded component snapshot, per spec section 18's own gating rule.
  • RawSwing's 'raw Swing Direction' is a purely technical proxy (NearHighRatio/TrendEfficiency/residual momentum), not a second call to the real opportunity-scoring engine RankForge uses - see engines/controls.py's module docstring for why running that expensive call twice per cycle wasn't worth it for a lightweight comparison baseline.
  • Equal-Weight Basket / Industry ETF / SPY benchmark curves (§19's passive comparison half) ARE now built (see swing_lab/benchmarks.py) but are pure buy-and-hold return calculations, not paper-trading engines - they show up as their own 'Passive Benchmarks' dashboard section, not in ENGINE_SPECS/ALL_ENGINE_ORDER.
  • Full statistical-validation suite (Probabilistic/Deflated Sharpe, PBO, moving-block bootstrap, walk-forward holdout) is deferred - see evidence.py.
  • OBV is a coarse sign-of-daily-return volume-flow proxy, not real order-flow/dark-pool/block-trade data - this app has no such feed.

This is a research hypothesis, not a proven profitable methodology. See docs/strategy_lab_swing_trade_plan.md for the full repo-impact plan.

Evidence (Insufficient Evidence):

Needs at least 15 completed trades AND 15 independent entry days before any read is meaningful (spec section 39.1) - 14 trades so far. No significance testing applied above that floor either - see module docstring for what's deferred (PBO, Deflated Sharpe, bootstrap CIs, walk-forward holdout).