{
  "id": 12432,
  "rank": 416,
  "name": "Swing Structure Pullback",
  "aka": [
    "Swing Structure Pullback",
    "Swing Trading Robot"
  ],
  "family": "E",
  "subtype": "E3",
  "one_liner": "Trades pullbacks in the direction of the higher-timeframe trend using multi-timeframe analysis and ATR-based stop-loss and take-profit.",
  "market_regime": "trending|volatile",
  "timeframes": [
    "H4",
    "D1"
  ],
  "symbols": [
    "XAUUSD",
    "EURUSD",
    "GBPUSD",
    "USDJPY"
  ],
  "sessions": [
    "null"
  ],
  "indicators": [
    {
      "name": "EMA",
      "params": {
        "period": 50
      },
      "applied_to": "close"
    },
    {
      "name": "EMA",
      "params": {
        "period": 21
      },
      "applied_to": "close"
    },
    {
      "name": "EMA",
      "params": {
        "period": 55
      },
      "applied_to": "close"
    },
    {
      "name": "ATR",
      "params": {
        "period": 14
      },
      "applied_to": "close"
    },
    {
      "name": "RSI",
      "params": {
        "period": 14
      },
      "applied_to": "close"
    }
  ],
  "entry_long": [
    "50 EMA slopes up over the last 5 D1 bars and last D1 close is above 50 EMA",
    "21 EMA is above 55 EMA",
    "Price within 0.3 ATR of 21 EMA in the last 8 H4 bars",
    "RSI(14) is 50 or lower",
    "H4 bar breaks the high of the previous 2 bars and closes on the trend side of 21 EMA"
  ],
  "entry_short": [
    "50 EMA slopes down over the last 5 D1 bars and last D1 close is below 50 EMA",
    "21 EMA is below 55 EMA",
    "Price within 0.3 ATR of 21 EMA in the last 8 H4 bars",
    "RSI(14) is 50 or higher",
    "H4 bar breaks the low of the previous 2 bars and closes on the trend side of 21 EMA"
  ],
  "exit_rules": [
    "50% take profit at 1R, stop moves to break-even",
    "2.5 ATR trailing stop from the best price since entry",
    "Final take profit at 4R (can be switched off)",
    "Time exit after 90 H4 bars",
    "Optional exit when the daily trend turns against the position"
  ],
  "filters": [
    "News filter using the built-in MetaTrader 5 economic calendar",
    "Maximum spread (as a fraction of ATR or in points)",
    "Trading-hours window, no new trades late on Friday or in the first hours of the week",
    "Daily loss limit (% of the day-start balance, measured on equity)",
    "Maximum number of new trades per day",
    "Free margin, volume minimum, maximum, step and symbol volume limit, stops and freeze levels",
    "Symbol trade mode, whether the session is open",
    "OrderCheck"
  ],
  "stop_loss": "Initial stop beyond the pullback extreme plus 0.3 ATR, minimum 1 ATR",
  "take_profit": "50% take profit at 1R, 2.5 ATR trailing stop, final take profit at 4R",
  "position_size": "Fixed lot or % risk of balance per trade (1% by default) with a maximum lot",
  "evidence_type": "backtest_shown",
  "completeness": 80.0,
  "signal_warnings": null,
  "claim_warnings": [
    "THIN SAMPLE: 62 trades - below the ~100 needed before a win rate or profit factor carries much information."
  ],
  "opacity_warnings": null,
  "build_warnings": null,
  "canonical": "https://prismaticalgos.com/compendium/algo/12432-swing-structure-pullback",
  "snapshot": "2026-10-31 15:46 UTC",
  "source_url": "https://www.mql5.com/en/market/product/205043",
  "limitations": "These are machine-extracted research records, not verified trading systems. Catalog rank measures specification detail and claimed evidence, not profitability. The catalog extraction pipeline did not independently backtest these records. Its separate selected testing ledger does not validate the wider corpus. Rules, labels and parameters can be incomplete or wrong; consult the original source and its reuse terms."
}
