Chart panels

Price alerts, aggregated signals, pattern and divergence detection, multi-timeframe mini-charts, the volume heatmap, chart replay and saved templates — what each panel does and where its state lives.

16 min readUpdated 3 August 2026alerts, signals, patterns, replay, templates, heatmap

Beyond candles, indicators and drawings, Chart Engine ships eight overlay panels. They all open from the chart toolbar, they all close with Esc, and they all store their state in the browser rather than on the server — nothing here is shared between devices or visible to an administrator.

Price alerts

An alert watches the live price for a crossing and tells you when it happens.

Conditions: crosses above · crosses below · crosses (either direction).

Statuses: active · triggered · expired · disabled.

Each alert carries three independent switches — sound, browser notification and repeat — plus an optional message and an optional expiry time. A non-repeating alert moves to triggered on the first crossing and stops watching; a repeating one stays armed.

An alert fires on a transition, not on a comparison. The chart compares the previous price with the current one and triggers only when the target sits between them. That means an alert created below the current price never fires immediately, and a price that gaps straight through a level still triggers it.

The comparison ignores movement below a fraction of the price, not a fixed amount, so it means the same thing on a $77,000 pair and one quoted at 0.00002341 — and a tick too small to test does not move the comparison baseline, so small moves accumulate until they are worth testing rather than being lost one at a time.

A repeating alert stays quiet for a minute after it fires before it can fire again, so a price resting on the target does not produce a stream of sounds and notifications.

Up to 50 alerts are stored per browser, across all symbols. The panel shows the current count against that ceiling. Alerts for the symbol you are looking at are drawn as lines on the price axis with a label; hovering one shows its detail.

Browser notifications need permission. The first alert with notifications enabled prompts for it. If the user declines, the alert still triggers, still plays its sound and still updates on the chart — only the operating-system notification is lost.

Alerts that carry an order

In binary mode an alert can carry a limit order: a side, an amount and an expiry. When the alert triggers, the order is placed through the host page's normal order path. The side is derived from where the alert sits relative to price, and the attached order has its own expiry independent of the alert's — when the order expires the order is dropped and the alert stays armed.

An attached order is a one-shot instruction, even on a repeating alert. The alert re-arms and keeps alerting; its order does not come back. Otherwise a price oscillating around the target would place a real order on every crossing.

On a bot terminal alerts still work, but one-click trading is disabled, so an alert cannot place an order into the bot's account. That is deliberate: a manual fill inside a bot's chart would land in the bot's profit and loss.

Signals

The signals panel collects buy and sell events from every indicator currently on the chart, aggregates the ones that land on the same candle, and reports a net direction with a confidence score.

Confidence is two things multiplied: how much the indicators that voted agree with each other, and how many of them voted at all. A single indicator firing alone scores 0.33, two agreeing score 0.67, and three or more agreeing score 1.00; two buys against one sell score 0.67. One indicator can of course be right — it is simply not yet corroborated, and the number says so rather than reporting a lone cross as unanimous. Indicators that read neutral are left out of the arithmetic entirely: a neutral reading is an indicator declining to vote, not one disagreeing.

Signal strength runs weak · moderate · strong · very strong, and the panel keeps per-indicator counts so you can see which indicator is doing the talking.

The one thing to understand about it: the panel has no opinion of its own. Its input is your indicator list. A chart with no oscillators produces no signals, and a chart with six variations of the same moving average produces six correlated votes that read as high confidence.

Signals, patterns and divergences are listed in their panels and can be drawn on the price axis. Each panel header carries a Chart Overlay toggle, off by default; turn it on and the results are painted over the candles — arrows below and above the bars for signals, markers and names for patterns, pivot-connecting lines for divergences. Off by default because it is your chart: nothing appears until you ask for it, and each of the three is independent.

Clicking any row recentres the chart on that moment, keeping your current zoom, which is how you get from the list to the candle without the overlay on.

The panels use a single hue at varying opacity for strength rather than four different colours, so strength reads as strength rather than as four unrelated categories, and the arrow beside each signal carries its direction independently of colour.

Pattern labels thin themselves out. Candlestick patterns are dense — a live 1m chart can carry over a hundred across one screen — so a label is only drawn where it fits without covering one already placed. Patterns that lose their label keep their marker, and the most recent win the space.

Patterns

Pattern detection reads the candles directly and does not depend on your indicator list. Three families:

Family Detects
Candlestick Single- and multi-bar formations — Three White Soldiers, Morning Star, Engulfing, Piercing Line, Hammer, Doji, Harami, Marubozu, Tweezers, Three Inside Up/Down and others
Chart Classic geometric structures over a run of candles
Harmonic Ratio-based structures with their potential reversal zone drawn as a shaded box

