I need an MQL5 script that runs inside MetaTrader 5, builds bid + ask OHLC bars for any timeframe I specify, and pushes each completed bar to a network socket with no more than one-second delay after the bar close (at the hourly boundary). The feed must handle both major and minor currency pairs simultaneously; I will choose the symbols to stream at runtime, so please make pair selection fully parameter-driven. The socket payload can be JSON, CSV, or another lightweight format you suggest, as long as it carries symbol, timeframe, timestamp, bid-open, bid-high, bid-low, bid-close, ask-open, ask-high, ask-low, and ask-close. A simple keep-alive or heartbeat message every few seconds would also be appreciated to confirm connectivity. I would also like a python script to be able to verify the socket connection, and to act as the server receiver for the MQL5 script. It simply needs to receive each bar and print it's details. Deliverables • Well-commented .mq5 source file ready to compile in the latest MetaTrader 5 build • A brief readme explaining configurable inputs (timeframe, symbols, host, port, message format) and how to launch multiple instances if needed • A minimal Python listener script that prints received bars, so I can test end-to-end immediately Acceptance criteria • Bars arrive at the listener within one second of the terminal timestamp for close • Data for at least 4 major pairs and 8 minor pairs streams concurrently without missed bars over a 24-hour test run • No memory leaks or thread contention • Verified exact-match hourly bars against historical broker data (dukascopy, via dukascopy-python: https://pypi.org/project/dukascopy-python/). Here's the broker I'm using for FOREX, they provide historical data to match against here: https://www.dukascopy.com/swiss/english/marketwatch/historical/ Note that the timezone used by dukascopy in metatrader5 is EET, whereas I like to work with UTC I will Verify EA streamed bars match dukascopy historical bars on 5, 15, 30 and 60minute timeframes.