ApeX Predator
Well-known member
ATR Labels DWMQ For ThinkOrSwim
This is just Labels only, preferably for Upper Chart area, but you could easily move to any lower area Indicators too.
This is just Labels only, preferably for Upper Chart area, but you could easily move to any lower area Indicators too.
Ruby:
#ATRvsDR_DWMQSTUDY.ts
declare Upper;
input length = 14;
input averageType = AverageType.WILDERS;
def d = AggregationPeriod.DAY;
def w = AggregationPeriod.WEEK;
def m = AggregationPeriod.MONTH;
def q = AggregationPeriod.QUARTER;
def dHigh = Highest(high(period = d)[0], 1);
def dLow = Lowest(low(period =d)[0], 1);
def wHigh = Highest(high(period = w)[0], 1);
def wLow = Lowest(low(period =w)[0], 1);
def mHigh = Highest(high(period = m)[0], 1);
def mLow = Lowest(low(period =m)[0], 1);
def qHigh = Highest(high(period = q)[0], 1);
def qLow = Lowest(low(period =q)[0], 1);
def dRange = dHigh - dLow;
def wRange = wHigh - wLow;
def mRange = mHigh - mLow;
def qRange = qHigh - qLow;
def mrunUp = close - mLow;
def mrunDown = mHigh - close;
def qrunUp = close - qLow;
def qrunDown = qHigh - close;
defineGlobalColor("LabelColor", Color.White);
def ATRd = MovingAverage(averageType, TrueRange(Fundamental(FundamentalType.HIGH, period = d), Fundamental(FundamentalType.CLOSE, period = d), Fundamental(FundamentalType.LOW, period = d)), length);
def ATRw = MovingAverage(averageType, TrueRange(Fundamental(FundamentalType.HIGH, period = w), Fundamental(FundamentalType.CLOSE, period = w), Fundamental(FundamentalType.LOW, period = w)), length);
def ATRm = MovingAverage(averageType, TrueRange(Fundamental(FundamentalType.HIGH, period = m), Fundamental(FundamentalType.CLOSE, period = m), Fundamental(FundamentalType.LOW, period = m)), length);
def ATRq = MovingAverage(averageType, TrueRange(Fundamental(FundamentalType.HIGH, period = q), Fundamental(FundamentalType.CLOSE, period = q), Fundamental(FundamentalType.LOW, period = q)), length);
AddLabel(Yes, "ATR(" + length + ") D:" + round(ATRd, 2) + " W:" + round(ATRw, 2) + " M:" + round(ATRm, 2) + " Q:" + round(ATRq, 2) +" ", GlobalColor("LabelColor"));
AddLabel(Yes, "Range D:" + round (dRange,2) + " W:" + round (wRange,2) + " M:" + round(mRange, 2) + " Q:" + round(qRange, 2) + " ", GlobalColor("LabelColor"));
AddLabel(Yes, "H/L D:" + round (dHigh,2) +"/" + round (dLow,2) +" " + " W:" + round (wHigh,2) +"/" + round (wLow,2) +" " + " M:" + round (mHigh,2) +"/" + round(mLow,2) + " Q:" + round (qHigh,2) +"/" + round(qLow,2) +" ", GlobalColor("LabelColor"));
AddLabel(Yes, "M: Up/Down " + mrunUp + "/" + mrunDown + " ", GlobalColor("LabelColor"));
AddLabel(Yes, "Q: Up/Down " + qrunUp + "/" + qrunDown + " ", GlobalColor("LabelColor"));
AddLabel(yes, "Market Maker Move:" + GetMarketMakerMove());
Last edited by a moderator: