MR Combined
MR Combined is the primary trade-generating strategy in the current system.
Purpose
- Focus on range/mean-reversion style opportunities
- Use multi-timeframe context to avoid low-quality entries
- Produce pending signals for boss approval rather than auto-entering immediately
Timeframes
1d: higher-timeframe macro phase and range position4h: main regime and range validation1h: entry setup and execution checklist
High-level flow
POST /api/mr-combined/scan-and-signal- Fetch or reuse 1D / 4H / 1H data
- Apply gate checks for no-trade zones, regime, and range quality
- Build entry setup near support/resistance
- Assign tier and risk sizing
- Create pending signal with checklist, TP structure, and range levels
Gate model
The implementation is organized around staged gate checks rather than one giant rule block.
Typical gates include:
- no-trade windows
- MTF regime validation
- 4H range width / ADX / touch quality
- 1H reversal + proximity-to-edge setup
- final priority override against MarketContext
If any required gate fails, the strategy returns a non-signal result with a reason.
Tiering and risk
MR Combined adjusts risk using strategy config fields:
risk_normalrisk_aplusrisk_aplusplus
The exact tier labels returned by the strategy are based on setup quality and context alignment.
TP structure
MR Combined uses multi-target management based on the validated range:
TP1: midlineTP2: range edge adjusted by ATR logicTP3: full range edge
Position split is controlled by:
tp1_ratiotp2_ratiotp3_ratio
Config section
Configured under:
[strategy.mr_combined]
enabled = true
use_universe = false
timeframes = ["1d", "4h", "1h"]
size_pct = 1.0
max_trades_per_day = 2
trailing_enabled = true
trailing_trigger_pct = 2.0
trailing_distance_pct = 1.0
risk_normal = 1.0
risk_aplus = 1.5
risk_aplusplus = 2.0
sl_atr_multiplier = 1.5
tp2_atr_multiplier = 0.75
tp1_ratio = 0.40
tp2_ratio = 0.40
tp3_ratio = 0.20
min_rr = 2.5
range_min_atr_multiplier = 3.0
zone_proximity_atr_min = 0.3
zone_proximity_atr_max = 0.5
vol_increase_min = 1.2
news_blackout_windows_utc = []
Key meanings:
use_universe: use the configured liquidity-filtered universe instead of the plain watchlistrange_min_atr_multiplier: minimum acceptable 4H range widthzone_proximity_atr_min/max: how close price must be to a range edgemin_rr: minimum reward-to-risk before the setup is acceptednews_blackout_windows_utc: optional windows where signals are blocked
Output shape
Signal results typically include:
symbolbot = "mr_combined"signaldirectiontierchecklistpassed/totalsl_pct,tp_pct,tp1_pct,tp2_pctrange_support,range_resistance,range_midline
Those fields are then forwarded into the pending-signal workflow.