Screenshot All Charts
Screenshotting a full multi-symbol workspace by hand means clicking through every chart, framing it, and saving it one at a time. This script walks every chart window the terminal currently has open and captures each one in a single run. The trap in this script is not the loop, it is ChartScreenShot() itself. The function does not take the picture on the spot - it adds the request to that chart's own command queue and returns as soon as the request is accepted, not once the file is written. A script that trusts the return value and immediately reports success can log "OK" for a chart that, because it was minimised or fully covered by another window, never actually produced a file. This script polls for the file to exist before it counts a capture as done, so the summary reflects what actually landed on disk, not what was merely queued. The second decision is what the picture shows. Passing align_mode alone does not scroll a chart - it only controls how a size mismatch between the requested resolution and the chart's current on-screen size is cropped or padded. To guarantee the latest bars are the ones in the picture, every chart is sent to CHART_END immediately before its shot. Notes and limitations - A chart that is minimised, or whose window is fully hidden behind another window, can still fail even though ChartScreenShot() accepted the request - the file simply never appears within the poll window, and the chart is reported as failed with that explanation. - If the whole terminal window is minimised, every chart can fail together. Restore the terminal before running a batch capture. - The run timestamp is taken once, at the start, and reused for every file - the batch is grouped by when the script started, not by when each individual capture actually completed. - Filenames are capped at 63 characters by the platform. A very long broker symbol combined with a long timeframe label can exceed that; the script reports the failure rather than letting FileOpen fail with a cryptic error. - This is a one-shot batch, not a background service - it captures whatever is open at the moment it is run and then finishes.
Script · MT4 · v1.0 · Free
About Screenshot All Charts
Screenshot All Charts is a script for MetaTrader 4. It can alert you with a pop-up, sound, email or push message. It has 2 settings, such as Width and Height. MQL source code included.
Files in the download: ScreenshotAllCharts.ex4, ScreenshotAllCharts.mq4, ScreenshotAllCharts.txt.
Settings
| Setting | Default | What it does |
|---|---|---|
| Width | 1366 | Screenshot width, pixels (320-4096) |
| Height | 768 | Screenshot height, pixels (320-4096) |
How to install
- Download the ZIP from your PolyMaria library and unzip it.
- In MetaTrader 4 open File → Open Data Folder, then go to MQL4 → Scripts.
- Copy the .mq4 file(s) there. Put any .mqh files in MQL4 → Include.
- Open the .mq4 file in MetaEditor and press Compile (F7) if MetaTrader does not show it.
- Drag the script onto a chart to run it once.
Tags: Multi-Currency · Alerts · MT4 Script · MQL4 Source Code