MetaTrader 5 only runs on Windows. The official Python library only works on Windows. If you want programmatic access to market data and order management from a Linux box, your options are Wine (broken), VPS (expensive and annoying), or write MQL5 (a C++ knockoff from 2005 that makes you want to cry).
I wanted to hit an HTTP endpoint from any machine, in any language, and get JSON back.
So I built a Docker container that runs a real Windows 11 VM via QEMU/KVM, boots MT5 in portable mode, and wraps it with a Flask REST API. Multiple brokers and accounts simultaneously, each terminal on its own port.
The VM runs on 512MB real RAM + swap. Sounds cursed, works fine - tiny11 + aggressive debloat idles at ~1.4GB total. I'm running 4 terminals on 2 vCPUs without issues.
The repo ships with a .skills/ file for AI coding agents (OpenClaw etc.) so you can point an LLM at it and tell it to "buy 0.01 EURUSD with a 2 ATR stop" and it figures the rest out.
Also includes a Python TA example with 20+ indicators + Smart Money Concepts (order blocks, FVGs, BOS/CHoCH).