Back to Chronicles
February 16, 202610 min read

ForgeQuant: Anatomy of a Multi-Gate Signal Protocol

Most equity signal systems fail for the same reason: they collapse multiple concerns into a single composite number and let one strong dimension mask several weak ones. ForgeQuant was built to make that failure mode structurally impossible.


ForgeQuant constraint protocol daily brief output

ForgeQuant daily brief - output of the six-gate constraint pipeline.

The Failure Mode

The standard approach to equity screening is weighted-sum scoring: assign a weight to each factor, multiply, sum, rank. The problem is structural. A stock with exceptional momentum but deteriorating fundamentals can still rank near the top because one dimension compensates for another. The output looks decisive. The underlying setup is fragile.

Analyst consensus compounds this. The signal basis is often opaque - a rating arrives without its reasoning. When the thesis breaks, there is no audit trail to determine which assumption failed or when it became invalid.

ForgeQuant was designed as an architectural response to both problems. The constraint protocol treats each evaluation dimension as an independent gate rather than a weighted contributor. A ticker must survive every gate independently. No single strong factor can carry a weak setup past the threshold.

Design Doctrine

Three principles govern the protocol architecture. They were established during the initial research phase and have not been relaxed since.

Determinism

Same inputs produce the same outputs. No randomness, no LLM opinion, no discretionary overrides in the scoring engine. Every signal is reproducible given the same market data snapshot.

Gate Independence

Each evaluation dimension operates as a pass/fail gate with its own threshold. Dimensions do not compensate for each other. This is the core architectural constraint - it prevents the weighted-sum failure mode described above.

Auditability

Every signal explains which gates passed, which scored marginal, and why the composite classification was assigned. The reasoning is part of the output, not a separate explanation layer.

The protocol was validated using the same adversarial research methodology applied to all critical Greyforge builds - structured opposition, deliberate stress-testing, and a formal GO/NO-GO gate before committing to the architecture.

The Six Gates

ForgeQuant evaluates a universe of 600+ symbols daily. Each ticker passes through six independent evaluation gates. The order below reflects the logical pipeline, though gates are computed in parallel and evaluated independently.

1. Trend & Regime

Prevents: Buying into a downtrend or a directionless market.

Classifies the stock's current regime as bullish, bearish, or neutral by analyzing directional structure across multiple timeframes. A confirmed bullish regime is required for any buy signal. This gate eliminates counter-trend entries - the single largest category of failed swing trades.

2. Momentum & Entry Timing

Prevents: Chasing extended moves with no pullback structure.

Measures momentum across multiple dimensions to identify pullback buy zones within confirmed trends. The gate fires when a stock has retraced to an optimal entry window and buying pressure is accelerating rather than fading. It prevents entries at momentum exhaustion points.

3. Volatility & Compression

Prevents: Entering during chaotic, directionless price action.

Detects periods of price compression - when a stock tightens into a narrow range relative to its historical volatility. Compression precedes expansion. The gate scores tighter compression higher because the energy-to-noise ratio improves. Wide, erratic ranges score low.

4. Order-Flow Health

Prevents: Taking signals in a market dominated by adverse flow.

Estimates whether informed or adverse order flow is dominating the book. High toxicity signals incoming volatility from informed participants trading against the prevailing direction. Low toxicity means more stable execution conditions. This dimension is absent from most consumer-grade platforms.

5. Trend Persistence

Prevents: Assuming momentum continuation in a mean-reverting regime.

Measures whether price behavior is genuinely trending, mean-reverting, or random-walk. High persistence means momentum entries have statistical follow-through. Low persistence flags that the trend structure may not sustain - requiring tighter risk parameters or outright exclusion.

6. Fundamental Valuation Gate

Prevents: Buying a technically strong chart at an indefensible valuation.

Every buy signal must clear a macro-adjusted valuation hurdle that accounts for prevailing interest rates and equity risk premiums. No exceptions. A stock with perfect technical structure is rejected if it trades above the hurdle rate. This gate is inviolable by design - it exists to prevent the protocol from endorsing momentum into overvaluation.

Composite Scoring Pipeline

After each gate produces its independent score, the composite pipeline determines the final signal classification. The algorithm operates in two phases: gate qualification, then weighted aggregation of survivors.

Composite scoring - high-level pipeline

for each ticker in universe:
  gate_scores = {}
  for gate in [trend, momentum, volatility, flow, persistence, valuation]:
    gate_scores[gate] = evaluate(ticker, gate)

  # Phase 1: Gate qualification
  # Every gate must independently clear its minimum threshold.
  # A single gate failure disqualifies the ticker entirely.
  if any(score < gate.min_threshold for gate, score in gate_scores):
    classify(ticker, BELOW_THRESHOLD)
    continue

  # Phase 2: Weighted composite of surviving gates
  composite = sum(gate_scores[g] * weight[g] for g in gates) / sum(weights)

  # Phase 3: Classification bands
  if composite >= STRONG_BUY_THRESHOLD and valuation_gate.cleared:
    classify(ticker, STRONG_BUY)
  elif composite >= BUY_THRESHOLD:
    classify(ticker, BUY)
  elif composite >= WATCH_THRESHOLD:
    classify(ticker, WATCH)

  # Phase 4: Risk framing
  stop_loss    = compute_stop(ticker.atr, ticker.volatility_profile)
  trailing_exit = compute_trail(ticker.atr, composite_strength)

