GuppyMMA — Guppy Multiple Moving Average
תוכן זה אינו זמין עדיין בשפה שלך.
Daryl Guppy’s ribbon: six short EMAs (3, 5, 8, 10, 12, 15 — “traders”) and six long ones (30, 35, 40, 45, 50, 60 — “investors”). The information is in the groups: when the short group compresses and then fans out past a rising long group, traders and investors agree.
The chart draws all twelve averages (short_ema1…short_ema6 in greens and blues,
long_ema1…long_ema6 in reds and oranges). For a strategy it also ships the envelope of each
group and its width — short_top, short_bottom, long_top, long_bottom, short_width,
long_width — values the legend shows but the chart does not draw.
Signature
GuppyMMA(scale, on=<source>)| Argument | Type | Required | Notes |
|---|---|---|---|
scale |
int Param or literal | Yes | Multiplies every period, so 2 gives 6/10/16… and 60/70/80…. Default 1, bounds 1–20. |
on= |
symbol, OHLCV field, or indicator | No | Source. Defaults to the trade symbol’s close. |
Formula
Twelve EMAs of the standard Guppy lengths (scaled), each its own output, plus the top and bottom of each group and the group’s width.
Warmup
The EMAs seed from the first close; the 60-period line needs roughly 180 bars to converge.
Reading the value
g.short_topg.short_bottomg.long_topg.long_bottomg.short_widthg.long_widthg.short_ema1 # … short_ema6, long_ema1 … long_ema6 — the twelve linesMulti-value: cannot be chained onto or crossed.
Example
class GuppyAgreement(Strategy): """Enter when the trader group sits entirely above the investor group.""" trade = Symbol() sizing = FixedCapital()
def execute(self): g = GuppyMMA(1, on=self.trade) if g.short_bottom > g.long_top and self.trade.is_flat: self.buy(self.trade, reason="Traders above investors") if g.short_top < g.long_bottom and self.trade.is_long: self.sell(self.trade, self.trade.position, reason="Ribbon inverted")Notes
- Daryl Guppy’s Multiple Moving Average.
- Proven by an assert-via-trade run on SPY daily (the short group’s top, bottom and width matched an independent six-EMA replication within 0.05 once warm; zero alarm trades).