petergluis
Active member
I tried to convert Double SuperTrend ATR for ThinkorSwim. There is a minor issue with converting nz(Trend[1],1). Your help will be greatly appreciated.
https://www.tradingview.com/script/OsKg8IXR-Double-SuperTrend-ATR/
https://www.tradingview.com/script/OsKg8IXR-Double-SuperTrend-ATR/
Ruby:
def Factor = 3;
def ATR = 12;
script nz {
input data = 0;
def ret_val = if IsNaN(data) then 0 else data;
plot return = ret_val;
}
script MTF_ATR {
input Length = 12;
input TF = AggregationPeriod.HOUR;
input averageType = AverageType.WILDERS;
plot ATR =
MovingAverage(
averageType,
TrueRange(
high(period = TF),
close(period = TF),
low(period = TF)
),
Length
)
;
}
def Up = hl2 - (Factor * ATR(ATR));
def Dn = hl2 + (Factor * ATR(ATR));
def TUp = if close[1] > TUp[1] then Max(Up, TUp[1]) else Up;
def TDown = if close[1] < TDown[1] then Min(Dn, TDown[1]) else Dn;
def Trend = if close > TDown[1] then 1 else if close < TUp[1] then -1 else nz(Trend[1]);
def Tsl1 = if Trend == 1 then TUp else TDown;
def Tsl2 = if Trend == 1 then TDown else TUp;
plot p1 = Tsl1;
plot p2 = Tsl2;
AddCloud(p1, p2, Color.RED, Color.GREEN);