The critical detail is Phase 1. In a traditional weighted-sum system, Phase 1 does not exist - every score contributes regardless of quality. The gate qualification step is what makes the protocol structurally different. Weighted aggregation only runs on tickers that already passed every independent check.

Walkthrough: A Ticker Through All Six Gates

Consider how a hypothetical ticker moves through the pipeline.

Example: Ticker XYZ on scan day

TrendBullish regime confirmed. Multi-timeframe directional alignment. PASS
MomentumPullback to buy zone with accelerating pressure. Entry window active. PASS
VolatilityPrice range compressed to 60% of 20-day average. Expansion likely. PASS
FlowLow toxicity. No adverse-flow dominance. Execution conditions stable. PASS
PersistenceElevated trending behavior. Momentum entries have follow-through. PASS
ValuationBelow macro-adjusted hurdle rate. Fundamentals clear the bar. PASS

ResultAll six gates cleared. Composite score computed from weighted gate values. Classification: Strong Buy. Stop and trailing exit calculated from ATR and volatility profile.

Now consider a second ticker with identical momentum and volatility scores, but trading above the valuation hurdle rate. In a weighted-sum system, the strong technical scores would compensate and the ticker might still rank highly. In ForgeQuant, the valuation gate failure terminates evaluation. The ticker is classified Below Threshold regardless of how strong the other five gates looked.

This is the architectural consequence of gate independence: the protocol is structurally incapable of endorsing a setup where any single dimension is deficient.

Signal Classifications and Risk Framing

Output Classifications

  • Strong Buy: All six gates cleared with scores above their respective upper bands. Composite exceeds the strong-buy threshold. Trend, momentum, flow, and fundamentals align.
  • Buy: All gates cleared. Composite falls between the buy and strong-buy thresholds. Setup is sound but one or more gates scored in the lower pass range.
  • Watch: All gates cleared at minimum, but the composite is below the buy threshold. The setup has merit but is not actionable. Monitored for improvement on subsequent scan days.
  • Below Threshold: One or more gates failed. The ticker is excluded from the daily brief entirely. No partial credit.

Every signal classified Buy or above includes two exit levels computed from the ticker's own volatility profile:

Volatility-Calibrated Stop

Derived from the stock's average true range and recent volatility structure. The stop distance is proportional to how much the instrument actually moves - not an arbitrary fixed percentage. A low-volatility stock gets a tight stop; a volatile one gets wider room.

Trailing Exit

A dynamic exit level that tightens as the position moves favorably. The tightening rate is a function of composite strength - stronger signals get more trailing room, weaker ones lock in gains faster. Both levels appear alongside the signal before any entry decision.

The Daily Brief: A Deliberate Constraint

ForgeQuant produces one brief per trading day. This is an architectural decision, not a limitation. The protocol targets swing and position timeframes - holding periods of days to weeks. The daily cadence enforces several properties:

  • Signal quality is bounded by the gate constraints, not inflated by frequency. More scans per day would not produce more qualifying setups - just more Below Threshold classifications.
  • A single daily decision point reduces reactive, emotional trading. The protocol does not reward compulsive checking.
  • Alert fatigue is structurally eliminated. The brief contains only what survived all six gates. On quiet market days, the brief may contain nothing - and that is a valid output.

Each signal in the brief carries its ticker, composite score, signal classification, per-gate breakdown (regime, flow health, persistence state), stop and trailing exit levels, and a plain-language summary of the reasoning. The summary is generated deterministically from the gate outputs - it is not an LLM interpretation.

What the Protocol Catches

The gate architecture is designed to reject categories of setups that routinely survive traditional screens:

Momentum into overvaluation. A stock with strong trend, momentum, and flow scores but trading at an extreme earnings multiple. Traditional screens rank this highly. The valuation gate rejects it.

Clean chart, toxic flow. A stock with textbook technical structure but elevated adverse order flow indicating informed participants are already positioned against the prevailing direction. The flow gate catches this before the chart breaks.

Trending signal in a mean-reverting regime. A stock that looks like it has momentum but whose price behavior is statistically mean-reverting. Momentum entries in mean-reverting regimes have poor follow-through. The persistence gate prevents this.

None of these rejections require discretionary judgment. They are consequences of the gate architecture - each gate exists specifically to prevent its corresponding failure mode.

Relationship to ForgeCast

ForgeCast is the full trading platform under active development - portfolio management, position tracking, multi-strategy tools, and real-time analysis in a unified interface.

ForgeQuant is the constraint protocol that powers ForgeCast's daily scanner. It was extracted and made available as a standalone signal brief while the broader platform matures. Architecturally, ForgeQuant is a subsystem - the signal-generation layer of a larger system. When ForgeCast ships, the protocol integrates directly as a core component.

What Comes Next

The protocol is stable and in daily production. The next phase of work is focused on expanding the evaluation universe and refining the persistence and flow dimensions with additional data sources. The gate architecture is designed to be extensible - adding a seventh or eighth gate does not require restructuring the pipeline, only defining the new gate's threshold and failure mode.

Backtesting methodology remains under active research. The policy is to publish no performance claims that cannot be independently audited. Fabricated ROI numbers, cherry-picked windows, and hidden execution assumptions are excluded by design. If a number cannot be reproduced from stated inputs, it does not appear in any ForgeQuant output.