TestMaxBlog
indicators · September 23, 2026 · by Joel

Guppy Multiple Moving Average: Read the Ribbon Before Testing It

Read GMMA group ordering, width and compression, then test an explicit hypothesis. Includes settings and checks that keep future data out.

The Guppy Multiple Moving Average, or GMMA, uses a shorter-term group of exponential moving averages and a longer-term group to examine trend behavior. It was developed by Daryl Guppy. The relationship within and between the groups is the subject of the analysis; a single line crossing another does not capture the whole method.

Guppy's official explanation emphasizes group separation and compression and cautions against using GMMA simply as a moving-average crossover signal. This article turns a limited set of ribbon observations into a repeatable practice exercise. It is not an endorsed Guppy trading system or a claim of profitability.

Fix the configuration for the exercise

Use these two EMA groups for the example:

Group Bar lengths
Shorter-term 3, 5, 8, 10, 12, 15
Longer-term 30, 35, 40, 45, 50, 60

Use the same closing-price source and timeframe for every line. A sixty-period EMA on a five-minute chart uses five-minute observations; it is not a sixty-day average.

Check the actual settings in the indicator you choose. Warm-up and initialization can affect early values. Load a documented amount of preceding history and avoid comparing two charts with different starting assumptions as if they were the same calculation.

Describe the ribbon before predicting anything

For each completed bar, record three observations:

Ordering: are all shorter-term EMA values above all longer-term values, below them, or overlapping?

Within-group width: how far apart are the highest and lowest values in each group?

Between-group gap: if the groups do not overlap, how far apart are their nearest edges?

These observations can be measured. They do not prove which participants are buying, why price moved, or whether the next move will continue.

If you compare different instruments, raw price distances may need normalization. A gap of one price unit means different things on EURUSD and NQ. Choose a scaling method before comparing and keep the unscaled values available for review.

Make “compression” a defined condition

For a first exercise, calculate the short group's width on each completed bar. Label it compressed when that width is smaller than its own median width over the preceding twenty completed observations.

This is an original operational definition for the exercise. It is not a universal GMMA rule, and the twenty-bar choice has not been optimized or validated.

The comparison window must exclude the current observation if that is how you defined the rule. It must never include future bars. If the necessary warm-up history is unavailable, mark the observation as ineligible rather than treating missing values as zeros.

Test one explicit continuation hypothesis

Here is a long-side research specification:

  1. At the completed signal bar, every short-group EMA is above every long-group EMA.
  2. The immediately preceding completed bar met the compression definition.
  3. The signal bar closes above the highest high of the preceding three bars.
  4. Enter at the next available bar's open.
  5. Use the lowest low of those three preceding bars as the initial stop, and a 2R target from the assumed entry.
  6. Skip if the next open leaves the stop on the wrong side. Take one position at a time and use a predetermined session exit.

Fix the instrument, timeframe, session and cost treatment before testing. Handle a bar containing both stop and target through a written ambiguity policy. The backtesting guide covers those decisions.

The rules intentionally go beyond a simple EMA cross. If you are investigating a crossover separately, keep it as a different experiment with its own log.

Compare the filter with a simple baseline

The additional ribbon conditions should earn their complexity. Compare this version with the same three-bar breakout rule without the ribbon filter, using comparable data and execution assumptions.

Report how many trades the filter removed as well as net outcome and drawdown. A smaller sample can look smoother while excluding both losses and useful opportunities. Do not select the window that happened to produce the best screenshot and call it a general result.

Keep later dates untouched while deciding on the rule. If you modify the EMA lengths or compression definition after inspecting those dates, reserve new data for the next independent check.

What to record in the journal

Save the signal time, group ordering, widths, compression flag, breakout level, entry, initial stop and result after modeled costs. Keep a record of skipped signals and uncertain fills.

The journal template helps keep this compact. The support/resistance exercise offers another way to define a price reference without continually redrawing it.

Review the chronological sequence using the drawdown guide. Several indicator lines are all transformations of the same price series; their agreement is not the same as several independent pieces of evidence.

Check the chart implementation before using it

Use a chart or spreadsheet capable of showing the selected EMA groups. This article does not claim that TestMax has a dedicated native GMMA indicator. A Pine implementation must fit the platform's supported functions and limits; see the Pine feature documentation.

Create a TestMax account to practice the price-rule timing on an eligible market, or review current plans for the features and instruments you need. Start by checking a few signal bars manually. The useful milestone is that the plotted values, written rule and recorded entry all refer to the same information available at that time.

Tags: guppy multiple moving average, GMMA, trend analysis