Multi Timeframe Currency Strength Panel
- Indicators
-
Narayanan Mohanan Mohanan Krishnan
MT5/MQL5 developer building Expert Advisors, custom indicators, and backtesting and validation tools. I focus on clean, well-documented, no-repaint code: closed-bar logic, validated buffers, proper handle and memory management. This is the engineering that separates a reliable tool from a fragile - Version: 1.0
This panel shows where the eight major currencies stand right now, and how each of the 28 major pairs has been moving across nine timeframes at once. Both readings sit on one chart, updated on a timer.
Ranking pairs on their own is misleading. When a single currency moves, every pair containing it moves with it, so the top of a pair ranking is often the same currency repeated seven times. This panel separates the driver from the duplicates by decomposing the whole matrix into individual currency strengths.
How the decomposition works
Each of the eight currencies appears in seven of the twenty-eight pairs. Its strength is the average of those seven readings, with the sign inverted wherever it is the quote currency — a falling AUDJPY means a strengthening yen, not a weakening one.
Every pair contributes to exactly two currencies — positively to its base and negatively to its quote — so across the full set of twenty-eight those contributions cancel and the eight strengths sum to zero. The panel uses that as an internal check: if the values did not balance, the decomposition would be wrong. It also means the readings are relative to each other rather than absolute. A currency is not strong on its own, only strong against the rest of the set.
The practical effect is that eight clean numbers replace twenty-eight overlapping ones. Instead of reading seven yen crosses at the bottom of a list and inferring the common cause, you see the cause directly.
What the pair rows show
Each pair row carries nine coloured blocks, one per timeframe from M1 to MN1, showing the direction and size of the most recently completed move on that timeframe. By default green is a strong advance, yellow a weak one, grey is flat, orange a weak decline and red a strong one. All five colours are inputs and can be changed.
Reading the row left to right tells you whether a move is confined to the shorter timeframes or has carried through to the longer ones. A row that is red across M1 to M15 but green on H4 and above is a recent move that has not yet turned the larger picture.
The score at the end of each row is the weighted average of those nine readings. Rows are sorted by it, strongest at the top.
The divergence marker
If the decomposition explains the matrix perfectly, a pair's score should equal the strength of its base currency minus the strength of its quote. Where a pair sits well away from that, its movement is not fully accounted for by either currency, and the panel marks it.
The threshold is set in standard deviations across the whole matrix rather than as a fixed number, so it adapts to quiet and busy conditions alike.
It is worth tuning to taste. A high threshold isolates only the most extreme cases; lowering it distributes the marks across the matrix and shows the smaller discrepancies that a strict setting hides. One of the screenshots was taken at a low threshold to make this visible — the marks appear at the top of the panel, in the middle and at the bottom, rather than only on the pairs that had moved furthest.
One thing to expect at higher thresholds: when a single currency is moving hard, its pairs will tend to flag together. The averaging that produces eight clean strengths cannot fully absorb an outsized move, so the whole group reads as partly unexplained. The marker is most informative in ordinary conditions and least so during a violent single-currency move — which is the opposite of what you might assume, and worth knowing before you rely on it.
Inputs
- Panel content — currencies and pairs, currencies only, or pairs only
- Panel corner — any of the four, with horizontal and vertical offsets in pixels
- Font size, row spacing, block width and height — the panel scales to suit your chart
- Pair rows to show — 1 to 28, for smaller windows
- Compress strength bars — a square-root scale so one dominant currency does not flatten every other bar to a stub
- Show last-update time — a visible stamp, so a frozen panel is obvious rather than assumed live
- Flag pairs diverging from their currencies — on or off, with an adjustable threshold in standard deviations
- Refresh interval — in seconds
- Freeze when market is closed — stops redrawing an unchanging panel
- Symbol suffix — detected automatically; can be set manually for unusual broker naming
- Colours — all five block states, the divergence marker, and the text
Fitting your chart
Text colour is taken from the chart background by default, so the panel stays readable on a light or a dark scheme without being reconfigured. Changing scheme repaints it immediately rather than waiting for the next refresh. Scrolling and zooming do not trigger a redraw.
The panel is anchored to the corner you choose and offset in pixels, so it stays where you put it when the window is resized.
What the screenshots show
- Two charts side by side — a daily dollar-index chart on a light scheme with the panel on the left, and an hourly gold chart on a dark scheme with the panel on the right. Different symbols, different timeframes, opposite themes, opposite corners, and identical readings: the panel describes the market, not the chart it sits on.
- The inputs dialog — every setting, with the panel visible behind it.
- Currencies-only mode — a compact eight-row panel for when the pair grid is not needed.
- The full panel on several instruments and timeframes — including one taken at a low divergence threshold, where the markers spread across the whole panel rather than sitting only on the pairs that had moved furthest.
Calculation behaviour
Each timeframe reading blends the currently forming bar with the last completed one, so the panel responds to live movement while remaining anchored to closed data. Where a timeframe's history is unavailable for a pair, that timeframe is excluded and the score is normalised across the timeframes that were actually read — a pair is never pushed down the ranking because data was missing rather than because it moved.
The panel refreshes on its own timer rather than on chart ticks. This matters on a 28-symbol display: driven by the chart symbol, an illiquid cross during a quiet session would stall the whole panel while the rest of the market moved.
Notes
- Draws on the price chart as objects. No indicator buffers, no plots, no separate window.
- All 28 major pairs must be available from your broker. The panel reports any that are missing by name in the Experts log.
- The currency section is hidden if fewer than 28 pairs are available, since a partial decomposition would be misleading.
- The panel reads fixed timeframes from M1 to MN1. It does not follow the timeframe of the chart it is attached to.
- No external dependencies. Every value is calculated inside the indicator. It does not call any other indicator, so there are no handles to fail, nothing to install alongside it, and no dependency on the state of your standard indicator folder.
This panel is a tool for technical analysis and market-condition filtering. It is not a trading system, it does not generate trading signals, it does not provide investment advice, and it does not open or manage trades automatically. It describes where the market has moved; it does not predict where it will go. No performance claims are made for it.
Free to download and use. If you find it useful, a rating helps other traders find it.
| More tools from this developer I build MT5 indicators and Expert Advisors with an emphasis on clean, documented, no-repaint code — closed-bar logic, validated buffers, and no dependencies on other indicators. Questions about the calculation, the decomposition, or using this alongside your own tools? Send me a private message — I am happy to answer. |
Developed and maintained by Narayanan Mohanan, MT5/MQL5 Developer.
