# TMO ((T)rue (M)omentum (O)scilator) # Mobius # V01.05.2018 http://tos.mx/JRqX1p # # Strategy1 UpTheCreek 100218 http://tos.mx/KZUDRT # enter with color change in OB/OS area, exit on color change # Strategy1 UpTheCreek 100218 # enter with color change anywhere, exit on next color change #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 = 21; 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(); def Main = ExpAverage(EMA5, smoothLength); def Signal = ExpAverage(Main, smoothLength); #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(); def ob = if isNaN(c) then double.nan else round(length * .7); # ob.SetDefaultColor(Color.gray); # ob.HideBubble(); # ob.HideTitle(); def os = if isNaN(c) then double.nan else -round(length * .7); # os.SetDefaultColor(Color.gray); # os.HideBubble(); # os.HideTitle(); #addCloud(ob, length, color.light_red, color.light_red, no); #addCloud(-length, os, color.light_green, color.light_green); AddOrder(OrderType.BUY_TO_OPEN, main crosses above signal, open, tickcolor=color.orange, arrowColor=color.orange, name="TMO Buy"); AddOrder(OrderType.SELL_TO_CLOSE, main crosses below signal , open, tickcolor=color.orange, arrowColor=color.orange, name="TMO BClose"); AddOrder(OrderType.SELL_TO_OPEN, main crosses below signal, open, tickcolor=color.orange, arrowColor=color.orange, name="TMO Sell"); AddOrder(OrderType.BUY_TO_CLOSE, main crosses above signal , open, tickcolor=color.orange, arrowColor=color.orange, name="TMO SClose"); # End Code TMO