TMO True Momentum Oscilator

Chuck

Moderator
Staff member
AzvLJne.png

“TMO calculates momentum using the delta of price. Giving a much better picture of trend, trend reversals and divergence than momentum oscillators using price.”

  • Overbought Zone (Red Section at Top)
  • Oversold Zone (Green Section at Bottom)
  • Crossovers show when to enter and exit a trade
    (Enter on Green, Exit on Red)
  • Wave Color shows current trend (Green, uptrend and Red downtrend)
I use the TMO for confirmation of trend direction and as a trend strength indicator. The farther apart the signal lines are(i.e. the fatter the filled in section) the stronger the trend. When it gets skinner and the signal lines draw closer together it’s a sign that the current trend might be ending. This is especially helpful when trying to buy the bottom of a Stage 4 Decline.




Code:
#TMO True Momentum Oscilator _Mobius
#Monday, May 14, 2018 8:31 AM

## "##" indicates an addition or alteration by the Archivist
## OneNote Archive Name: TMO True Momentum Oscilator _Mobius
## Archive Section: Momentum
## Suggested Tos Name: TrueMomentumOscillator_Mobius
## Archive Date: 5.14.2018
## Archive Notes:
# Markos changed colors for cloud 01-31-19
## Original Code Follows

# TMO ((T)rue (M)omentum (O)scilator)
# Mobius
# V01.05.2018
#hint: TMO calculates momentum using the delta of price. Giving a much better picture of trend, tend reversals and divergence than momentum oscillators using price.

declare Lower;

input length = 14;
input calcLength = 5;
input smoothLength = 3;

def o = open;
def c = close;
def data = fold i = 0 to length
with s
do s + (if c > getValue(o, i)
then 1
else if c < getValue(o, i)
then - 1
else 0);
def EMA5 = ExpAverage(data, calcLength);
plot Main = ExpAverage(EMA5, smoothLength);
plot Signal = ExpAverage(Main, smoothLength);
Main.AssignValueColor(if Main > Signal
then color.green
else color.red);
Signal.AssignValueColor(if Main > Signal
then color.green
else color.red);
Signal.HideBubble();
Signal.HideTitle();
AddCloud(Main, Signal, color.green, color.red); 
plot zero = if isNaN(c) then double.nan else 0; 
     zero.SetDefaultColor(Color.gray); 
     zero.hideBubble(); 
     zero.hideTitle(); 
plot ob = if isNaN(c) then double.nan else round(length * .7); 
     ob.SetDefaultColor(Color.gray); 
     ob.HideBubble(); 
     ob.HideTitle(); 
plot os = if isNaN(c) then double.nan else -round(length * .7); 
     os.SetDefaultColor(Color.gray); 
     os.HideBubble(); 
     os.HideTitle(); 
AddCloud(ob, length, color.green, color.green, Yes); 
AddCloud(data1 = -length, data2 = os, color1 = Color.green
, showBorder = yes);
# End Code TMO
 
Last edited:
Top