Sign in

FX Engineer

@fxengineer.bsky.social
138 followers 23 following 7.9K posts

Systematic research on retail FX positioning. 1.9M hourly observations. 28 pairs. 12 years. We provide context. Markets decide. Research + the public calibration ledger: fxeresearch.substack.com

PostsRepliesMedia
FX Engineer @fxengineer.bsky.social · 19h
CHFJPY retail positioning reached a statistical extreme (|z| = 2.34) — flagged 21:00 UTC, Oct 08. Resolved: confirmed.
CHFJPY retail positioning reached a statistical extreme (|z| = 2.34) — flagged 21:00 UTC, Oct 08.
Resolved: confirmed.
000
FX Engineer @fxengineer.bsky.social · 09/10/2026
USDCHF retail positioning reached a statistical extreme (|z| = 3.29) — flagged 21:00 UTC, Oct 07. Resolved: didn't materialize.
USDCHF retail positioning reached a statistical extreme (|z| = 3.29) — flagged 21:00 UTC, Oct 07.
Resolved: didn't materialize.
010
FX Engineer @fxengineer.bsky.social · 08/10/2026
The model assigned 40% probability to elevated volatility on CHFJPY over the next 4 hours (move of 0.29% or more). Resolved: didn't materialize.
The model assigned 40% probability to elevated volatility on CHFJPY over the next 4 hours (move of 0.29% or more).
Resolved: didn't materialize.
000
FX Engineer @fxengineer.bsky.social · 06/10/2026
GBPJPY retail positioning reached a statistical extreme (|z| = 2.37) — flagged 21:00 UTC, Oct 04. Resolved: confirmed.
GBPJPY retail positioning reached a statistical extreme (|z| = 2.37) — flagged 21:00 UTC, Oct 04.
Resolved: confirmed.
000
FX Engineer @fxengineer.bsky.social · 05/10/2026
The model assigned 48% probability to elevated volatility on CHFJPY over the next 4 hours (move of 0.29% or more). Resolved: didn't materialize.
The model assigned 48% probability to elevated volatility on CHFJPY over the next 4 hours (move of 0.29% or more).
Resolved: didn't materialize.
000
FX Engineer @fxengineer.bsky.social · 04/10/2026
Resolution ledger. Everything that resolved in the window, both verdicts. Volatility events 4: 3 confirmed, 1 didn't materialize. Vol forecasts 12: 1 confirmed, 11 didn't materialize. Full list in the ledger post. Running ledger on the card.
Resolution ledger. Everything that resolved in the window, both verdicts.
Volatility events 4: 3 confirmed, 1 didn't materialize. Vol forecasts 12: 1 confirmed, 11 didn't materialize. Full list in the ledger post.
Running ledger on the card.
000
FX Engineer @fxengineer.bsky.social · 04/10/2026
Across the last 11 similar episodes on AUDCHF, the typical path stayed within the p25–p75 band shown, out to 10 trading days. Checkpoints: d1 outside band, d3 outside band, d5 outside band, d10 outside band. Construction target ~50% within band.
Across the last 11 similar episodes on AUDCHF, the typical path stayed within the p25–p75 band shown, out to 10 trading days.
Checkpoints: d1 outside band, d3 outside band, d5 outside band, d10 outside band. Construction target ~50% within band.
000
FX Engineer @fxengineer.bsky.social · 03/10/2026
CHFJPY retail positioning reached a statistical extreme (|z| = 2.65) — flagged 21:00 UTC, Oct 01. Resolved: confirmed.
CHFJPY retail positioning reached a statistical extreme (|z| = 2.65) — flagged 21:00 UTC, Oct 01.
Resolved: confirmed.
000
FX Engineer @fxengineer.bsky.social · 02/10/2026
CADJPY retail positioning reached a statistical extreme (|z| = 2.04) — flagged 21:00 UTC, Sep 30. Resolved: confirmed.
CADJPY retail positioning reached a statistical extreme (|z| = 2.04) — flagged 21:00 UTC, Sep 30.
Resolved: confirmed.
000
FX Engineer @fxengineer.bsky.social · 01/10/2026
GBPCAD retail positioning reached a statistical extreme (|z| = 2.03) — flagged 21:00 UTC, Sep 29. Resolved: confirmed.
GBPCAD retail positioning reached a statistical extreme (|z| = 2.03) — flagged 21:00 UTC, Sep 29.
Resolved: confirmed.
000
FX Engineer @fxengineer.bsky.social · 30/09/2026
The model assigned 44% probability to elevated volatility on EURJPY over the next 4 hours (move of 0.31% or more). Resolved: didn't materialize.
The model assigned 44% probability to elevated volatility on EURJPY over the next 4 hours (move of 0.31% or more).
Resolved: didn't materialize.
010
FX Engineer @fxengineer.bsky.social · 29/09/2026
The model assigned 34% probability to elevated volatility on CADJPY over the next 4 hours (move of 0.36% or more). Resolved: didn't materialize.
The model assigned 34% probability to elevated volatility on CADJPY over the next 4 hours (move of 0.36% or more).
Resolved: didn't materialize.
000
FX Engineer @fxengineer.bsky.social · 28/09/2026
The model assigned 44% probability to elevated volatility on GBPJPY over the next 4 hours (move of 0.36% or more). Resolved: didn't materialize.
The model assigned 44% probability to elevated volatility on GBPJPY over the next 4 hours (move of 0.36% or more).
Resolved: didn't materialize.
000
FX Engineer @fxengineer.bsky.social · 27/09/2026
Resolution ledger. Everything that resolved in the window, both verdicts. Volatility events 7: 3 confirmed, 4 didn't materialize. Vol forecasts 12: 1 confirmed, 11 didn't materialize. Regime 2: 1 persisted, 1 transitioned. Full list in the ledger post. Running ledger on the card.
Resolution ledger. Everything that resolved in the window, both verdicts.
Volatility events 7: 3 confirmed, 4 didn't materialize. Vol forecasts 12: 1 confirmed, 11 didn't materialize. Regime 2: 1 persisted, 1 transitioned. Full list in the ledger post.
Running ledger on the card.
000
FX Engineer @fxengineer.bsky.social · 27/09/2026
Across the last 9 similar episodes on CADCHF, the typical path stayed within the p25–p75 band shown, out to 10 trading days. Checkpoints: d1 outside band, d3 within band, d5 outside band, d10 within band. Construction target ~50% within band.
Across the last 9 similar episodes on CADCHF, the typical path stayed within the p25–p75 band shown, out to 10 trading days.
Checkpoints: d1 outside band, d3 within band, d5 outside band, d10 within band. Construction target ~50% within band.
010
FX Engineer @fxengineer.bsky.social · 26/09/2026
EURUSD retail positioning reached a statistical extreme (|z| = 2.51) — flagged 21:00 UTC, Sep 24. Resolved: didn't materialize.
EURUSD retail positioning reached a statistical extreme (|z| = 2.51) — flagged 21:00 UTC, Sep 24.
Resolved: didn't materialize.
000
FX Engineer @fxengineer.bsky.social · 25/09/2026
The model assigned 50% probability to elevated volatility on USDCHF over the next 4 hours (move of 0.27% or more). Resolved: didn't materialize.
The model assigned 50% probability to elevated volatility on USDCHF over the next 4 hours (move of 0.27% or more).
Resolved: didn't materialize.
000
FX Engineer @fxengineer.bsky.social · 24/09/2026
EURCHF retail positioning reached a statistical extreme (|z| = 3.27) — flagged 21:00 UTC, Sep 22. Resolved: didn't materialize.
EURCHF retail positioning reached a statistical extreme (|z| = 3.27) — flagged 21:00 UTC, Sep 22.
Resolved: didn't materialize.
000
FX Engineer @fxengineer.bsky.social · 23/09/2026
CADCHF retail positioning reached a statistical extreme (|z| = 2.10) — flagged 21:00 UTC, Sep 21. Resolved: didn't materialize.
CADCHF retail positioning reached a statistical extreme (|z| = 2.10) — flagged 21:00 UTC, Sep 21.
Resolved: didn't materialize.
000
FX Engineer @fxengineer.bsky.social · 22/09/2026
EURJPY retail positioning reached a statistical extreme (|z| = 2.63) — flagged 21:00 UTC, Sep 20. Resolved: confirmed.
EURJPY retail positioning reached a statistical extreme (|z| = 2.63) — flagged 21:00 UTC, Sep 20.
Resolved: confirmed.
010
FX Engineer @fxengineer.bsky.social · 21/09/2026
The model assigned 44% probability to elevated volatility on GBPJPY over the next 4 hours (move of 0.36% or more). Resolved: confirmed.
The model assigned 44% probability to elevated volatility on GBPJPY over the next 4 hours (move of 0.36% or more).
Resolved: confirmed.
000
FX Engineer @fxengineer.bsky.social · 20/09/2026
Resolution ledger. Everything that resolved in the window, both verdicts. Volatility events 1: 1 confirmed. Vol forecasts 12: 12 didn't materialize. Path-band checkpoints 344: 142 within band, 202 outside band. Construction target ~50%. Running ledger on the card.
Resolution ledger. Everything that resolved in the window, both verdicts.
Volatility events 1: 1 confirmed. Vol forecasts 12: 12 didn't materialize. Path-band checkpoints 344: 142 within band, 202 outside band. Construction target ~50%.
Running ledger on the card.
000
FX Engineer @fxengineer.bsky.social · 20/09/2026
Across the last 5 similar episodes on CHFJPY, the typical path stayed within the p25–p75 band shown, out to 10 trading days. Checkpoints: d1 within band, d3 outside band, d5 outside band, d10 outside band. Construction target ~50% within band.
Across the last 5 similar episodes on CHFJPY, the typical path stayed within the p25–p75 band shown, out to 10 trading days.
Checkpoints: d1 within band, d3 outside band, d5 outside band, d10 outside band. Construction target ~50% within band.
000
FX Engineer @fxengineer.bsky.social · 19/09/2026
The model assigned 33% probability to elevated volatility on NZDUSD over the next 4 hours (move of 0.37% or more). Resolved: didn't materialize.
The model assigned 33% probability to elevated volatility on NZDUSD over the next 4 hours (move of 0.37% or more).
Resolved: didn't materialize.
000
FX Engineer @fxengineer.bsky.social · 18/09/2026
CHFJPY retail positioning reached a statistical extreme (|z| = 3.54) — flagged 21:00 UTC, Sep 16. Resolved: confirmed.
CHFJPY retail positioning reached a statistical extreme (|z| = 3.54) — flagged 21:00 UTC, Sep 16.
Resolved: confirmed.
000
FX Engineer @fxengineer.bsky.social · 17/09/2026
The model assigned 40% probability to elevated volatility on GBPJPY over the next 4 hours (move of 0.36% or more). Resolved: didn't materialize.
The model assigned 40% probability to elevated volatility on GBPJPY over the next 4 hours (move of 0.36% or more).
Resolved: didn't materialize.
000
FX Engineer @fxengineer.bsky.social · 16/09/2026
The model assigned 34% probability to elevated volatility on USDJPY over the next 4 hours (move of 0.27% or more). Resolved: didn't materialize.
The model assigned 34% probability to elevated volatility on USDJPY over the next 4 hours (move of 0.27% or more).
Resolved: didn't materialize.
000
FX Engineer @fxengineer.bsky.social · 15/09/2026
The model assigned 39% probability to elevated volatility on GBPJPY over the next 4 hours (move of 0.36% or more). Resolved: didn't materialize.
The model assigned 39% probability to elevated volatility on GBPJPY over the next 4 hours (move of 0.36% or more).
Resolved: didn't materialize.
000
FX Engineer @fxengineer.bsky.social · 14/09/2026
The model assigned 35% probability to elevated volatility on USDJPY over the next 12 hours (move of 0.49% or more). Resolved: didn't materialize.
The model assigned 35% probability to elevated volatility on USDJPY over the next 12 hours (move of 0.49% or more).
Resolved: didn't materialize.
010
FX Engineer @fxengineer.bsky.social · 13/09/2026
Resolution ledger. Everything that resolved in the window, both verdicts. Volatility events 7: 5 confirmed, 2 didn't materialize. Vol forecasts 12: 12 didn't materialize. Regime 2: 1 persisted, 1 transitioned. Full list in the ledger post. Running ledger on the card.
Resolution ledger. Everything that resolved in the window, both verdicts.
Volatility events 7: 5 confirmed, 2 didn't materialize. Vol forecasts 12: 12 didn't materialize. Regime 2: 1 persisted, 1 transitioned. Full list in the ledger post.
Running ledger on the card.
010
FX Engineer @fxengineer.bsky.social · 13/09/2026
Across the last 9 similar episodes on AUDCAD, the typical path stayed within the p25–p75 band shown, out to 10 trading days. Checkpoints: d1 within band, d3 outside band, d5 outside band, d10 within band. Construction target ~50% within band.
Across the last 9 similar episodes on AUDCAD, the typical path stayed within the p25–p75 band shown, out to 10 trading days.
Checkpoints: d1 within band, d3 outside band, d5 outside band, d10 within band. Construction target ~50% within band.
010
FX Engineer @fxengineer.bsky.social · 12/09/2026
AUDCHF retail positioning reached a statistical extreme (|z| = 3.79) — flagged 21:00 UTC, Sep 10. Resolved: confirmed.
AUDCHF retail positioning reached a statistical extreme (|z| = 3.79) — flagged 21:00 UTC, Sep 10.
Resolved: confirmed.
010
FX Engineer @fxengineer.bsky.social · 11/09/2026
The model assigned 40% probability to elevated volatility on NZDUSD over the next 4 hours (move of 0.37% or more). Resolved: didn't materialize.
The model assigned 40% probability to elevated volatility on NZDUSD over the next 4 hours (move of 0.37% or more).
Resolved: didn't materialize.
000
FX Engineer @fxengineer.bsky.social · 09/09/2026
USDCHF retail positioning reached a statistical extreme (|z| = 2.01) — flagged 21:00 UTC, Sep 07. Resolved: confirmed.
USDCHF retail positioning reached a statistical extreme (|z| = 2.01) — flagged 21:00 UTC, Sep 07.
Resolved: confirmed.
000
FX Engineer @fxengineer.bsky.social · 08/09/2026
The model assigned 0% probability to elevated volatility on EURGBP over the next 8 hours (move of 0.34% or more). Resolved: didn't materialize.
The model assigned 0% probability to elevated volatility on EURGBP over the next 8 hours (move of 0.34% or more).
Resolved: didn't materialize.
000
FX Engineer @fxengineer.bsky.social · 07/09/2026
The model assigned 44% probability to elevated volatility on NZDJPY over the next 4 hours (move of 0.42% or more). Resolved: didn't materialize.
The model assigned 44% probability to elevated volatility on NZDJPY over the next 4 hours (move of 0.42% or more).
Resolved: didn't materialize.
000
FX Engineer @fxengineer.bsky.social · 06/09/2026
Resolution ledger. Everything that resolved in the window, both verdicts. Volatility events 6: 6 confirmed. Vol forecasts 12: 2 confirmed, 10 didn't materialize. Path-band checkpoints 228: 92 within band, 136 outside band. Construction target ~50%. Running ledger on the card.
Resolution ledger. Everything that resolved in the window, both verdicts.
Volatility events 6: 6 confirmed. Vol forecasts 12: 2 confirmed, 10 didn't materialize. Path-band checkpoints 228: 92 within band, 136 outside band. Construction target ~50%.
Running ledger on the card.
000
FX Engineer @fxengineer.bsky.social · 06/09/2026
Across the last 5 similar episodes on AUDUSD, the typical path stayed within the p25–p75 band shown, out to 10 trading days. Checkpoints: d1 outside band, d3 within band, d5 within band, d10 outside band. Construction target ~50% within band.
Across the last 5 similar episodes on AUDUSD, the typical path stayed within the p25–p75 band shown, out to 10 trading days.
Checkpoints: d1 outside band, d3 within band, d5 within band, d10 outside band. Construction target ~50% within band.
000
FX Engineer @fxengineer.bsky.social · 05/09/2026
CHFJPY retail positioning reached a statistical extreme (|z| = 3.18) — flagged 21:00 UTC, Sep 03. Resolved: confirmed.
CHFJPY retail positioning reached a statistical extreme (|z| = 3.18) — flagged 21:00 UTC, Sep 03.
Resolved: confirmed.
000
FX Engineer @fxengineer.bsky.social · 04/09/2026
AUDNZD retail positioning reached a statistical extreme (|z| = 2.04) — flagged 21:00 UTC, Sep 02. Resolved: confirmed.
AUDNZD retail positioning reached a statistical extreme (|z| = 2.04) — flagged 21:00 UTC, Sep 02.
Resolved: confirmed.
000
FX Engineer @fxengineer.bsky.social · 03/09/2026
CHFJPY retail positioning reached a statistical extreme (|z| = 2.15) — flagged 21:00 UTC, Sep 01. Resolved: confirmed.
CHFJPY retail positioning reached a statistical extreme (|z| = 2.15) — flagged 21:00 UTC, Sep 01.
Resolved: confirmed.
000
FX Engineer @fxengineer.bsky.social · 02/09/2026
The model assigned 20% probability to elevated volatility on NZDUSD over the next 8 hours (move of 0.54% or more). Resolved: didn't materialize.
The model assigned 20% probability to elevated volatility on NZDUSD over the next 8 hours (move of 0.54% or more).
Resolved: didn't materialize.
000
FX Engineer @fxengineer.bsky.social · 01/09/2026
The model assigned 23% probability to elevated volatility on NZDUSD over the next 4 hours (move of 0.37% or more). Resolved: didn't materialize.
The model assigned 23% probability to elevated volatility on NZDUSD over the next 4 hours (move of 0.37% or more).
Resolved: didn't materialize.
000
FX Engineer @fxengineer.bsky.social · 31/08/2026
The model assigned 19% probability to elevated volatility on NZDUSD over the next 8 hours (move of 0.54% or more). Resolved: confirmed.
The model assigned 19% probability to elevated volatility on NZDUSD over the next 8 hours (move of 0.54% or more).
Resolved: confirmed.
000
FX Engineer @fxengineer.bsky.social · 30/08/2026
Resolution ledger. Everything that resolved in the window, both verdicts. Volatility events 3: 3 confirmed. Vol forecasts 12: 12 didn't materialize. Path-band checkpoints 176: 75 within band, 101 outside band. Construction target ~50%. Running ledger on the card.
Resolution ledger. Everything that resolved in the window, both verdicts.
Volatility events 3: 3 confirmed. Vol forecasts 12: 12 didn't materialize. Path-band checkpoints 176: 75 within band, 101 outside band. Construction target ~50%.
Running ledger on the card.
000
FX Engineer @fxengineer.bsky.social · 30/08/2026
Across the last 8 similar episodes on AUDCHF, the typical path stayed within the p25–p75 band shown, out to 10 trading days. Checkpoints: d1 within band, d3 within band, d5 outside band, d10 outside band. Construction target ~50% within band.
Across the last 8 similar episodes on AUDCHF, the typical path stayed within the p25–p75 band shown, out to 10 trading days.
Checkpoints: d1 within band, d3 within band, d5 outside band, d10 outside band. Construction target ~50% within band.
000
FX Engineer @fxengineer.bsky.social · 29/08/2026
The model assigned 11% probability to elevated volatility on AUDJPY over the next 12 hours (move of 0.70% or more). Resolved: didn't materialize.
The model assigned 11% probability to elevated volatility on AUDJPY over the next 12 hours (move of 0.70% or more).
Resolved: didn't materialize.
000
FX Engineer @fxengineer.bsky.social · 28/08/2026
AUDCHF retail positioning reached a statistical extreme (|z| = 3.01) — flagged 21:00 UTC, Aug 26. Resolved: confirmed.
AUDCHF retail positioning reached a statistical extreme (|z| = 3.01) — flagged 21:00 UTC, Aug 26.
Resolved: confirmed.
000
FX Engineer @fxengineer.bsky.social · 27/08/2026
The model assigned 22% probability to elevated volatility on NZDUSD over the next 8 hours (move of 0.54% or more). Resolved: didn't materialize.
The model assigned 22% probability to elevated volatility on NZDUSD over the next 8 hours (move of 0.54% or more).
Resolved: didn't materialize.
000
FX Engineer @fxengineer.bsky.social · 26/08/2026
The model assigned 22% probability to elevated volatility on NZDUSD over the next 4 hours (move of 0.37% or more). Resolved: didn't materialize.
The model assigned 22% probability to elevated volatility on NZDUSD over the next 4 hours (move of 0.37% or more).
Resolved: didn't materialize.
010