Synchronised Quote Snapshot Recorder
A single-symbol tick export records every price change on one symbol, timestamped whenever that symbol happened to move. That is the wrong shape of data for comparing several symbols against each other, because there is no shared instant to line the rows up on - EURUSD's row at 10:00:03.417 and GBPUSD's row at 10:00:03.502 do not describe "the market at one moment", they describe two independent events. This script records a genuinely different shape: on a fixed cadence (InpIntervalMs), it takes one snapshot across every symbol in InpSymbolList and writes one CSV row per symbol, all sharing the same snapshot_id and timestamp for that round. A spreadsheet or script can group by snapshot_id to reconstruct "what every symbol quoted at once", which a change-triggered single-symbol export cannot support without extensive resampling. The CSV format is deliberately simple and is documented in full at the top of the source file: snapshot_id, timestamp, symbol, bid, ask, spread_points, one row per symbol per snapshot. It is honest about its own limit, too: MarketInfo() on a symbol that is not the chart's own returns that symbol's LAST KNOWN quote, not a value freshly polled at that exact instant, so a thinly-traded symbol's row can carry a quote that is seconds old even though its timestamp matches every other row in the round. The timestamps are synchronised; the underlying quote freshness is not guaranteed to be equal across symbols. Notes and limitations - Every row in one snapshot round shares an identical timestamp by construction; that does not mean every symbol's quote in that round is equally fresh - see the freshness caveat above. - A symbol that never produces a valid quote (bad name, not offered by the broker, market fully closed) is dropped before recording starts and is not silently included with blank values. - A very short InpIntervalMs against a long symbol list means the round itself can take non-trivial time to write; the interval is the target cadence between rounds starting, not a guarantee that every round completes instantly. - The recorder has no built-in limit on InpSymbolList length beyond a hard cap of 20 symbols per run, to keep the fixed-size symbol array bounded.
Script · MT5 · v1.0 · Free
About Synchronised Quote Snapshot Recorder
Synchronised Quote Snapshot Recorder is a script for MetaTrader 5. It can alert you with a pop-up, sound, email or push message. It has 4 settings, such as Symbol list, Duration seconds and Interval ms. MQL source code included.
Files in the download: SynchronisedQuoteRecorder.ex5, SynchronisedQuoteRecorder.mq5, SynchronisedQuoteRecorder.txt.
Settings
| Setting | Default | What it does |
|---|---|---|
| Symbol list | Comma-separated symbols, blank = this chart's symbol only | |
| Duration seconds | 300 | How long to record, seconds (max 3600) |
| Interval ms | 200 | Snapshot cadence, milliseconds (min 10) |
| Delimiter | DelimiterComma | CSV column separator |
How to install
- Download the ZIP from your PolyMaria library and unzip it.
- In MetaTrader 5 open File → Open Data Folder, then go to MQL5 → Scripts.
- Copy the .mq5 file(s) there. Put any .mqh files in MQL5 → Include.
- Open the .mq5 file in MetaEditor and press Compile (F7) if MetaTrader does not show it.
- Drag the script onto a chart to run it once.
Tags: EURUSD · GBPUSD · Multi-Currency · Alerts · MT5 Script · MQL5 Source Code