{"source":"Hourly OHLC bars from Dukascopy (dukascopy.com), 2003 onwards; aggregated by Perfect Indicators.","license":"CC BY 4.0 — these aggregates only. The underlying tick history belongs to Dukascopy and is not ours to relicense.","attribution":"Perfect Indicators — https://perfectindicators.com","built":"2026-09-26","cut":22,"look":60,"bins":10,"sigz":3,"note":"Two candlestick patterns at three strengths each, at the daily unit. The control is every day with the same two-day sequence and the same normalised range but without the named geometry, so what is measured is what the SHAPE adds. Entry is the pattern day’s close, exit the next day’s close. The day is cut at 22:00 UTC (section 19); the midnight arm is reported beside it.","markets":19,"follow":{"n":72136,"pooledPct":48.62,"medianPct":48.36,"medianBase":50.07,"medianZ":-2,"below":13,"markets":19},"engulf":{"head":1,"markets":19,"n":9944,"hit":4814,"pooledPct":48.41,"medianPct":48.76,"medianBase":50.01,"medianZ":-0.63,"maxAbsZ":2.91,"sig":0,"matchedN":9944,"pooledCtl":48.9,"pooledSel":48.41,"pooledGap":-0.49,"medianGap":-0.39,"gapPositive":8,"gapMarkets":19,"controlDays":26932,"netMedianX":-1.067,"netPositive":3,"paying":2,"ladder":[{"k":1,"markets":19,"medianPct":48.76,"pooledSel":48.41,"pooledCtl":48.9,"medianGap":-0.39,"gapPositive":8,"n":9944},{"k":1.5,"markets":19,"medianPct":48.26,"pooledSel":48.91,"pooledCtl":48.87,"medianGap":-0.49,"gapPositive":8,"n":7857},{"k":2,"markets":18,"medianPct":49.02,"pooledSel":49.05,"pooledCtl":48.91,"medianGap":-0.89,"gapPositive":8,"n":6284}]},"pin":{"head":2,"markets":19,"n":10173,"hit":5105,"pooledPct":50.18,"medianPct":50,"medianBase":50.02,"medianZ":0.09,"maxAbsZ":2.59,"sig":0,"matchedN":10173,"pooledCtl":50.24,"pooledSel":50.18,"pooledGap":-0.05,"medianGap":-0.36,"gapPositive":8,"gapMarkets":19,"controlDays":38855,"netMedianX":-0.056,"netPositive":9,"paying":6,"ladder":[{"k":1.5,"markets":19,"medianPct":49.71,"pooledSel":50.18,"pooledCtl":50.22,"medianGap":-0.74,"gapPositive":9,"n":12600},{"k":2,"markets":19,"medianPct":50,"pooledSel":50.18,"pooledCtl":50.24,"medianGap":-0.36,"gapPositive":8,"n":10173},{"k":3,"markets":19,"medianPct":50.73,"pooledSel":50.23,"pooledCtl":50.2,"medianGap":-0.14,"gapPositive":9,"n":7240}]},"midnight":{"engulf":{"head":1,"markets":19,"n":10564,"hit":5152,"pooledPct":48.77,"medianPct":49.1,"medianBase":49.96,"medianZ":-0.55,"maxAbsZ":2.62,"sig":0,"matchedN":10564,"pooledCtl":48.82,"pooledSel":48.77,"pooledGap":-0.05,"medianGap":-0.17,"gapPositive":8,"gapMarkets":19,"controlDays":26351,"netMedianX":-0.533,"netPositive":5,"paying":3,"ladder":[{"k":1,"markets":19,"medianPct":49.1,"pooledSel":48.77,"pooledCtl":48.82,"medianGap":-0.17,"gapPositive":8,"n":10564},{"k":1.5,"markets":19,"medianPct":48.71,"pooledSel":48.99,"pooledCtl":48.87,"medianGap":-0.17,"gapPositive":9,"n":8296},{"k":2,"markets":18,"medianPct":49.09,"pooledSel":49.5,"pooledCtl":48.92,"medianGap":0.49,"gapPositive":10,"n":6648}]},"pin":{"head":2,"markets":19,"n":10127,"hit":5142,"pooledPct":50.78,"medianPct":50.79,"medianBase":50.11,"medianZ":0.17,"maxAbsZ":2.03,"sig":0,"matchedN":10127,"pooledCtl":50.2,"pooledSel":50.78,"pooledGap":0.58,"medianGap":0.27,"gapPositive":11,"gapMarkets":19,"controlDays":38992,"netMedianX":0.25,"netPositive":12,"paying":7,"ladder":[{"k":1.5,"markets":19,"medianPct":50.35,"pooledSel":50.41,"pooledCtl":50.21,"medianGap":0.47,"gapPositive":11,"n":12564},{"k":2,"markets":19,"medianPct":50.79,"pooledSel":50.78,"pooledCtl":50.2,"medianGap":0.27,"gapPositive":11,"n":10127},{"k":3,"markets":19,"medianPct":50,"pooledSel":50.84,"pooledCtl":50.17,"medianGap":0.73,"gapPositive":12,"n":7268}]}},"byMarket":{"eurusd":{"name":"EUR/USD","days":5932,"baseUp":50.36,"engulf":{"n":859,"pct":49.01,"z":-0.57,"gap":0.11,"netX":-0.6},"pin":{"n":778,"pct":50.9,"z":0.51,"gap":-0.29,"netX":1.1}},"gbpusd":{"name":"GBP/USD","days":5239,"baseUp":49.93,"engulf":{"n":758,"pct":50.79,"z":0.44,"gap":-0.39,"netX":0.917},"pin":{"n":663,"pct":51.13,"z":0.58,"gap":-0.56,"netX":2.417}},"usdchf":{"name":"USD/CHF","days":3260,"baseUp":51.79,"engulf":{"n":453,"pct":46.8,"z":-1.39,"gap":-2.92,"netX":-1.667},"pin":{"n":466,"pct":51.5,"z":0.78,"gap":0.5,"netX":1.625}},"usdjpy":{"name":"USD/JPY","days":4594,"baseUp":51.75,"engulf":{"n":668,"pct":48.35,"z":-0.86,"gap":-1.21,"netX":-2.55},"pin":{"n":618,"pct":52.59,"z":1.18,"gap":1.37,"netX":2.6}},"audusd":{"name":"AUD/USD","days":5761,"baseUp":51.61,"engulf":{"n":807,"pct":44.86,"z":-2.91,"gap":-3.23,"netX":-3.417},"pin":{"n":745,"pct":49.4,"z":-0.29,"gap":-2.03,"netX":-0.667}},"usdcad":{"name":"USD/CAD","days":5950,"baseUp":50.37,"engulf":{"n":870,"pct":49.43,"z":-0.32,"gap":1.69,"netX":-0.433},"pin":{"n":788,"pct":50.13,"z":0.09,"gap":-0.64,"netX":0.1}},"nzdusd":{"name":"NZD/USD","days":5189,"baseUp":51.98,"engulf":{"n":721,"pct":48.96,"z":-0.45,"gap":-2.62,"netX":-0.611},"pin":{"n":714,"pct":50,"z":0.12,"gap":0.69,"netX":-0.056}},"eurjpy":{"name":"EUR/JPY","days":5258,"baseUp":51.41,"engulf":{"n":736,"pct":53.26,"z":1.66,"gap":4.66,"netX":3.767},"pin":{"n":742,"pct":50,"z":-0.04,"gap":0.46,"netX":0.067}},"gbpjpy":{"name":"GBP/JPY","days":4190,"baseUp":51.48,"engulf":{"n":577,"pct":49.74,"z":-0.15,"gap":0.14,"netX":-1.4},"pin":{"n":565,"pct":47.96,"z":-1,"gap":-1.11,"netX":-1.75}},"eurgbp":{"name":"EUR/GBP","days":2471,"baseUp":49.52,"engulf":{"n":346,"pct":51.45,"z":0.56,"gap":1.72,"netX":1.667},"pin":{"n":326,"pct":48.47,"z":-0.59,"gap":-3.05,"netX":-1.417}},"xauusd":{"name":"Gold (XAU/USD)","days":6061,"baseUp":53.03,"engulf":{"n":761,"pct":46.39,"z":-2.14,"gap":-1.78,"netX":-3.19},"pin":{"n":851,"pct":52.64,"z":1.7,"gap":3.32,"netX":1.57}},"xagusd":{"name":"Silver (XAG/USD)","days":5228,"baseUp":53.22,"engulf":{"n":607,"pct":44.81,"z":-2.4,"gap":-2.25,"netX":-1.067},"pin":{"n":931,"pct":46.83,"z":-1.97,"gap":-3.92,"netX":-0.667}},"usa30idxusd":{"name":"US30 (Dow)","days":2211,"baseUp":54.3,"engulf":{"n":239,"pct":49.37,"z":-0.27,"gap":0.29,"netX":-0.775},"pin":{"n":291,"pct":48.8,"z":-0.4,"gap":2.96,"netX":-2.771}},"usatechidxusd":{"name":"NAS100","days":1733,"baseUp":55.48,"engulf":{"n":204,"pct":50,"z":-0.08,"gap":0.45,"netX":-0.56},"pin":{"n":206,"pct":44.17,"z":-1.81,"gap":-6.34,"netX":-17.519}},"usa500idxusd":{"name":"SPX500","days":1732,"baseUp":55.27,"engulf":{"n":193,"pct":45.08,"z":-1.28,"gap":-5.07,"netX":-5.55},"pin":{"n":211,"pct":48.82,"z":-0.35,"gap":-1.86,"netX":-0.719}},"deuidxeur":{"name":"GER40 (DAX)","days":2043,"baseUp":53.71,"engulf":{"n":210,"pct":45.71,"z":-1.21,"gap":-1.53,"netX":-13.833},"pin":{"n":300,"pct":57.67,"z":2.59,"gap":10.8,"netX":15.47}},"gbridxgbp":{"name":"UK100 (FTSE)","days":916,"baseUp":52.93,"engulf":{"n":94,"pct":43.62,"z":-1.28,"gap":-0.44,"netX":-6.903},"pin":{"n":114,"pct":50,"z":0.12,"gap":6.45,"netX":-0.267}},"btcusd":{"name":"BTC/USD","days":2879,"baseUp":51.93,"engulf":{"n":437,"pct":46.91,"z":-1.45,"gap":-0.33,"netX":-1.16},"pin":{"n":441,"pct":49.43,"z":-0.3,"gap":-0.36,"netX":-0.255}},"ethusd":{"name":"ETH/USD","days":2809,"baseUp":51.12,"engulf":{"n":404,"pct":48.76,"z":-0.63,"gap":1.11,"netX":-0.2},"pin":{"n":423,"pct":51.3,"z":0.51,"gap":-0.98,"netX":0.4}}}}