Every detected pattern carries a direction (bullish, bearish or neutral), a strength between 0 and 1, and flags for whether it is still forming and whether it is recent enough to be worth acting on. Strength is fixed per pattern type — Three White Soldiers scores higher than a Doji because it is a stronger formation, not because this instance is a better example.

Forming means the pattern ends on the candle that has not closed yet. Its final open, high, low and close can all still move, and the pattern can move with them — a Hammer becomes a Doji becomes nothing at all. Treat a forming pattern as a thing to watch rather than a thing that has happened.

Divergence

Divergence compares price pivots with an indicator's pivots and reports where they disagree.

  • Regular divergence — price and indicator move in opposite directions. A reversal signal.
  • Hidden divergence — both move the same way but with different strength. A continuation signal.

Both come in bullish and bearish forms, and detection runs against RSI, MACD, Stochastic, CCI, OBV and MFI. Each result carries a strength score, the two pivot points that define it, whether it is still active, and whether subsequent price action confirmed it.

Confirmed means price has since broken the swing that formed between the two pivots, in the divergence's own direction — a close above the highest high between two lows for a bullish divergence, a close below the lowest low between two highs for a bearish one. Regular and hidden divergences confirm the same way; they disagree about what they predict, not about which way price must move to prove it. An unconfirmed divergence is a reading, not an event.

The sensitivity thresholds and the strength score are expressed as a share of the indicator's own range over the window being analysed, not as raw numbers. That is what lets one setting mean the same thing across six indicators that share no scale: RSI and MFI run 0–100, CCI roughly ±300, a MACD histogram is proportional to the price of the asset, and OBV is cumulative volume. A strength of 0.32 means the same amount of divergence on RSI as it does on OBV.

Divergence only reads indicators that are visible. Hiding an indicator takes it out of the divergence list and off the price chart, which is what hiding is for.

Multi-timeframe

The multi-timeframe panel puts one mini-chart per timeframe beside each other so you can see whether the timeframes agree before taking a trade on one of them.

  • Default timeframes: 1m, 5m, 15m, 1h, 4h, 1d.
  • Each mini-chart draws 30 candles with a 20-period EMA.
  • The panel refreshes every 5 seconds while it is open.

Each timeframe is graded from six inputs — price against the 20, 50 and 200 EMAs, the 20 against the 50, RSI against its midpoint, and MACD against its signal line — and the score is normalised by whichever of those were available, so a timeframe without enough history for a 200 EMA is not graded on a harder scale than one that has it. The same rally reads moderate below the 200 and strong above it.

The EMAs and the RSI are the engine's own implementations, the ones the indicator panes draw, so the RSI quoted here is the RSI you see on the chart.

The alignment summary reports the share of timeframes in the group it names. If five of six are neutral and one is bullish, that is 83% neutral — neutral is a real reading, not the absence of one — and a tie is reported as mixed rather than resolved towards a side.

It only fetches when it is open, and it caches per symbol and timeframe for two minutes with a ten-second floor between refetches. That matters on a busy install: six timeframes is six extra chart requests, and the cache is what keeps opening the panel from becoming six requests every five seconds.

Volume heatmap

The heatmap shades the price axis by traded volume, so you can see where volume actually changed hands rather than reading a bar chart underneath the price.

Option Values Default
Colour scheme red-green, blue-yellow, purple-orange, grayscale red-green
Opacity 0 to 1 0.4
Price buckets number of levels 20
Legend on or off on

All four schemes resolve theme colours rather than fixed values. The grayscale scheme's high end uses the foreground colour, which is what makes it readable on a light chart — it used to run to pure white and its strongest cells were invisible.

Each scheme is a continuous ramp between its two colours, taking the shorter way around the colour wheel, so red-green passes through orange and yellow the way a heat scale should. Intensity drives both the colour and the opacity, which is what keeps a quiet cell visible over candles without a busy one washing them out.

Intensity is measured against the loudest bar on screen. Panning or zooming therefore rescales the map, which is deliberate: the question a heatmap answers is where the activity is in what you are looking at.

Replay

Replay plays historical candles back through the chart at a chosen speed, so you can watch a session unfold instead of reading its outcome.

  • Range: pick a start point, or use the presets — last hour, last 4 hours, last day, last week.

  • Speed: 0.5x, 1x, 2x, 5x, 10x, changeable while playing. 1x is one candle per second, measured from the loaded series, so a day chart replays at the same pace as a minute chart rather than one bar per twenty-four minutes.

  • Controls: play, pause, resume, stop, a scrubber you can seek with, and step-back/step-forward buttons that move one candle at a time — which is what bar replay is for. The clock beside the scrubber reads elapsed and remaining time in the replay.

  • Practice mode — replays with a starting balance and a small trading HUD over the chart, so you can take paper trades against the recorded candles. Stake, duration and direction are chosen in the HUD; the trade settles against the replayed candles when its expiry passes.

    The money behaves the way a real binary order does: the stake is held out of your balance while the trade is open, a win returns the stake plus the payout, a total loss keeps the stake, and an exact-equality close is a draw that returns the stake. That matters — a paper account that only ever adds profit makes every strategy look profitable.

