Poor High Poor Low Detector
In market profile analysis, a "good" high or low is made by a single bar (or single print) poking out clearly beyond its neighbours - a clean, decisive rejection. A "poor" high or low is the opposite shape: two or more bars sitting at, or very near, the same extreme price, with no single bar standing out. The read is that the auction did not finish its business there - it is considered unfinished, and the expectation is that price eventually returns to "repair" it by trading back through. This indicator confirms swing extremes with the standard K-bars-each- side fractal test, then classifies each one as poor by checking whether the extreme bar and the bars immediately leading into it (on the side the swing formed from) sit within an ATR-scaled tolerance of each other - a flat top or bottom rather than a single spike. Levels that qualify are drawn as a dashed ray extending forward from the extreme, and stay on the chart - live - until a later bar actually trades through the level, at which point it is marked repaired and the line is removed. This is the naive-version trap this indicator avoids: marking a poor extreme once and leaving a static, stale line that never reflects whether the market ever came back for it. The flatness test and the ATR-scaled tolerance are both heuristics, not a literal market-profile TPO read (MT4 has no TPO/time-price-opportunity data), so treat "poor" here as "flat-shaped swing extreme", the closest honest approximation available from OHLC bar data alone. Notes and limitations - The flatness/tolerance test is a heuristic proxy for market-profile single-print excess, not a literal TPO chart - MT4 has no time-price-opportunity or real-volume data to build one from. - A level is only removed once repaired; it is never removed simply because it aged out, so a chart with a long, quiet history can accumulate levels until InpMaxLevels forces the oldest live one off. - Repair detection uses bar highs/lows, not tick-by-tick price, so a level can be marked repaired the moment any later bar's range touches it, even briefly. - No trade or stop-loss logic - visual and alerting only.
Indicator · MT5 · v1.0 · Free
About Poor High Poor Low Detector
Poor High Poor Low Detector is an indicator for MetaTrader 5 based on ATR. It can alert you with a pop-up, sound, email or push message. It has 8 settings, such as Swing lookback, Flat bars and Flat tolerance atr mult. MQL source code included.
Files in the download: PoorHighLowDetector.ex5, PoorHighLowDetector.mq5, PoorHighLowDetector.txt.
Settings
| Setting | Default | What it does |
|---|---|---|
| Swing lookback | 5 | Bars required on each side to confirm a swing extreme |
| Flat bars | 2 | How many of the most recent bars into the swing must share the extreme (flat top/bottom) |
| Flat tolerance atr mult | 0.10 | How close prices must be to count as "the same price", as a multiple of ATR |
| Atr period | 14 | ATR period used to scale the flatness tolerance |
| Max levels | 30 | Maximum live (unrepaired) levels kept on the chart at once |
| Poor high color | clrOrangeRed | Poor high line colour |
| Poor low color | clrLime | Poor low line colour |
| Alert on repair | true | Alert once when a poor level is repaired |
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 → Indicators.
- 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 indicator from the Navigator onto a chart and adjust the settings.
Tags: Alerts · ATR · MT5 Indicator · MQL5 Source Code