Opposing Signals & Conflict Resolution
When multiple alpha models are running simultaneously, they will occasionally disagree — one model producing a BUY signal on a symbol while another produces a SELL. How a system handles this conflict is a direct expression of its risk philosophy.
The Problem
Naive systems either ignore conflicts (trading on whichever signal arrives first) or block all activity until agreement is reached (missing valid opportunities). Both approaches are suboptimal.
A more principled approach: detect conflicts explicitly, measure the strength of each side, and resolve them according to a defined policy — with position sizing reflecting the degree of uncertainty.
Conflict Detection
TRADEOS.tech detects opposing signals within a configurable time window. If a BUY and a SELL signal for the same symbol arrive within this window, they are flagged as conflicting before either advances to execution.
The conflict record captures both signals' confidence scores, timestamps, and originating models, allowing the resolver to make an informed decision.
Resolution Policies
TRADEOS.tech supports four resolution policies, configurable per strategy profile:
DROP_BOTH — Discard both signals. Used in conservative profiles when any uncertainty warrants staying out. No position is taken until a clean, uncontested signal arrives.
KEEP_STRONGER — Advance the signal with the higher confidence score and discard the weaker. Position sizing is reduced to reflect that a dissenting model exists.
KEEP_NEWER — Advance the most recent signal. Models that update most recently are assumed to have the freshest information. Useful when markets are moving fast and staleness matters more than raw confidence.
NET_CONFIDENCE — Compute the net confidence: winner_confidence - loser_confidence. If the net confidence supports the winning direction, that signal advances with the net confidence as its effective score. This is the most nuanced policy — it allows trading when one side clearly dominates but automatically sizes down proportionally to the degree of disagreement.
Sizing Under Conflict
When a signal advances despite a conflict, position sizing is reduced. The sizing reduction scales with how closely matched the opposing signals were — a near-tie produces maximum reduction; a dominant winner with a weak dissenter produces minimal reduction.
This connects directly to the conviction scaler: when two models nearly agree on opposite directions, confidence in either is low, and the system trades accordingly small or not at all.
Why Explicit Resolution Beats Ignoring Conflicts
Every live systematic trading system will encounter opposing signals. The question is whether you handle them intentionally or accidentally. TRADEOS.tech's explicit conflict resolution means:
- No trade is entered when genuine model disagreement exists without deliberate policy application
- Sizing reflects actual certainty, not the confidence of a single model in isolation
- The audit trail records why a conflict was resolved the way it was
- Profile differences are meaningful: conservative profiles default to DROP_BOTH while aggressive profiles default to NET_CONFIDENCE