{
  "provider": "ICMarketsSC-Demo / MT5",
  "price_side": "Bid",
  "time_basis": "Original MT5 labels, server offset unverified. D1 uses broker daily boundaries.",
  "selection": {
    "version": "lab55-rules-v1",
    "range": {
      "first": "2026-01-01 00:00",
      "last": "2026-09-30 23:59",
      "time_basis": "Original MT5 labels, broker offset unverified"
    },
    "selector": "First chronological match in the assigned source, using only the pattern and earlier records. No filter uses any later OHLC.",
    "preceding_context": "Three strict close-to-close changes use four closed observations before the first pattern bar.",
    "display": {
      "context_records_before_pattern": 7,
      "future_records_after_pattern": 5
    },
    "specs": [
      {
        "id": "hammer",
        "file": "GBPUSD-H4.csv",
        "pattern_bars": 1,
        "rule": "3 preceding close-to-close declines; 0.10<B/R<=0.30; D/R>=0.60; U/R<=0.10"
      },
      {
        "id": "shooting-star",
        "file": "USDJPY-H4.csv",
        "pattern_bars": 1,
        "rule": "3 preceding close-to-close advances; 0.10<B/R<=0.30; U/R>=0.60; D/R<=0.10"
      },
      {
        "id": "doji",
        "file": "EURUSD-D1.csv",
        "pattern_bars": 1,
        "rule": "R>0; B/R<=0.10; no directional or outcome requirement"
      },
      {
        "id": "harami",
        "file": "GBPUSD-H1.csv",
        "pattern_bars": 2,
        "rule": "3 preceding close-to-close declines before first; first bearish B/R>=0.60; second bullish, body strictly inside first body, B2<=0.50*B1; second range is not strictly inside first range"
      },
      {
        "id": "fx-morning-star",
        "file": "USDJPY-H4.csv",
        "pattern_bars": 3,
        "rule": "3 preceding close-to-close declines before first; first bearish B/R>=0.60; middle B/R<=0.30; third bullish B/R>=0.60 and C3>=(O1+C1)/2; middle body not gapped below first body"
      },
      {
        "id": "not-a-hammer",
        "file": "GBPUSD-H4.csv",
        "pattern_bars": 1,
        "rule": "3 preceding close-to-close declines; 0.30<B/R<=0.35; D/R>=0.60; U/R<=0.10; only hammer body-share threshold fails"
      }
    ]
  },
  "source_exports": [
    {
      "file": "lab55-source-eurusd-d1.csv",
      "sha256": "0fdc92afdc0ae246a15b0c54b8bbc07f045b1a3bedf88307f908e85dca93bd80",
      "original_file": "EURUSD-D1.csv",
      "source_sha256": "0fdc92afdc0ae246a15b0c54b8bbc07f045b1a3bedf88307f908e85dca93bd80",
      "symbol": "EURUSD",
      "timeframe": "D1",
      "digits": 5,
      "point": 1e-05
    },
    {
      "file": "lab55-source-gbpusd-h1.csv",
      "sha256": "5289cd58e0fb935e0c65f0f57ac5047b4f27db5f8e6ed29fe937c559baba9df9",
      "original_file": "GBPUSD-H1.csv",
      "source_sha256": "5289cd58e0fb935e0c65f0f57ac5047b4f27db5f8e6ed29fe937c559baba9df9",
      "symbol": "GBPUSD",
      "timeframe": "H1",
      "digits": 5,
      "point": 1e-05
    },
    {
      "file": "lab55-source-gbpusd-h4.csv",
      "sha256": "681a25d3bf5cb5a310b87d45c7f4e8123b72f5dc46d6647b556b9d0718e00ac8",
      "original_file": "GBPUSD-H4.csv",
      "source_sha256": "681a25d3bf5cb5a310b87d45c7f4e8123b72f5dc46d6647b556b9d0718e00ac8",
      "symbol": "GBPUSD",
      "timeframe": "H4",
      "digits": 5,
      "point": 1e-05
    },
    {
      "file": "lab55-source-usdjpy-h4.csv",
      "sha256": "3399fa480a6389247ad55074345a82e37f2cc425944d7dadbbefc4a8d4bf8d3c",
      "original_file": "USDJPY-H4.csv",
      "source_sha256": "3399fa480a6389247ad55074345a82e37f2cc425944d7dadbbefc4a8d4bf8d3c",
      "symbol": "USDJPY",
      "timeframe": "H4",
      "digits": 3,
      "point": 0.001
    }
  ],
  "normalization": "Nearest declared symbol point, ROUND_HALF_EVEN; only binary serialization tails below 1e-6 points are removed. Raw strings remain in CSV.",
  "cases": [
    {
      "id": "lab55-hammer",
      "heading": "Hammer: what do its proportions and the next candle tell us?",
      "prompt": "Measure the body and both shadows as shares of the range. Does the candle meet the article’s hammer thresholds, following three consecutive declines in Close? Note the high that the next close would need to exceed.",
      "answer": "The body occupies 17.27% of the range, the lower shadow 73.38% and the upper shadow 9.35%, so the geometry meets the thresholds. Three consecutive declines in Close precede the pattern. The next C=1.31990 does not exceed H=1.32026, so there is no confirmation within our immediate window. The later rise shown in the revealed chart does not retroactively change that classification.",
      "known_after_original_mt5": "2026-06-29 04:00",
      "source_file": "GBPUSD-H4.csv",
      "source_sha256": "681a25d3bf5cb5a310b87d45c7f4e8123b72f5dc46d6647b556b9d0718e00ac8",
      "pattern_indices": [
        3508,
        3508
      ],
      "before_csv": "lab55-hammer-before.csv",
      "after_csv": "lab55-hammer-after.csv",
      "rule": "3 preceding close-to-close declines; 0.10<B/R<=0.30; D/R>=0.60; U/R<=0.10"
    },
    {
      "id": "lab55-shooting-star",
      "heading": "Shooting star: candle colour is not a measurement",
      "prompt": "Check the preceding closes and calculate the three shares of the candle’s range. Does a bullish body rule out this geometry? Note the low below which the immediately next candle would have to close.",
      "answer": "The preceding three changes in Close are positive. The body is 24.28% of the range, the upper shadow 65.93% and the lower shadow 9.79%. The shape meets our thresholds despite its bullish body. The next C=154.893 remains above L=154.790, so confirmation does not arrive by the deadline. Only the following candle closes lower; we do not count it as late confirmation of the same rule.",
      "known_after_original_mt5": "2026-02-02 04:00",
      "source_file": "USDJPY-H4.csv",
      "source_sha256": "3399fa480a6389247ad55074345a82e37f2cc425944d7dadbbefc4a8d4bf8d3c",
      "pattern_indices": [
        2878,
        2878
      ],
      "before_csv": "lab55-shooting-star-before.csv",
      "after_csv": "lab55-shooting-star-after.csv",
      "rule": "3 preceding close-to-close advances; 0.10<B/R<=0.30; U/R>=0.60; D/R<=0.10"
    },
    {
      "id": "lab55-doji",
      "heading": "Doji: a small body does not determine direction",
      "prompt": "Compare Open–Close with the whole range of this broker-defined daily candle. Check the B/R≤10% threshold, then describe only what these data establish. Do not choose a future direction from the candle’s colour or long shadow alone.",
      "answer": "The body is 3.87% of the range, so this record meets the doji threshold. The range is 69.7 pips and Open–Close differs by 2.7 pips: a small net change does not mean little movement within the daily interval. The next C=1.16884 stays within the doji’s range. Price changes position over the next five available daily records, but this single selected candle establishes neither an occurrence rate nor a directional edge.",
      "known_after_original_mt5": "2026-01-06 00:00",
      "source_file": "EURUSD-D1.csv",
      "source_sha256": "0fdc92afdc0ae246a15b0c54b8bbc07f045b1a3bedf88307f908e85dca93bd80",
      "pattern_indices": [
        1293,
        1293
      ],
      "before_csv": "lab55-doji-before.csv",
      "after_csv": "lab55-doji-after.csv",
      "rule": "R>0; B/R<=0.10; no directional or outcome requirement"
    },
    {
      "id": "lab55-harami",
      "heading": "Harami: the body fits inside, but the range does not",
      "prompt": "Compare the bodies and the full ranges separately. Which boundaries define a harami, and which define an inside bar? Also check the preceding declines and when both completed closes become available.",
      "answer": "The first body spans [1.36047; 1.36090] and the second [1.36064; 1.36078], strictly inside it. However, the second high 1.36098 exceeds the first high 1.36096, so this is not a strict inside bar. The small body gives a bullish harami under the stated convention, not an automatic reversal. The next close 1.36042 does not exceed the pattern’s high; the subsequent declines show why a pattern’s name is not its future outcome.",
      "known_after_original_mt5": "2026-05-12 02:00",
      "source_file": "GBPUSD-H1.csv",
      "source_sha256": "5289cd58e0fb935e0c65f0f57ac5047b4f27db5f8e6ed29fe937c559baba9df9",
      "pattern_indices": [
        3216,
        3217
      ],
      "before_csv": "lab55-harami-before.csv",
      "after_csv": "lab55-harami-after.csv",
      "rule": "3 preceding close-to-close declines before first; first bearish B/R>=0.60; second bullish, body strictly inside first body, B2<=0.50*B1; second range is not strictly inside first range"
    },
    {
      "id": "lab55-fx-morning-star",
      "heading": "FX morning star: three candles, explicitly without the classic gap",
      "prompt": "First check the large bearish body, then the small middle body and the bullish third candle. Does the third close reach at least halfway through the first body? Also compare the first and second bodies: without a gap, only our explicitly defined FX variant can qualify.",
      "answer": "The middle body is 23.62% of its range, and the third C=159.732 exceeds the first body’s midpoint 159.529. The first and second bodies have no classic gap between them, so this is labelled an “FX variant without a gap”. The whole pattern becomes recognisable only after the third candle closes; the next C=159.882 exceeds its H=159.736. By the end of the displayed window, C=158.954 falls below L=159.329, ending that confirmed scenario without reconstructing a trade from OHLC alone.",
      "known_after_original_mt5": "2026-03-31 00:00",
      "source_file": "USDJPY-H4.csv",
      "source_sha256": "3399fa480a6389247ad55074345a82e37f2cc425944d7dadbbefc4a8d4bf8d3c",
      "pattern_indices": [
        3121,
        3123
      ],
      "before_csv": "lab55-fx-morning-star-before.csv",
      "after_csv": "lab55-fx-morning-star-after.csv",
      "rule": "3 preceding close-to-close declines before first; first bearish B/R>=0.60; middle B/R<=0.30; third bullish B/R>=0.60 and C3>=(O1+C1)/2; middle body not gapped below first body"
    },
    {
      "id": "lab55-not-a-hammer",
      "heading": "A long lower shadow: does this candle pass the hammer threshold?",
      "prompt": "Do not classify the shape by eye alone. Calculate B/R, D/R and U/R, compare them with the article’s thresholds, and record the classification before revealing the next prices. Are all three conditions met together?",
      "answer": "The lower shadow is 69.41% of the range and the upper shadow only 0.24%, but the body occupies 30.35%. It exceeds the permitted 30%, so this candle does not meet our hammer definition. The next C=1.35146 is above its H=1.35055, but a favourable later direction cannot repair a failed condition. A separate variant with another threshold can be studied; the threshold must not be changed only after seeing this move.",
      "known_after_original_mt5": "2026-04-28 16:00",
      "source_file": "GBPUSD-H4.csv",
      "source_sha256": "681a25d3bf5cb5a310b87d45c7f4e8123b72f5dc46d6647b556b9d0718e00ac8",
      "pattern_indices": [
        3247,
        3247
      ],
      "before_csv": "lab55-not-a-hammer-before.csv",
      "after_csv": "lab55-not-a-hammer-after.csv",
      "rule": "3 preceding close-to-close declines; 0.30<B/R<=0.35; D/R>=0.60; U/R<=0.10; only hammer body-share threshold fails"
    }
  ],
  "limitations": [
    "First matches illustrate definitions, not performance.",
    "Future values never enter the before frame, including its price scale.",
    "No order-flow, trade fill, historical spread cost or success-rate reconstruction.",
    "Three preceding close-to-close changes are a limited context convention, not a complete structural trend."
  ],
  "source_export_provenance": {
    "forming_bar_excluded": true,
    "trading_calls_made_in_original_export": 0,
    "new_MT5_connections": 0
  }
}