Replay operates on the candles already loaded into the chart. A range wider than the loaded history is clamped to it, so the scrubber always spans candles that exist — pan back first if you want more. A start date after the end (or the other way round) is ordered rather than run backwards.

Orders in a replay are settled by the same rules the server uses to settle them for real, which is what makes a replay worth reviewing: rise/fall against the entry price, higher/lower against the barrier, call/put against the strike, touch/no-touch against whether price ever reached the barrier during the contract, and turbo against its barrier and payout-per-point. An exact-equality close is a draw, not a loss.

Strategy builder

Build an entry rule as a tree of conditions and backtest it against the candles the chart already has.

A condition compares something on the left — an indicator output, a price field, a derived candle quantity like body size or upper wick, or the hour of day — against a number or against another indicator. Conditions combine with AND or OR, and groups nest, so "RSI below 30 AND (price above the 50 EMA OR MACD crossed above its signal)" is a shape the builder can express.

Piece What it sets
Entry conditions The tree that has to be true to open a trade
Trade direction Rise, Fall, or automatic
Exit Fixed time, or a take-profit / stop-loss / trailing distance
Risk Fixed stake, percentage of balance, martingale or anti-martingale, with a loss cap and a concurrent-trade limit

Automatic direction follows the bar that triggered the entry — bullish body opens a Rise, bearish opens a Fall. It is the only signal available at the moment of entry, and it is a stated rule rather than a guess.

An RSI(14) has no value for its first fourteen bars. Those bars are treated as undecidable rather than as a failed condition, and the backtest passes over them. Calling them false would silently suppress entries; calling them true would invent them. A condition you have switched off is ignored entirely, so disabling one condition never disables the strategy.

Backtesting models a binary contract, because that is what the builder is for: a trade opens at a bar's close and, at expiry, wins if price finished beyond the entry in its direction. There is no partial exit — take-profit, stop-loss and trailing are modelled as early expiries on the underlying. A martingale is capped by its own loss limit; uncapped, a base stake of 10 reaches 327,680 in seventeen losses, which models a bankruptcy rather than a strategy.

Results report total trades, win rate, net profit, profit factor, maximum drawdown, Sharpe over per-trade returns, average trade duration and an equity curve. The Sharpe figure is deliberately not annualised: these are per-trade returns with no fixed period, and scaling them would invent a time base the data does not have.

Saving keeps the strategy in your browser. The Backtest button is unavailable until there is something to run — a name and at least one enabled condition.

Templates

A template captures indicators, drawings, chart type and timeframe as one object you can apply to any market. The templates button on the toolbar opens the panel. Four templates ship by default:

No indicators at all. Price action only, on 5m.

Three stacked EMAs — fast, medium and slow — coloured as an ordered ramp so the fan reads as ordered rather than as three unrelated lines.

A short-timeframe configuration for fast entries.

Volume-weighted indicators for reading participation.

You can save your own, mark favourites, duplicate one as a starting point and delete them. The ceiling is 20 saved templates per browser, and they are stored under a single key shared by every market — which is exactly what makes them the right tool for a reusable workspace, where per-symbol drawings are not.

Screenshot and fullscreen

Two toolbar buttons that need no explanation but are easy to miss:

  • Screenshot downloads the chart as a PNG named for the symbol and the timestamp. It composites all of the chart's layers — candles and indicators, the price pulse, and the crosshair, legend and axis labels — and captures the chart, not the surrounding page.
  • Export (in the ... overflow menu) downloads the loaded candles as CSV: one row per candle, time in ISO-8601 UTC, then open, high, low, close, volume.
  • Fullscreen hands the chart the whole viewport. Esc exits, as the browser handles it.

There is also Reset view, which jumps the viewport back to the current time — the fastest way out of "I panned into 2019 and cannot find my way back".

Where all of this is stored

Panel Scope Survives
Price alerts One list per browser and account, all symbols, max 50 Reload and navigation
Templates One list per browser and account, max 20 Reload and navigation
Signals, patterns, divergence Recomputed from candles Nothing persists
Multi-timeframe Cached 2 minutes in memory Nothing persists
Heatmap and replay settings Per chart session Nothing persists

Every one of these keys is scoped to the signed-in account, so two people sharing a browser do not share a workspace. Clearing browser site data still resets alerts and templates: there is no server-side copy, so a trader moving to a new machine starts fresh.

Next

  • Theming — why panels no longer flash the wrong theme on open.
  • Performance — what each of these panels costs when it is open.