Cheapest Symbols To Trade Ranking
Spread in points means nothing on its own. Three points of spread on a symbol that moves eighty points a day is expensive; the same three points on a symbol that moves eight hundred is nearly free. Comparing raw spreads across a watchlist of forex pairs, metals and indices ranks the wrong things as cheap, because it never accounts for how much each instrument actually moves. This script fixes that by converting both sides of the comparison into money and dividing one by the other. The round-turn cost - current spread plus an optional flat commission per lot - is priced in the account currency for exactly one lot. So is the average high-low range of the last InpRangeDays completed daily bars. The ratio of the two is a single percentage: what fraction of a typical day's move gets eaten by cost before a trade even needs to move in the trader's favour. Sorted ascending, the top of the list is where cost is the smallest fraction of opportunity. The trap this avoids is the one repeated across nearly every published cost calculator: hardcoding a 100,000 contract size to turn points into money. That assumption is correct for standard forex lots and wrong for almost everything else - gold, indices, and any broker's non-standard contract specification. This script never assumes a contract size. Every money figure is derived from MODE_TICKVALUE divided by MODE_TICKSIZE, the broker's own declared conversion for that exact symbol, so a gold or index CFD ranks on the same honest footing as a EURUSD lot. Commission is the one number no MarketInfo call can supply - MT4 does not expose a broker's commission schedule to a script. InpCommissionPerLot is therefore a manual input, in account currency, per round-turn lot. Leave it at zero for a broker whose cost is entirely in the spread; set it to match your account's actual commission schedule otherwise, or the ranking will understate true cost on an ECN-style account. Notes and limitations - The spread cost is measured at the moment the script runs, a single snapshot, not an average spread over the day. A symbol with a normally tight spread that happens to be widened at the moment of the run - low liquidity hours, a news release - will rank worse than its typical cost. - A symbol with fewer than InpRangeDays of daily history available is skipped and reported rather than ranked on partial data. - Commission is a single flat number applied to every symbol equally. A broker charging different commission rates per instrument needs the script run once per rate group, or the input adjusted between runs. - This ranks cost relative to historical range, not future volatility - a cheap symbol by this measure can still move less than expected tomorrow.
Script · MT5 · v1.0 · Free
About Cheapest Symbols To Trade Ranking
Cheapest Symbols To Trade Ranking is a script for MetaTrader 5. It can alert you with a pop-up, sound, email or push message. It has 3 settings, such as Commission per lot, Range days and Watched only. MQL source code included.
Files in the download: CheapestSymbolsRanking.ex5, CheapestSymbolsRanking.mq5, CheapestSymbolsRanking.txt.
Settings
| Setting | Default | What it does |
|---|---|---|
| Commission per lot | 0.0 | Round-turn commission per 1.0 lot, account currency (0 if included in spread) |
| Range days | 20 | Daily bars averaged for the "typical daily range" denominator |
| Watched only | true | Rank only symbols currently in Market Watch, not the broker's full list |
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: Alerts · MT5 Script · MQL5 Source Code