CM_Ultimate_MA_MTF_V2: MA Types, Timeframes and Signal Limits
CM_Ultimate_MA_MTF_V2 is Chris Moody's multi-timeframe moving-average indicator. The original TradingView publication lists eight types: SMA, EMA, WMA, Hull MA, VWMA, RMA, TEMA and Tilson T3. SWMA and DEMA are not in that list.
Pineify provides a related Ultimate MA component. The setup below describes its current implementation; do not assume that every drawing option or alert in another version is identical.

What the eight choices change
| MA type | Calculation characteristic |
|---|---|
| SMA | Equal weight across the selected lookback |
| EMA | Recursive weighting with coefficient 2 / (length + 1) |
| WMA | Linearly increasing weight toward recent observations |
| Hull MA | Weighted-average combination with shorter and square-root-length stages |
| VWMA | Prices weighted by the series' volume |
| RMA | Recursive smoothing with coefficient 1 / length |
| TEMA | Three EMA stages combined to offset some smoothing delay |
| Tilson T3 | Repeated generalized double-EMA stages controlled by a factor |
For TEMA, let E1 be EMA(price), E2 be EMA(E1), and E3 be EMA(E2), all with the same length. The result is 3 × E1 − 3 × E2 + E3, not simply three successive smoothings plotted as E3.
The Hull construction is WMA(2 × WMA(price, n/2) − WMA(price, n), rounded sqrt(n)) in this implementation. Integer handling and initialization should be matched when comparing another platform's output. A faster response can also change overshoot and crossover frequency; it does not establish better entries.
For VWMA, verify the feed's volume field. A volume-weighted price is not a measure of institutional participation.
Pineify's actual inputs
The component is listed as CM Ultimate Moving Average Multi-Timeframe, with short name Ultimate MA, in Pineify. It is marked as a paid catalog feature. Current inputs include:
| Input | Default | Meaning |
|---|---|---|
| Source | Close | Input price series |
| Use Current Chart Resolution | Enabled | Uses the chart timeframe |
| Custom Timeframe | Daily | Used when current resolution is disabled |
| First length / type | 20 / SMA | First average |
| Enable Second Moving Average | Disabled | Enables the second output |
| Second length / type | 50 / SMA | Second average |
| T3 factor, each line | 7 | Multiplied by 0.1, giving 0.7 |
| Show Cross Signals | Disabled | Enables crossover outputs when the second MA is also enabled |
| Color Smoothing | 2 | See the implementation limitation below |
These defaults describe the interface, not recommended trading parameters. The two averages have separate types and lengths but share the same selected calculation timeframe. To compare chart-timeframe and daily averages, do not assume one component independently assigns a timeframe to each line.
After configuring the component, export the script to TradingView's Pine Editor and inspect its output. Indicator export does not itself define strategy orders or run a profitability test.
What the colors and triangles mean
With direction coloring enabled, the current Pineify drawing compares the first MA with its value two chart bars earlier. Greater than or equal uses the uptrend color; less than uses the downtrend color. Equality is therefore colored up, not neutral. An aqua or configured neutral color is not a proven sideways-market detector.
The Color Smoothing input is present, but the current drawing uses that fixed two-bar comparison and the calculation does not apply the input. Changing it should not be assumed to change the lookback. This is an implementation limitation to check if you use the generated script.
The second MA is drawn as circles with its configured line color. Cross Up and Cross Down compare the two returned averages. Both Enable Second Moving Average and Show Cross Signals must be on for those Boolean outputs to become active. A triangle records a crossover condition; it is not evidence of a filled trade or a particular win probability.
Higher-timeframe values can still change
An average calculated on daily bars is different from a daily-length average calculated on intraday bars. Displaying the daily result on a lower-timeframe chart maps that daily calculation into the chart's timeline.
The current implementation requests the selected timeframe without a confirmed-prior-bar offset. While a higher-timeframe bar is open, its value can change. Historical output after reload may therefore differ from what was observed during that bar. Closing a 15-minute candle does not close the daily candle containing it.
TradingView's timeframe-request documentation explains confirmation and historical mapping. If you require completed higher-timeframe values, make that requirement explicit and inspect the generated calculation. A custom timeframe below the chart timeframe also needs separate treatment; an ordinary request does not expose every lower-timeframe intrabar.
A comparison you can reproduce
- Record symbol, feed, session, chart timeframe and the component's calculation timeframe.
- Start with one MA type and length. Compare its values with a reference calculation using identical inputs.
- Enable the second MA and the cross outputs. Record the first time each cross is observable, including whether the requested bar is still open.
- Define a trading rule separately: order timing, exits, sizing and costs. Decide whether repeated or opposite crosses close or reverse a position.
- Compare a small, predefined set of variants on the same data, then evaluate the selected rule on a separate interval.
Keep parameter selection separate from evaluation. A winning setting among many trials is not evidence that its advantage will persist. Six months, twelve months or one month of paper trading is not a universal validation threshold.
The TradingView strategy documentation describes simulated fills, commissions and slippage. This page supplies no verified AAPL lead-time benchmark, Bitcoin false-signal reduction or SPY annualized-return comparison.
Frequently asked questions
Does this indicator offer SWMA and DEMA?
The original publication and Pineify component list SMA, EMA, WMA, Hull MA, VWMA, RMA, TEMA and Tilson T3. They do not list SWMA or DEMA as selectable types.
Can each MA use a separate timeframe?
The two MA outputs in Pineify's current component share one selected timeframe, while their lengths and types can differ.
Does green mean the whole market is in an uptrend?
The current first-line color means its value is at least its value two chart bars earlier. That includes equality and does not measure the whole market or future returns.
Are higher-timeframe crosses fixed when my chart candle closes?
Not necessarily. The requested higher-timeframe candle may still be open, so its values and resulting crosses can change.



