schmelczer-dev/src/content/posts/foreign-exchange-prediction-experiment.md
Andras Schmelczer b554e92e9f
All checks were successful
Deploy to Pages / build (push) Successful in 2m58s
Update content & design (#75)
Reviewed-on: https://home.schmelczer.dev/git/git/andras/schmelczer-dev/pulls/75
2026-05-28 16:20:12 +01:00

1.6 KiB

title description date projectPeriod thumbnail tags role stack outcome audience links
Predicting EUR/USD With Hanning Windows A weekend frequency-domain experiment that did a passable job on EUR/USD. I would not have trusted it with my money, and I didn't. 2026-05-03 Autumn 2019
src alt
./_assets/forex.jpg Chart comparing predicted and actual EUR/USD exchange rates.
systems
tools
Experiment author
Python
NumPy
SciPy
Flask
MQL4
A prediction server, an MQL4 trading client, and a clearer view of how far my edge wasn't technical

In the autumn of 2019 I was an undergrad with a few weekends free and the quiet conviction that I could find a small edge on EUR/USD. The screenshots were flattering: the prediction (blue) hugged the actual rate (green) in a way that looked like skill. A linear regression in the frequency domain, dressed up. I did not trade real money with it, and that restraint is the only thing about the project that aged well.

The pipeline:

  • Smooth the input series.
  • Differentiate.
  • Short-time Fourier transform with overlapped, Hanning-windowed frames.
  • Extrapolate the frequency-domain coefficients.
  • Invert everything back to a predicted price series.

A Python server (NumPy, SciPy, Flask) ran the model. An MQL4 client on a broker terminal called the server and would have placed trades if I'd dared.

What I actually learned: even a naive model can show a sometimes-profitable backtest, and that's the trap. The real game is built by people with co-located servers, microsecond ticks, and millions in infrastructure. This project taught me how far my edge wasn't.