{
  "source": "ICMarketsSC-Demo / local MetaTrader 5 Python API",
  "sourceMetadata": {
    "symbol": "EURUSD",
    "timeframe": "H1",
    "file": "EURUSD-H1.csv",
    "bars": 6000,
    "requested": 6000,
    "first_mt5_time": "2025-11-03 00:00",
    "last_mt5_time": "2026-10-21 00:00",
    "digits": 5,
    "point": 1e-05,
    "chart_mode": 0,
    "description": "Euro vs US Dollar",
    "sha256": "0f58687cc1be679669de57ce3c128d708a51e415f8a2a7c614909fae97a49fef"
  },
  "sourceCSVUnmodified": true,
  "timeBasis": "Original MT5 epoch retained; ISO encoding uses UTC conversion, but the broker's wall-clock offset is not independently verified. Chart labels must say original MT5 time, not UTC/local time.",
  "allBarsClosed": true,
  "selection": "Retrospective educational cases, deliberately including absent confirmation and invalidation; no sampled success rate or P&L. Fixed article conditions; no claims of live ex ante annotation.",
  "priceSide": "Bid",
  "noTradingOrMT5Connection": true,
  "intermediatePrecision": "Decimal, 50 significant digits; only presentation rounded",
  "quoteNormalization": "EURUSD digits=5: nearest 0.00001, ROUND_HALF_EVEN. Removes only binary float serialization tails; deviation verified <0.000001 point (1e-11 price). Raw OHLC strings retained in source and window CSVs. Indicator recurrence uses canonical points, no intermediate rounding.",
  "missingBars": "Available export records used in order; no invented flat bars; equal candle spacing is record sequence, not elapsed time",
  "cases": [
    {
      "code": "56",
      "kind": "fakey",
      "id": "real-eurusd-h1-fakey-return-20260916",
      "at": 5409,
      "start": 5402,
      "stop": 5414,
      "tf": "H1",
      "rows": [
        {
          "time_raw_epoch": "1789527600",
          "time_mt5": "2026-09-16 03:00",
          "open": 115367,
          "high": 115391,
          "low": 115337,
          "close": 115353,
          "tick_volume": "1942",
          "spread_points": "0",
          "real_volume": "0",
          "index": 5402,
          "raw_ohlc": {
            "open": "1.15367",
            "high": "1.15391",
            "low": "1.15337",
            "close": "1.15353"
          }
        },
        {
          "time_raw_epoch": "1789531200",
          "time_mt5": "2026-09-16 04:00",
          "open": 115353,
          "high": 115363,
          "low": 115318,
          "close": 115326,
          "tick_volume": "1677",
          "spread_points": "0",
          "real_volume": "0",
          "index": 5403,
          "raw_ohlc": {
            "open": "1.15353",
            "high": "1.15363",
            "low": "1.15318",
            "close": "1.15326"
          }
        },
        {
          "time_raw_epoch": "1789534800",
          "time_mt5": "2026-09-16 05:00",
          "open": 115325,
          "high": 115425,
          "low": 115324,
          "close": 115422,
          "tick_volume": "1294",
          "spread_points": "0",
          "real_volume": "0",
          "index": 5404,
          "raw_ohlc": {
            "open": "1.1532499999999999",
            "high": "1.15425",
            "low": "1.15324",
            "close": "1.15422"
          }
        },
        {
          "time_raw_epoch": "1789538400",
          "time_mt5": "2026-09-16 06:00",
          "open": 115422,
          "high": 115436,
          "low": 115398,
          "close": 115414,
          "tick_volume": "810",
          "spread_points": "0",
          "real_volume": "0",
          "index": 5405,
          "raw_ohlc": {
            "open": "1.15422",
            "high": "1.15436",
            "low": "1.15398",
            "close": "1.15414"
          }
        },
        {
          "time_raw_epoch": "1789542000",
          "time_mt5": "2026-09-16 07:00",
          "open": 115414,
          "high": 115460,
          "low": 115414,
          "close": 115446,
          "tick_volume": "907",
          "spread_points": "0",
          "real_volume": "0",
          "index": 5406,
          "raw_ohlc": {
            "open": "1.15414",
            "high": "1.1546",
            "low": "1.15414",
            "close": "1.15446"
          }
        },
        {
          "time_raw_epoch": "1789545600",
          "time_mt5": "2026-09-16 08:00",
          "open": 115446,
          "high": 115517,
          "low": 115434,
          "close": 115498,
          "tick_volume": "1195",
          "spread_points": "0",
          "real_volume": "0",
          "index": 5407,
          "raw_ohlc": {
            "open": "1.15446",
            "high": "1.15517",
            "low": "1.15434",
            "close": "1.1549800000000001"
          }
        },
        {
          "time_raw_epoch": "1789549200",
          "time_mt5": "2026-09-16 09:00",
          "open": 115496,
          "high": 115509,
          "low": 115443,
          "close": 115473,
          "tick_volume": "1633",
          "spread_points": "0",
          "real_volume": "0",
          "index": 5408,
          "raw_ohlc": {
            "open": "1.15496",
            "high": "1.15509",
            "low": "1.15443",
            "close": "1.15473"
          }
        },
        {
          "time_raw_epoch": "1789552800",
          "time_mt5": "2026-09-16 10:00",
          "open": 115472,
          "high": 115565,
          "low": 115464,
          "close": 115479,
          "tick_volume": "1668",
          "spread_points": "0",
          "real_volume": "0",
          "index": 5409,
          "raw_ohlc": {
            "open": "1.15472",
            "high": "1.15565",
            "low": "1.15464",
            "close": "1.15479"
          }
        },
        {
          "time_raw_epoch": "1789556400",
          "time_mt5": "2026-09-16 11:00",
          "open": 115479,
          "high": 115497,
          "low": 115383,
          "close": 115396,
          "tick_volume": "1879",
          "spread_points": "0",
          "real_volume": "0",
          "index": 5410,
          "raw_ohlc": {
            "open": "1.15479",
            "high": "1.15497",
            "low": "1.15383",
            "close": "1.15396"
          }
        },
        {
          "time_raw_epoch": "1789560000",
          "time_mt5": "2026-09-16 12:00",
          "open": 115394,
          "high": 115442,
          "low": 115379,
          "close": 115390,
          "tick_volume": "1668",
          "spread_points": "0",
          "real_volume": "0",
          "index": 5411,
          "raw_ohlc": {
            "open": "1.15394",
            "high": "1.15442",
            "low": "1.15379",
            "close": "1.1539"
          }
        },
        {
          "time_raw_epoch": "1789563600",
          "time_mt5": "2026-09-16 13:00",
          "open": 115390,
          "high": 115400,
          "low": 115343,
          "close": 115376,
          "tick_volume": "1381",
          "spread_points": "0",
          "real_volume": "0",
          "index": 5412,
          "raw_ohlc": {
            "open": "1.1539",
            "high": "1.154",
            "low": "1.15343",
            "close": "1.1537600000000001"
          }
        },
        {
          "time_raw_epoch": "1789567200",
          "time_mt5": "2026-09-16 14:00",
          "open": 115375,
          "high": 115406,
          "low": 115310,
          "close": 115348,
          "tick_volume": "1993",
          "spread_points": "0",
          "real_volume": "0",
          "index": 5413,
          "raw_ohlc": {
            "open": "1.15375",
            "high": "1.15406",
            "low": "1.1531",
            "close": "1.15348"
          }
        }
      ],
      "calc": {
        "motherHigh": 115517,
        "motherLow": 115434,
        "insideHigh": 115509,
        "insideLow": 115443,
        "fakeyHigh": 115565,
        "fakeyClose": 115479,
        "breachPips": "4.8",
        "recognisedAfter": "2026-09-16 11:00",
        "nextClose": 115396,
        "nextKnownAfter": "2026-09-16 12:00",
        "nextInvalidates": false,
        "nextBelowMotherLow": true
      },
      "markers": {
        "5407": "M",
        "5408": "I",
        "5409": "F",
        "5410": "N"
      },
      "title": {
        "PL": "Inside bar i powrót pod granicę",
        "EN": "Inside bar and a return below the boundary"
      }
    },
    {
      "code": "56",
      "kind": "fakey",
      "id": "real-eurusd-h1-fakey-invalidated-20260907",
      "at": 5246,
      "start": 5239,
      "stop": 5251,
      "tf": "H1",
      "rows": [
        {
          "time_raw_epoch": "1788768000",
          "time_mt5": "2026-09-07 08:00",
          "open": 116114,
          "high": 116144,
          "low": 116091,
          "close": 116143,
          "tick_volume": "980",
          "spread_points": "0",
          "real_volume": "0",
          "index": 5239,
          "raw_ohlc": {
            "open": "1.16114",
            "high": "1.16144",
            "low": "1.1609099999999999",
            "close": "1.16143"
          }
        },
        {
          "time_raw_epoch": "1788771600",
          "time_mt5": "2026-09-07 09:00",
          "open": 116143,
          "high": 116194,
          "low": 116104,
          "close": 116146,
          "tick_volume": "1780",
          "spread_points": "0",
          "real_volume": "0",
          "index": 5240,
          "raw_ohlc": {
            "open": "1.16143",
            "high": "1.16194",
            "low": "1.16104",
            "close": "1.16146"
          }
        },
        {
          "time_raw_epoch": "1788775200",
          "time_mt5": "2026-09-07 10:00",
          "open": 116146,
          "high": 116239,
          "low": 116113,
          "close": 116237,
          "tick_volume": "2207",
          "spread_points": "0",
          "real_volume": "0",
          "index": 5241,
          "raw_ohlc": {
            "open": "1.16146",
            "high": "1.16239",
            "low": "1.16113",
            "close": "1.16237"
          }
        },
        {
          "time_raw_epoch": "1788778800",
          "time_mt5": "2026-09-07 11:00",
          "open": 116237,
          "high": 116358,
          "low": 116210,
          "close": 116210,
          "tick_volume": "3516",
          "spread_points": "0",
          "real_volume": "0",
          "index": 5242,
          "raw_ohlc": {
            "open": "1.16237",
            "high": "1.16358",
            "low": "1.1621",
            "close": "1.1621"
          }
        },
        {
          "time_raw_epoch": "1788782400",
          "time_mt5": "2026-09-07 12:00",
          "open": 116211,
          "high": 116260,
          "low": 116196,
          "close": 116205,
          "tick_volume": "1944",
          "spread_points": "0",
          "real_volume": "0",
          "index": 5243,
          "raw_ohlc": {
            "open": "1.16211",
            "high": "1.1626",
            "low": "1.16196",
            "close": "1.16205"
          }
        },
        {
          "time_raw_epoch": "1788786000",
          "time_mt5": "2026-09-07 13:00",
          "open": 116204,
          "high": 116267,
          "low": 116199,
          "close": 116245,
          "tick_volume": "1492",
          "spread_points": "0",
          "real_volume": "0",
          "index": 5244,
          "raw_ohlc": {
            "open": "1.16204",
            "high": "1.16267",
            "low": "1.16199",
            "close": "1.16245"
          }
        },
        {
          "time_raw_epoch": "1788789600",
          "time_mt5": "2026-09-07 14:00",
          "open": 116245,
          "high": 116256,
          "low": 116220,
          "close": 116230,
          "tick_volume": "1624",
          "spread_points": "0",
          "real_volume": "0",
          "index": 5245,
          "raw_ohlc": {
            "open": "1.16245",
            "high": "1.16256",
            "low": "1.1622",
            "close": "1.1623"
          }
        },
        {
          "time_raw_epoch": "1788793200",
          "time_mt5": "2026-09-07 15:00",
          "open": 116231,
          "high": 116284,
          "low": 116210,
          "close": 116250,
          "tick_volume": "1874",
          "spread_points": "0",
          "real_volume": "0",
          "index": 5246,
          "raw_ohlc": {
            "open": "1.16231",
            "high": "1.16284",
            "low": "1.1621",
            "close": "1.1625"
          }
        },
        {
          "time_raw_epoch": "1788796800",
          "time_mt5": "2026-09-07 16:00",
          "open": 116250,
          "high": 116295,
          "low": 116240,
          "close": 116289,
          "tick_volume": "2041",
          "spread_points": "0",
          "real_volume": "0",
          "index": 5247,
          "raw_ohlc": {
            "open": "1.1625",
            "high": "1.16295",
            "low": "1.1623999999999999",
            "close": "1.16289"
          }
        },
        {
          "time_raw_epoch": "1788800400",
          "time_mt5": "2026-09-07 17:00",
          "open": 116289,
          "high": 116329,
          "low": 116271,
          "close": 116312,
          "tick_volume": "2008",
          "spread_points": "0",
          "real_volume": "0",
          "index": 5248,
          "raw_ohlc": {
            "open": "1.16289",
            "high": "1.16329",
            "low": "1.16271",
            "close": "1.16312"
          }
        },
        {
          "time_raw_epoch": "1788804000",
          "time_mt5": "2026-09-07 18:00",
          "open": 116312,
          "high": 116320,
          "low": 116265,
          "close": 116276,
          "tick_volume": "1185",
          "spread_points": "0",
          "real_volume": "0",
          "index": 5249,
          "raw_ohlc": {
            "open": "1.16312",
            "high": "1.1632",
            "low": "1.16265",
            "close": "1.16276"
          }
        },
        {
          "time_raw_epoch": "1788807600",
          "time_mt5": "2026-09-07 19:00",
          "open": 116276,
          "high": 116298,
          "low": 116261,
          "close": 116286,
          "tick_volume": "622",
          "spread_points": "0",
          "real_volume": "0",
          "index": 5250,
          "raw_ohlc": {
            "open": "1.16276",
            "high": "1.1629800000000001",
            "low": "1.16261",
            "close": "1.16286"
          }
        }
      ],
      "calc": {
        "motherHigh": 116267,
        "motherLow": 116199,
        "insideHigh": 116256,
        "insideLow": 116220,
        "fakeyHigh": 116284,
        "fakeyClose": 116250,
        "breachPips": "1.7",
        "recognisedAfter": "2026-09-07 16:00",
        "nextClose": 116289,
        "nextKnownAfter": "2026-09-07 17:00",
        "nextInvalidates": true,
        "nextBelowMotherLow": false
      },
      "markers": {
        "5244": "M",
        "5245": "I",
        "5246": "F",
        "5247": "N"
      },
      "title": {
        "PL": "Fakey zanegowany następną świecą",
        "EN": "A fakey invalidated by the next candle"
      }
    }
  ]
}