{
  "source": "ICMarketsSC-Demo / saved MT5 Bid H1",
  "source_file": "EURUSD-H1.csv",
  "source_sha256": "0f58687cc1be679669de57ce3c128d708a51e415f8a2a7c614909fae97a49fef",
  "source_url": "/technical-analysis/trading-automation/data/sources/EURUSD-H1.csv",
  "source_start_index": 1117,
  "source_end_index": 1236,
  "excerpt_sha256": "241503aca02810b7d265c6f4605775f7996940f9c53683e322c47939f3ab48b6",
  "bar_count": 120,
  "as_of_bar_open": "2026-01-15 12:00",
  "nominal_as_of": "2026-01-15 13:00",
  "time_basis": "Original MT5 bar openings; server offset unverified. Nominal end is not measured receipt time.",
  "rules": {
    "anchor": "2+2 lows only; strict left, non-strict right; candidate available after i+2 closes. The first/last two rows cannot supply a complete low.",
    "width": "centre +/- 20 source points = +/-2 EURUSD pips",
    "overlap": "Chronological candidates. Retain earlier zone; discard a later candidate if inclusive intervals overlap any retained zone. Never expand the retained zone.",
    "episode": "Start at first High/Low range intersection after anchor confirmation. Consecutive intersecting bars remain one episode. A complete outside-range bar is required before a new episode. This is an OHLC range proxy, not proof of a quote inside the zone.",
    "reaction": "For a new episode at i, at least one Close in i+1..i+3 must be >= upper boundary +50 source points (5 pips). Count only episodes whose entire three-bar assessment window is complete as of the fixed endpoint.",
    "ranking": "At least two qualifying reaction episodes. Sort count descending, latest qualifying reaction record descending, centre price ascending, anchor index ascending. Keep first three.",
    "scope": "Descriptive selection exercise. Counts can be dependent; they are not rebound probabilities or strategy results. Parameters and endpoint are teaching conventions."
  },
  "result": {
    "kept": [
      {
        "i": 8,
        "known": 10,
        "price": 116427,
        "lower": 116407,
        "upper": 116447,
        "episodes": [
          {
            "start": 11,
            "complete_at": 14,
            "reaction": 12
          },
          {
            "start": 20,
            "complete_at": 23,
            "reaction": null
          },
          {
            "start": 37,
            "complete_at": 40,
            "reaction": 38
          },
          {
            "start": 76,
            "complete_at": 79,
            "reaction": 79
          },
          {
            "start": 82,
            "complete_at": 85,
            "reaction": null
          },
          {
            "start": 96,
            "complete_at": 99,
            "reaction": 97
          },
          {
            "start": 103,
            "complete_at": 106,
            "reaction": null
          },
          {
            "start": 105,
            "complete_at": 108,
            "reaction": null
          }
        ],
        "reactions": 4,
        "latest_reaction": 97
      },
      {
        "i": 23,
        "known": 25,
        "price": 116367,
        "lower": 116347,
        "upper": 116387,
        "episodes": [
          {
            "start": 26,
            "complete_at": 29,
            "reaction": null
          },
          {
            "start": 31,
            "complete_at": 34,
            "reaction": null
          },
          {
            "start": 37,
            "complete_at": 40,
            "reaction": 38
          },
          {
            "start": 77,
            "complete_at": 80,
            "reaction": 78
          },
          {
            "start": 83,
            "complete_at": 86,
            "reaction": null
          },
          {
            "start": 85,
            "complete_at": 88,
            "reaction": 88
          },
          {
            "start": 103,
            "complete_at": 106,
            "reaction": 106
          },
          {
            "start": 107,
            "complete_at": 110,
            "reaction": 108
          },
          {
            "start": 109,
            "complete_at": 112,
            "reaction": null
          }
        ],
        "reactions": 5,
        "latest_reaction": 108
      },
      {
        "i": 28,
        "known": 30,
        "price": 116180,
        "lower": 116160,
        "upper": 116200,
        "episodes": [],
        "reactions": 0,
        "latest_reaction": -1
      },
      {
        "i": 41,
        "known": 43,
        "price": 116529,
        "lower": 116509,
        "upper": 116549,
        "episodes": [
          {
            "start": 67,
            "complete_at": 70,
            "reaction": 68
          },
          {
            "start": 73,
            "complete_at": 76,
            "reaction": 74
          },
          {
            "start": 76,
            "complete_at": 79,
            "reaction": null
          },
          {
            "start": 79,
            "complete_at": 82,
            "reaction": null
          },
          {
            "start": 92,
            "complete_at": 95,
            "reaction": null
          },
          {
            "start": 94,
            "complete_at": 97,
            "reaction": null
          }
        ],
        "reactions": 2,
        "latest_reaction": 74
      },
      {
        "i": 48,
        "known": 50,
        "price": 116755,
        "lower": 116735,
        "upper": 116775,
        "episodes": [
          {
            "start": 51,
            "complete_at": 54,
            "reaction": null
          },
          {
            "start": 56,
            "complete_at": 59,
            "reaction": null
          },
          {
            "start": 71,
            "complete_at": 74,
            "reaction": null
          },
          {
            "start": 74,
            "complete_at": 77,
            "reaction": null
          }
        ],
        "reactions": 0,
        "latest_reaction": -1
      },
      {
        "i": 107,
        "known": 109,
        "price": 116292,
        "lower": 116272,
        "upper": 116312,
        "episodes": [
          {
            "start": 115,
            "complete_at": 118,
            "reaction": null
          }
        ],
        "reactions": 0,
        "latest_reaction": -1
      }
    ],
    "rejected_overlap": [
      {
        "i": 11,
        "known": 13,
        "price": 116445,
        "lower": 116425,
        "upper": 116465,
        "reason": "overlap",
        "retained_anchor": 8
      },
      {
        "i": 15,
        "known": 17,
        "price": 116460,
        "lower": 116440,
        "upper": 116480,
        "reason": "overlap",
        "retained_anchor": 8
      },
      {
        "i": 20,
        "known": 22,
        "price": 116401,
        "lower": 116381,
        "upper": 116421,
        "reason": "overlap",
        "retained_anchor": 8
      },
      {
        "i": 37,
        "known": 39,
        "price": 116217,
        "lower": 116197,
        "upper": 116237,
        "reason": "overlap",
        "retained_anchor": 28
      },
      {
        "i": 62,
        "known": 64,
        "price": 116562,
        "lower": 116542,
        "upper": 116582,
        "reason": "overlap",
        "retained_anchor": 41
      },
      {
        "i": 67,
        "known": 69,
        "price": 116538,
        "lower": 116518,
        "upper": 116558,
        "reason": "overlap",
        "retained_anchor": 41
      },
      {
        "i": 77,
        "known": 79,
        "price": 116340,
        "lower": 116320,
        "upper": 116360,
        "reason": "overlap",
        "retained_anchor": 23
      },
      {
        "i": 83,
        "known": 85,
        "price": 116333,
        "lower": 116313,
        "upper": 116353,
        "reason": "overlap",
        "retained_anchor": 23
      },
      {
        "i": 87,
        "known": 89,
        "price": 116362,
        "lower": 116342,
        "upper": 116382,
        "reason": "overlap",
        "retained_anchor": 23
      },
      {
        "i": 93,
        "known": 95,
        "price": 116408,
        "lower": 116388,
        "upper": 116428,
        "reason": "overlap",
        "retained_anchor": 8
      },
      {
        "i": 96,
        "known": 98,
        "price": 116439,
        "lower": 116419,
        "upper": 116459,
        "reason": "overlap",
        "retained_anchor": 8
      },
      {
        "i": 104,
        "known": 106,
        "price": 116354,
        "lower": 116334,
        "upper": 116374,
        "reason": "overlap",
        "retained_anchor": 23
      },
      {
        "i": 110,
        "known": 112,
        "price": 116331,
        "lower": 116311,
        "upper": 116351,
        "reason": "overlap",
        "retained_anchor": 23
      },
      {
        "i": 116,
        "known": 118,
        "price": 116259,
        "lower": 116239,
        "upper": 116279,
        "reason": "overlap",
        "retained_anchor": 107
      }
    ],
    "ranked": [
      {
        "i": 23,
        "known": 25,
        "price": 116367,
        "lower": 116347,
        "upper": 116387,
        "episodes": [
          {
            "start": 26,
            "complete_at": 29,
            "reaction": null
          },
          {
            "start": 31,
            "complete_at": 34,
            "reaction": null
          },
          {
            "start": 37,
            "complete_at": 40,
            "reaction": 38
          },
          {
            "start": 77,
            "complete_at": 80,
            "reaction": 78
          },
          {
            "start": 83,
            "complete_at": 86,
            "reaction": null
          },
          {
            "start": 85,
            "complete_at": 88,
            "reaction": 88
          },
          {
            "start": 103,
            "complete_at": 106,
            "reaction": 106
          },
          {
            "start": 107,
            "complete_at": 110,
            "reaction": 108
          },
          {
            "start": 109,
            "complete_at": 112,
            "reaction": null
          }
        ],
        "reactions": 5,
        "latest_reaction": 108
      },
      {
        "i": 8,
        "known": 10,
        "price": 116427,
        "lower": 116407,
        "upper": 116447,
        "episodes": [
          {
            "start": 11,
            "complete_at": 14,
            "reaction": 12
          },
          {
            "start": 20,
            "complete_at": 23,
            "reaction": null
          },
          {
            "start": 37,
            "complete_at": 40,
            "reaction": 38
          },
          {
            "start": 76,
            "complete_at": 79,
            "reaction": 79
          },
          {
            "start": 82,
            "complete_at": 85,
            "reaction": null
          },
          {
            "start": 96,
            "complete_at": 99,
            "reaction": 97
          },
          {
            "start": 103,
            "complete_at": 106,
            "reaction": null
          },
          {
            "start": 105,
            "complete_at": 108,
            "reaction": null
          }
        ],
        "reactions": 4,
        "latest_reaction": 97
      },
      {
        "i": 41,
        "known": 43,
        "price": 116529,
        "lower": 116509,
        "upper": 116549,
        "episodes": [
          {
            "start": 67,
            "complete_at": 70,
            "reaction": 68
          },
          {
            "start": 73,
            "complete_at": 76,
            "reaction": 74
          },
          {
            "start": 76,
            "complete_at": 79,
            "reaction": null
          },
          {
            "start": 79,
            "complete_at": 82,
            "reaction": null
          },
          {
            "start": 92,
            "complete_at": 95,
            "reaction": null
          },
          {
            "start": 94,
            "complete_at": 97,
            "reaction": null
          }
        ],
        "reactions": 2,
        "latest_reaction": 74
      }
    ],
    "selected": [
      {
        "i": 23,
        "known": 25,
        "price": 116367,
        "lower": 116347,
        "upper": 116387,
        "episodes": [
          {
            "start": 26,
            "complete_at": 29,
            "reaction": null
          },
          {
            "start": 31,
            "complete_at": 34,
            "reaction": null
          },
          {
            "start": 37,
            "complete_at": 40,
            "reaction": 38
          },
          {
            "start": 77,
            "complete_at": 80,
            "reaction": 78
          },
          {
            "start": 83,
            "complete_at": 86,
            "reaction": null
          },
          {
            "start": 85,
            "complete_at": 88,
            "reaction": 88
          },
          {
            "start": 103,
            "complete_at": 106,
            "reaction": 106
          },
          {
            "start": 107,
            "complete_at": 110,
            "reaction": 108
          },
          {
            "start": 109,
            "complete_at": 112,
            "reaction": null
          }
        ],
        "reactions": 5,
        "latest_reaction": 108
      },
      {
        "i": 8,
        "known": 10,
        "price": 116427,
        "lower": 116407,
        "upper": 116447,
        "episodes": [
          {
            "start": 11,
            "complete_at": 14,
            "reaction": 12
          },
          {
            "start": 20,
            "complete_at": 23,
            "reaction": null
          },
          {
            "start": 37,
            "complete_at": 40,
            "reaction": 38
          },
          {
            "start": 76,
            "complete_at": 79,
            "reaction": 79
          },
          {
            "start": 82,
            "complete_at": 85,
            "reaction": null
          },
          {
            "start": 96,
            "complete_at": 99,
            "reaction": 97
          },
          {
            "start": 103,
            "complete_at": 106,
            "reaction": null
          },
          {
            "start": 105,
            "complete_at": 108,
            "reaction": null
          }
        ],
        "reactions": 4,
        "latest_reaction": 97
      },
      {
        "i": 41,
        "known": 43,
        "price": 116529,
        "lower": 116509,
        "upper": 116549,
        "episodes": [
          {
            "start": 67,
            "complete_at": 70,
            "reaction": 68
          },
          {
            "start": 73,
            "complete_at": 76,
            "reaction": 74
          },
          {
            "start": 76,
            "complete_at": 79,
            "reaction": null
          },
          {
            "start": 79,
            "complete_at": 82,
            "reaction": null
          },
          {
            "start": 92,
            "complete_at": 95,
            "reaction": null
          },
          {
            "start": 94,
            "complete_at": 97,
            "reaction": null
          }
        ],
        "reactions": 2,
        "latest_reaction": 74
      }
    ]
  },
  "index_basis": "All result i/known/episode indices are zero-based rows of this 120-record excerpt, excluding the header. Add source_start_index to obtain the complete-source row. Every price is in 0.00001 EURUSD source points."
}
