Angle Attack Follow Line For ThinkOrSwim

Join useThinkScript to post your question to a community of 21,000+ developers and traders.

It would be awesome to add this modification in the TOS version of follow line.

https://www.tradingview.com/script/t3aX6BKM-Angle-Attack-Follow-Line-Indicator/

check out the below.
Jn7zpg2.png



CSS:
#// © Dreadblitz
#//@version=4
#study(shorttitle="AAFLI", title="Angle Attack Follow Line Indicator ", overlay=false, max_bars_back=1000)
# Converted by Sam4Cok@Samer800 - 02/2023
declare lower;
#//INPUTS ———————
#input BbAverageType = AverageType.SIMPLE;
input BBperiod      = 21;        # "Period"
input BBdeviations  = 1.00;      # "Deviations"
input UseATRfilter  = yes;       # "ATR Filter"
input ATRperiod     = 5;         # "ATR Period"
input BackgroundColor = yes;     # "Activate Indicator Background"
input TYPE          = {"RMA", default "SMA", "EMA", "WMA", "VWMA", "SMMA", "KMA", "TMA", "HullMA", "DEMA", "TEMA", "CTI"};
input RES           = AggregationPeriod.FOUR_HOURS;    # "Resolution"
input LEN           = 21;                              # "Period"
input BBdeviations_1 = 1.00;                           # "Deviations"
input ATRperiod_1    = 5;                              # "ATR Period"
input Source         = close;                          # "Source"
input filterMode    = {default "NO FILTER HIGHER TIME FRAME", "FILTER HIGHER TIME FRAME"};
input i_lookback    = 8;         # "Angle Period"
input i_atrPeriod   = 10;        # "ATR Period"
input Buy         = yes;         # "Buy Change Follow Line"
input Sell        = yes;         # "Sell Change Follow Line"
input Max_level_1   = 40;        # "Max Angle Level 1"
input Max_level_2   = 65;        # "Max Angle Level 2"
input Min_level_1   = -40;       # "Min Angle Level 1"
input Min_level_2   = -65;       # "Min Angle Level 2"
input Red_Buy_0     = yes;       # "Option 1 to Reduce Buy Max Angle Level 1"
input Red_Buy_1     = yes;       # "Option 2 to Reduce Buy Max Angle Level 2"
input Red_Buy_2     = yes;       # "Option 3 to Reduce Buy 2 Bars Above Max Angle Level 2"
input Red_Buy_3     = yes;       # "Option 4 to Reduce Buy 3 Bars Above Max Angle Level 2"
input Red_Buy_4     = yes;       # "Option 5 to Reduce Buy 4 Bars Above Max Angle Level 2"
input Red_Sell_0    = yes;       # "Option 1 to Reduce Sell Min Angle Level 1"
input Red_Sell_1    = yes;       # "Option 2 to Reduce Sell Min Angle Level 1"
input Red_Sell_2    = no;        # "Option 3 to Reduce Sell 2 bars Below Min Angle Level 2"
input Red_Sell_3    = yes;       # "Option 4 to Reduce Sell 3 bars Below Min Angle Level 2"
input Red_Sell_4    = yes;       # "Option 5 to Reduce Sell 4 bars Below Min Angle Level 2"
input barColor      = yes;       # "Bar Color?"
input h_lables      = no;        # "Hide Labels"

def na = Double.NaN;
def last = isNaN(close);
def pos = Double.POSITIVE_INFINITY;
def neg = Double.NEGATIVE_INFINITY;
def mode = filterMode == filterMode."NO FILTER HIGHER TIME FRAME";
def tfClose = close(Period = RES);
def tfLow   = low(Period = RES);
def tfHigh  = high(Period = RES);
def tfVol   = volume(Period = RES);
#cti(sm, src, cd) =>
script cti {
    input sm = 20;
    input src = close;
    input cd = 0;
    def di = (sm - 1.0) / 2.0 + 1.0;
    def c1 = 2 / (di + 1.0);
    def c2 = 1 - c1;
    def c3 = 3.0 * (cd * cd + cd * cd * cd);
    def c4 = -3.0 * (2.0 * cd * cd + cd + cd * cd * cd);
    def c5 = 3.0 * cd + 1.0 + cd * cd * cd + 3.0 * cd * cd;
    def i1;# = 0.0
    def i2;# = 0.0
    def i3;# = 0.0
    def i4;# = 0.0
    def i5;# = 0.0
    def i6;# = 0.0
    i1 = CompoundValue(1, c1 * src + c2 * (i1[1]), src);
    i2 = CompoundValue(1,c1 * i1 + c2 * (i2[1]), src);
    i3 = CompoundValue(1,c1 * i2 + c2 * (i3[1]), src);
    i4 = CompoundValue(1, c1 * i3 + c2 * (i4[1]), src);
    i5 = CompoundValue(1, c1 * i4 + c2 * (i5[1]), src);
    i6 = CompoundValue(1, c1 * i5 + c2 * (i6[1]), src);
    def bfr = -cd * cd * cd * i6 + c3 * (i5) + c4 * (i4) + c5 * (i3);
    plot out = bfr;
}
#smma(src, len) =>
script smma {
    input src = close;
    input len = 20;
    def smma;# = 0.0
    smma = if IsNaN(smma[1]) then Average(src, len) else (smma[1] * (len - 1) + src) / len;
    plot out = smma;
}
#ma(smoothing, src, vol, length) =>
script ma {
    input smoothing = "SMA";
    input src = close;
    input vol = volume;
    input length = 20;
    def VWMA = Average(src * vol, length) / Average(vol, length);
    def xPrice = src;
    def xvnoise = AbsValue(xPrice - xPrice[1]);
    def nfastend = 0.666;
    def nslowend = 0.0645;
    def nsignal = AbsValue(xPrice - xPrice[length]);
    def nnoise = Sum(xvnoise, length);
    def nefratio = If(nnoise != 0, nsignal / nnoise, 0);
    def nsmooth = Power(nefratio * (nfastend - nslowend) + nslowend, 2) ;
    def nAMA;# = 0.0
    nAMA = CompoundValue(1, nAMA[1] + nsmooth * (xPrice - nAMA[1]), xPrice);
    def ma = if smoothing == "RMA" then WildersAverage(src, length) else
             if smoothing == "SMA" then Average(src, length) else
             if smoothing == "EMA" then ExpAverage(src, length) else
             if smoothing == "WMA" then WMA(src, length) else
             if smoothing == "VWMA" then VWMA else
             if smoothing == "SMMA" then smma(src, length) else
             if smoothing == "HullMA" then HullMovingAvg(src, length) else
             if smoothing == "LSMA" then Inertia(src, length) else
             if smoothing == "KMA" then nAMA else
             if smoothing == "TMA" then Average(Average(src, length), length) else
             if smoothing == "DEMA" then DEMA(src, length) else
             if smoothing == "TEMA" then TEMA(src, length) else
             if smoothing == "CTI" then cti(length, src, 1) else Average(src, length);
    plot out = ma;
}
#// FOLLOW LINE —————————————————————————
    def ma = ma(TYPE, Source, BBperiod);
    def BBUpper = ma + StDev(close, BBperiod) * BBdeviations;
    def BBLower = ma - StDev(close, BBperiod) * BBdeviations;
    def BBSignal = if close > BBUpper then 1 else if close < BBLower then -1 else 0;
    def nAtr = ATR(Length=ATRperiod);
    def LoAtr = low - nAtr;
    def HiAtr = high + nAtr;
    def TrendLine = if BBSignal ==  1 and UseATRfilter == 1 then Max(LoAtr, TrendLine[1]) else
                    if BBSignal == -1 and UseATRfilter == 1 then Min(HiAtr, TrendLine[1]) else
                    if BBSignal ==  0 and UseATRfilter == 1 then TrendLine[1] else
                    if BBSignal ==  1 and UseATRfilter == 0 then Max(low, TrendLine[1]) else
                    if BBSignal == -1 and UseATRfilter == 0 then Min(high, TrendLine[1]) else
                    if BBSignal ==  0 and UseATRfilter == 0 then TrendLine[1] else TrendLine[1];
    def iTrend = if TrendLine > TrendLine[1] then 1 else
                 if TrendLine < TrendLine[1] then -1 else iTrend[1];
    def MA_MTF = ma(TYPE, tfClose, tfVol, len);
    def BBUpper_ = MA_MTF + StDev(tfClose, len) * BBdeviations_1;
    def BBLower_ = MA_MTF - StDev(tfClose, len) * BBdeviations_1;
    def BBSignal_ = if tfClose > BBUpper_ then 1 else if tfClose < BBLower_ then -1 else 0;
    def trMTF = TrueRange(tfHigh, tfClose, tfLow);
    def nAtrMTF = WildersAverage(trMTF, ATRperiod_1);
    def LoAtr_ = tfLow - nAtrMTF;
    def HiAtr_ = tfHigh + nAtrMTF;
    def TrendLine_ = if BBSignal_ ==  1 then Max(LoAtr_, TrendLine_[1]) else
                     if BBSignal_ == -1 then Min(HiAtr_, TrendLine_[1]) else
                     if BBSignal_ ==  0 then TrendLine_[1] else TrendLine_[1];
    def iTrend_ = if TrendLine_ > TrendLine_[1] then 1 else
                  if TrendLine_ < TrendLine_[1] then -1 else iTrend_[1];
#// ANGLE FL————————
#f_angle(_src, _lookback, _atrPeriod) =>
script f_angle {
    input _src = close;
    input _lookback = 8;
    input _atrPeriod = 10;
    def pi = 3.14159265359;
    def change = _src - _src[_lookback];
    def nATR = ATR(Length= _atrPeriod);
    def rad2degree = 180 / pi;
    def ang = rad2degree * Atan(change / nATR);
    plot out = ang;
}
def _angle_fl = f_angle(TrendLine, i_lookback, i_atrPeriod);

#// BUY/SELL AND NO FILTER HIGHER TIME FRAME
def buy_0 = iTrend[1] < 0 and iTrend > 0 and Buy and mode;
def sell_0 = iTrend[1] > 0 and iTrend < 0 and Sell and mode;

#// BUY/SELL AND FILTER HIGHER TIME FRAME

def buy_0_A  = if iTrend[1] < 0 and iTrend > 0 and Buy and !mode and iTrend_ == 1 then 1 else 0;
def sell_0_A = if iTrend[1] > 0 and iTrend < 0 and Sell and !mode and iTrend_ == -1 then 1 else 0;

#//REDUCE AND NO FILTER HIGHER TIME FRAME —

def Redu_buy_1 = _angle_fl[1] < Max_level_1 and _angle_fl > Max_level_1 and Red_Buy_0 and mode;
def Redu_buy_2 = _angle_fl[1] < Max_level_2 and _angle_fl > Max_level_2 and Red_Buy_1 and mode;
def Redu_buy_3 = _angle_fl[2] < Max_level_2 and _angle_fl[1] > Max_level_2 and _angle_fl > Max_level_2 and Red_Buy_2 and mode;
def Redu_buy_4 = _angle_fl[3] < Max_level_2 and _angle_fl[2] > Max_level_2 and _angle_fl[1] > Max_level_2 and _angle_fl > Max_level_2 and Red_Buy_3 and mode;
def Redu_buy_5 = _angle_fl[4] < Max_level_2 and _angle_fl [3] > Max_level_2 and _angle_fl[2] > Max_level_2 and _angle_fl [1] > Max_level_2 and _angle_fl > Max_level_2 and Red_Buy_4 and mode;

def Redu_sell_1 = _angle_fl[1] > Min_level_1 and _angle_fl < Min_level_1 and Red_Sell_0 and mode;
def Redu_sell_2 = _angle_fl[1] > Min_level_2 and _angle_fl < Min_level_2 and Red_Sell_1 and mode;
def Redu_sell_3 = _angle_fl[2] > Min_level_2 and _angle_fl[1] < Min_level_2 and _angle_fl < Min_level_2 and Red_Sell_2 and mode;
def Redu_sell_4 = _angle_fl[3] > Min_level_2 and _angle_fl[2] < Min_level_2 and _angle_fl [1] < Min_level_2 and _angle_fl < Min_level_2 and Red_Sell_3 and mode;
def Redu_sell_5 = _angle_fl[4] > Min_level_2 and _angle_fl[3] < Min_level_2 and _angle_fl [2] < Min_level_2 and _angle_fl [1] < Min_level_2 and _angle_fl < Min_level_2 and Red_Sell_4 and mode;

#//REDUCE AND FILTER HIGHER TIME FRAME —————

def Redu_buy_1_A = _angle_fl[1] < Max_level_1 and _angle_fl > Max_level_1 and Red_Buy_0 and !mode and iTrend_ == 1;
def Redu_buy_2_A = _angle_fl[1] < Max_level_2 and _angle_fl > Max_level_2 and Red_Buy_1 and !mode and iTrend_ == 1;
def Redu_buy_3_A = _angle_fl[2] < Max_level_2 and _angle_fl[1] > Max_level_2 and _angle_fl > Max_level_2 and Red_Buy_2 and !mode and iTrend_ == 1;
def Redu_buy_4_A = _angle_fl[3] < Max_level_2 and _angle_fl[2] > Max_level_2 and _angle_fl[1] > Max_level_2 and _angle_fl > Max_level_2 and Red_Buy_3 and !mode and iTrend_ == 1;
def Redu_buy_5_A = _angle_fl[4] < Max_level_2 and _angle_fl[3] > Max_level_2 and _angle_fl[2] > Max_level_2 and _angle_fl [1] > Max_level_2 and _angle_fl > Max_level_2 and Red_Buy_4 and !mode and iTrend_ == 1;

def Redu_sell_1_A = _angle_fl[1] > Min_level_1 and _angle_fl < Min_level_1 and Red_Sell_0 and !mode and iTrend_ == -1;
def Redu_sell_2_A = _angle_fl[1] > Min_level_2 and _angle_fl < Min_level_2 and Red_Sell_1 and !mode and iTrend_ == -1;
def Redu_sell_3_A = _angle_fl[2] > Min_level_2 and _angle_fl[1] < Min_level_2 and _angle_fl < Min_level_2 and Red_Sell_2 and !mode and iTrend_ == -1;
def Redu_sell_4_A = _angle_fl[3] > Min_level_2 and _angle_fl[2] < Min_level_2 and _angle_fl[1] < Min_level_2 and _angle_fl < Min_level_2 and Red_Sell_3 and !mode and iTrend_ == -1;
def Redu_sell_5_A = _angle_fl[4] > Min_level_2 and _angle_fl[3] < Min_level_2 and _angle_fl[2] < Min_level_2 and _angle_fl [1] < Min_level_2 and _angle_fl < Min_level_2 and Red_Sell_4 and !mode and iTrend_ == -1;

#// PLOT ——
def color_fl = iTrend > 0;

plot AngleFollowLine = _angle_fl;        # "Angle Follow Line"
AngleFollowLine.SetLineWeight(3);
AngleFollowLine.AssignValueColor( if color_fl then CreateColor(33,150,243) else CreateColor(255,82,82));
plot AngleFollowLineHist = _angle_fl;    # "Angle Follow Line Histogram"
AngleFollowLineHist.SetLineWeight(3);
AngleFollowLineHist.SetPaintingStrategy(PaintingStrategy.HISTOGRAM);
AngleFollowLineHist.AssignValueColor( if color_fl then CreateColor(33,150,243) else CreateColor(255,82,82));

plot ZeroLev = if last then na else 0;# 'Max Angle Level 1'
ZeroLev.AssignValueColor( if color_fl then CreateColor(33,150,243) else CreateColor(255,82,82));
ZeroLev.SetLineWeight(2);
plot MaxAngleLev1 = if last then na else Max_level_1;# 'Max Angle Level 1'
plot MaxAngleLev2 = if last then na else Max_level_2;# 'Max Angle Level 2'
plot MinAngleLev1 = if last then na else Min_level_1;# 'Min Angle Level 1'
plot MinAngleLev2 = if last then na else Min_level_2;# 'Min Angle Level 2'
MaxAngleLev1.SetDefaultColor(CreateColor(33,150,243));
MaxAngleLev2.SetDefaultColor(CreateColor(33,150,243));
MinAngleLev1.SetDefaultColor(CreateColor(255,82,82));
MinAngleLev2.SetDefaultColor(CreateColor(255,82,82));
MaxAngleLev1.SetStyle(Curve.SHORT_DASH);
MaxAngleLev2.SetStyle(Curve.SHORT_DASH);
MinAngleLev1.SetStyle(Curve.SHORT_DASH);
MinAngleLev2.SetStyle(Curve.SHORT_DASH);

def bg = if !BackgroundColor then na else
         if iTrend_[1] > 0 then 1 else if iTrend_[1] < 0 then -1 else 0;

AddCloud(if bg>0 then pos else na, neg, CreateColor(6,66,113));
AddCloud(if bg<0 then pos else na, neg, CreateColor(121,0,0));


AddChartBubble(!h_lables and (sell_0 or sell_0_A),  5, "Sell", CreateColor(255,82,82), yes);
AddChartBubble(!h_lables and (buy_0 or buy_0_A), -5, "Buy", CreateColor(33,150,243), no);

plot closeSell1 = if !h_lables and (Redu_buy_1 or Redu_buy_1_A) then _angle_fl else na;
plot closeSell2 = if !h_lables and (Redu_buy_2 or Redu_buy_2_A) then _angle_fl else na;
plot closeSell3 = if !h_lables and (Redu_buy_3 or Redu_buy_3_A) then _angle_fl else na;
plot closeSell4 = if !h_lables and (Redu_buy_4 or Redu_buy_4_A) then _angle_fl else na;
plot closeSell5 = if !h_lables and (Redu_buy_5 or Redu_buy_5_A) then _angle_fl else na;
closeSell1.SetPaintingStrategy(PaintingStrategy.SQUARES);
closeSell2.SetPaintingStrategy(PaintingStrategy.SQUARES);
closeSell3.SetPaintingStrategy(PaintingStrategy.SQUARES);
closeSell4.SetPaintingStrategy(PaintingStrategy.SQUARES);
closeSell5.SetPaintingStrategy(PaintingStrategy.SQUARES);
closeSell1.SetDefaultColor(Color.DARK_RED);
closeSell2.SetDefaultColor(Color.DARK_RED);
closeSell3.SetDefaultColor(Color.RED);
closeSell4.SetDefaultColor(Color.RED);
closeSell5.SetDefaultColor(Color.RED);
closeSell1.SetLineWeight(2);
closeSell2.SetLineWeight(2);
closeSell3.SetLineWeight(2);
closeSell4.SetLineWeight(2);
closeSell5.SetLineWeight(2);

plot closeBuy1 = if !h_lables and (Redu_sell_1 or Redu_sell_1_A) then _angle_fl else na;#
plot closeBuy2 = if !h_lables and (Redu_sell_2 or Redu_sell_2_A) then _angle_fl else na;
plot closeBuy3 = if !h_lables and (Redu_sell_3 or Redu_sell_3_A) then _angle_fl else na;
plot closeBuy4 = if !h_lables and (Redu_sell_4 or Redu_sell_4_A) then _angle_fl else na;
plot closeBuy5 = if !h_lables and (Redu_sell_5 or Redu_sell_5_A) then _angle_fl else na;
closeBuy1.SetPaintingStrategy(PaintingStrategy.SQUARES);
closeBuy2.SetPaintingStrategy(PaintingStrategy.SQUARES);
closeBuy3.SetPaintingStrategy(PaintingStrategy.SQUARES);
closeBuy4.SetPaintingStrategy(PaintingStrategy.SQUARES);
closeBuy5.SetPaintingStrategy(PaintingStrategy.SQUARES);
closeBuy1.SetDefaultColor(Color.DARK_GREEN);
closeBuy2.SetDefaultColor(Color.DARK_GREEN);
closeBuy3.SetDefaultColor(Color.GREEN);
closeBuy4.SetDefaultColor(Color.GREEN);
closeBuy5.SetDefaultColor(Color.GREEN);
closeBuy1.SetLineWeight(2);
closeBuy2.SetLineWeight(2);
closeBuy3.SetLineWeight(2);
closeBuy4.SetLineWeight(2);
closeBuy5.SetLineWeight(2);


AssignPriceColor(if !barColor then Color.CURRENT else if color_fl then CreateColor(33,150,243) else CreateColor(255,5,5));

#--- END CODE
 
Last edited:
Hello,

below is the Angle Attack Follow Line Indicator

https://www.tradingview.com/script/t3aX6BKM-Angle-Attack-Follow-Line-Indicator/

// © Dreadblitz
//@version=4
study(shorttitle="AAFLI", title="Angle Attack Follow Line Indicator ", overlay=false, max_bars_back=1000)
//INPUTS ————————————————————————————————————————————————————————————
FL = input(title = "🔰🔰🔰🔰 FOLLOW LINE CURRENT CHART RESOLUTION 🔰🔰🔰🔰", defval = true, type = input.bool)
BBperiod = input(defval = 21, title = "Period", type = input.integer, minval = 1)
BBdeviations = input(defval = 1.00, title = "Deviations", type = input.float, minval = 0.1, step=0.05)
UseATRfilter = input(defval = true, title = "ATR Filter", type = input.bool)
ATRperiod = input(defval = 5, title = "ATR Period", type = input.integer, minval = 1)
FLH = input(title = "🔰🔰🔰🔰🔰 FOLLOW LINE HIGHER TIME FRAME 🔰🔰🔰🔰🔰", defval = true, type = input.bool)
AIB = input(defval = true, title = "Activate Indicator Background", type = input.bool)
TYPE = input(title ="Type Of MA", defval="SMA", options=["RMA", "SMA", "EMA", "WMA", "VWMA", "SMMA", "KMA", "TMA", "HullMA", "DEMA", "TEMA", "CTI"])
RES = input("240", type=input.resolution, title="Resolution")
LEN = input(21, title = "Period", type=input.integer)
BBdeviations_ = input(defval = 1.00,title = "Deviations", type = input.float, minval = 0.1, step=0.05)
ATRperiod_ = input(defval = 5,title = "ATR Period", type = input.integer, minval = 1)
SOUR = input(type=input.source,title = "Source", defval=close)
MD = input(title = "🔰🔰🔰🔰🔰🔰🔰🔰🔰🔰🔰 MODE 🔰🔰🔰🔰🔰🔰🔰🔰🔰🔰🔰🔰", defval = true, type = input.bool)
MODE = input(title ="Type Of Mode", defval="NO FILTER HIGHER TIME FRAME", options=["NO FILTER HIGHER TIME FRAME", "FILTER HIGHER TIME FRAME"])
AC = input(title = "🔰🔰🔰🔰🔰🔰🔰🔰 ANGLE CONFIGURATION 🔰🔰🔰🔰🔰🔰🔰", defval = true, type = input.bool)
i_lookback = input(8, "Angle Period", input.integer, minval = 1)
i_atrPeriod = input(10, "ATR Period", input.integer, minval = 1)
BSA = input(title = "🔰🔰🔰🔰🔰🔰🔰🔰🔰🔰 BUY/SELL 🔰🔰🔰🔰🔰🔰🔰🔰🔰🔰", defval = true, type = input.bool)
Buy_0 = input(defval = true, title = "Buy Change Follow Line", type = input.bool)
Sell_0 = input(defval = true, title = "Sell Change Follow Line", type = input.bool)
OTA = input(title = "🔰🔰🔰🔰🔰🔰🔰🔰🔰 OPTIONS TO ADD 🔰🔰🔰🔰🔰🔰🔰🔰", defval = true, type = input.bool)
Add_Buy_0 = input(defval = true, title = "Option 1 to Add Buy", type = input.bool)
Add_Sell_0 = input(defval = true, title = "Option 1 to Add Sell", type = input.bool)
Add_Buy_1 = input(defval = false, title = "Option 2 to Add Buy", type = input.bool)
Add_Sell_1 = input(defval = false, title = "Option 2 to Add Sell", type = input.bool)
Add_Buy_2 = input(defval = false, title = "Option 3 to Add Buy", type = input.bool)
Add_Sell_2 = input(defval = false, title = "Option 3 to Add Sell", type = input.bool)
OTR = input(title = "🔰🔰🔰🔰🔰🔰🔰🔰 OPTIONS TO REDUCE 🔰🔰🔰🔰🔰🔰🔰🔰", defval = true, type = input.bool)
Max_level_1 = input(defval = 40, title = "Max Angle Level 1", type = input.integer, minval = 1)
Max_level_2 = input(defval = 65, title = "Max Angle Level 2", type = input.integer, minval = 1)
Min_level_1 = input(defval = -40, title = "Min Angle Level 1", type = input.integer, minval = -100)
Min_level_2 = input(defval = -65, title = "Min Angle Level 2", type = input.integer, minval = -100)
Red_Buy_0 = input(defval = true, title = "Option 1 to Reduce Buy Max Angle Level 1", type = input.bool)
Red_Buy_1 = input(defval = true, title = "Option 2 to Reduce Buy Max Angle Level 2", type = input.bool)
Red_Buy_2 = input(defval = false,title = "Option 3 to Reduce Buy 2 Bars Above Max Angle Level 2", type = input.bool)
Red_Buy_3 = input(defval = true, title = "Option 4 to Reduce Buy 3 Bars Above Max Angle Level 2", type = input.bool)
Red_Buy_4 = input(defval = false,title = "Option 5 to Reduce Buy 4 Bars Above Max Angle Level 2", type = input.bool)
Red_Sell_0 = input(defval = true, title = "Option 1 to Reduce Sell Min Angle Level 1", type = input.bool)
Red_Sell_1 = input(defval = true, title = "Option 2 to Reduce Sell Min Angle Level 1", type = input.bool)
Red_Sell_2 = input(defval = false,title = "Option 3 to Reduce Sell 2 bars Below Min Angle Level 2", type = input.bool)
Red_Sell_3 = input(defval = true, title = "Option 4 to Reduce Sell 3 bars Below Min Angle Level 2", type = input.bool)
Red_Sell_4 = input(defval = false,title = "Option 5 to Reduce Sell 4 bars Below Min Angle Level 2", type = input.bool)

OTH = input(title = "🔰🔰🔰🔰🔰🔰🔰🔰🔰🔰 OTHERS 🔰🔰🔰🔰🔰🔰🔰🔰🔰🔰🔰", defval = true, type = input.bool)
i_barColor = input(true, "Bar Color?")
h_lables = input(false, "Hide Labels")

// FOLLOW LINE —————————————————————————————————————————————————————
BBUpper=sma (close,BBperiod)+stdev(close, BBperiod)*BBdeviations
BBLower=sma (close,BBperiod)-stdev(close, BBperiod)*BBdeviations
TrendLine = 0.0
iTrend = 0.0
BBSignal = close>BBUpper? 1 : close<BBLower? -1 : 0
if BBSignal == 1 and UseATRfilter == 1
TrendLine:=low-atr(ATRperiod)
if TrendLine<TrendLine[1]
TrendLine:=TrendLine[1]
if BBSignal == -1 and UseATRfilter == 1
TrendLine:=high+atr(ATRperiod)
if TrendLine>TrendLine[1]
TrendLine:=TrendLine[1]
if BBSignal == 0 and UseATRfilter == 1
TrendLine:=TrendLine[1]
if BBSignal == 1 and UseATRfilter == 0
TrendLine:=low
if TrendLine<TrendLine[1]
TrendLine:=TrendLine[1]
if BBSignal == -1 and UseATRfilter == 0
TrendLine:=high
if TrendLine>TrendLine[1]
TrendLine:=TrendLine[1]
if BBSignal == 0 and UseATRfilter == 0
TrendLine:=TrendLine[1]
iTrend:=iTrend[1]
if TrendLine>TrendLine[1]
iTrend:=1
if TrendLine<TrendLine[1]
iTrend:=-1
// FOLLOW LINE HIGHER TIME FRAME ——————————————————————————————
cd = 0.0
cti(sm, src, cd) =>
di = (sm - 1.0) / 2.0 + 1.0
c1 = 2 / (di + 1.0)
c2 = 1 - c1
c3 = 3.0 * (cd * cd + cd * cd * cd)
c4 = -3.0 * (2.0 * cd * cd + cd + cd * cd * cd)
c5 = 3.0 * cd + 1.0 + cd * cd * cd + 3.0 * cd * cd
i1 = 0.0
i2 = 0.0
i3 = 0.0
i4 = 0.0
i5 = 0.0
i6 = 0.0
i1 := c1*src + c2*nz(i1[1])
i2 := c1*i1 + c2*nz(i2[1])
i3 := c1*i2 + c2*nz(i3[1])
i4 := c1*i3 + c2*nz(i4[1])
i5 := c1*i4 + c2*nz(i5[1])
i6 := c1*i5 + c2*nz(i6[1])

bfr = -cd*cd*cd*i6 + c3*(i5) + c4*(i4) + c5*(i3)
bfr
smma(src, len) =>
smma = 0.0
smma := na(smma[1]) ? sma(src, len) : (smma[1] * (len - 1) + src) / len
smma
ma(smoothing, src, length) =>
if smoothing == "RMA"
rma(src, length)
else
if smoothing == "SMA"
sma(src, length)
else
if smoothing == "EMA"
ema(src, length)
else
if smoothing == "WMA"
wma(src, length)
else
if smoothing == "VWMA"
vwma(src, length)
else
if smoothing == "SMMA"
smma(src, length)
else
if smoothing == "HullMA"
wma(2 * wma(src, length / 2) - wma(src, length), round(sqrt(length)))
else
if smoothing == "LSMA"
src
else
if smoothing == "KMA"
xPrice = src
xvnoise = abs(xPrice - xPrice[1])
nfastend = 0.666
nslowend = 0.0645
nsignal = abs(xPrice - xPrice[length])
nnoise = sum(xvnoise, length)
nefratio = iff(nnoise != 0, nsignal / nnoise, 0)
nsmooth = pow(nefratio * (nfastend - nslowend) + nslowend, 2)
nAMA = 0.0
nAMA := nz(nAMA[1]) + nsmooth * (xPrice - nz(nAMA[1]))
nAMA
else
if smoothing == "TMA"
sma(sma(close, length), length)
else
if smoothing == "DEMA"
emaValue = ema(src, length)
2 * emaValue - ema(emaValue, length)
else
if smoothing == "TEMA"
ema1 = ema(src, length)
ema2 = ema(ema1, length)
ema3 = ema(ema2, length)
(3 * ema1) - (3 * ema2) + ema3
else
if smoothing == "CTI"
cti(length, src, cd)
else
src
MA = ma(TYPE, SOUR, LEN)
MA_MTF = security(syminfo.tickerid, RES, MA)
close_ = security(syminfo.tickerid, RES, close)
low_ = security(syminfo.tickerid, RES, low)
high_ = security(syminfo.tickerid, RES, high)
atr_ = security(syminfo.tickerid, RES, atr(ATRperiod_))
BBUpper_=MA_MTF+stdev(close_, LEN)*BBdeviations_
BBLower_=MA_MTF-stdev(close_, LEN)*BBdeviations_
TrendLine_MTF = 0.0
iTrend_ = 0.0
BBSignal_ = close_>BBUpper_? 1 : close_<BBLower_? -1 : 0

if BBSignal_ == 1
TrendLine_MTF:=low_-atr_
if TrendLine_MTF<TrendLine_MTF[1]
TrendLine_MTF:=TrendLine_MTF[1]
if BBSignal_ == -1
TrendLine_MTF:=high_+atr_
if TrendLine_MTF>TrendLine_MTF[1]
TrendLine_MTF:=TrendLine_MTF[1]
if BBSignal_ == 0
TrendLine_MTF:=TrendLine_MTF[1]
iTrend_:=iTrend_[1]
if TrendLine_MTF>TrendLine_MTF[1]
iTrend_:=1
if TrendLine_MTF<TrendLine_MTF[1]
iTrend_:=-1
// ANGLE FL————————————————————————————————————————————————————————————
f_angle(_src, _lookback, _atrPeriod) =>
rad2degree = 180 / 3.14159265359
ang = rad2degree * atan((_src[0] - _src[_lookback]) / atr(_atrPeriod))
ang

_angle_fl = f_angle(TrendLine, i_lookback, i_atrPeriod)

// BUY/SELL AND NO FILTER HIGHER TIME FRAME ————————————————————————————————————————————————————————————
buy_0 = iTrend[1] < 0 and iTrend > 0 and Buy_0 and MODE == "NO FILTER HIGHER TIME FRAME" ? 1 :0
sell_0 = iTrend[1] > 0 and iTrend < 0 and Sell_0 and MODE == "NO FILTER HIGHER TIME FRAME"? 1 :0
// BUY/SELL AND FILTER HIGHER TIME FRAME ————————————————————————————————————————————————————————————
buy_0_A = iTrend[1] < 0 and iTrend > 0 and Buy_0 and MODE == "FILTER HIGHER TIME FRAME" and iTrend_==1 ? 1 :0
sell_0_A = iTrend[1] > 0 and iTrend < 0 and Sell_0 and MODE == "FILTER HIGHER TIME FRAME" and iTrend_==-1? 1 :0

//ADD AND NO FILTER HIGHER TIME FRAME ————————————————————————————————————————————————————————————
add_buy_1 = _angle_fl [2] > 0 and _angle_fl [1] == 0 and _angle_fl == 0 and iTrend > 0 and Add_Buy_0 and MODE == "NO FILTER HIGHER TIME FRAME" ? 1 :0
add_sell_1 = _angle_fl [2] < 0 and _angle_fl [1] == 0 and _angle_fl == 0 and iTrend < 0 and Add_Sell_0 and MODE == "NO FILTER HIGHER TIME FRAME" ? 1 :0
add_buy_2 = _angle_fl [5] > 0 and _angle_fl [4] == 0 and _angle_fl[3] == 0 and _angle_fl[2] == 0 and _angle_fl[1] == 0 and _angle_fl == 0 and iTrend > 0 and Add_Buy_1 and MODE == "NO FILTER HIGHER TIME FRAME" ? 1 :0
add_sell_2 = _angle_fl [5] < 0 and _angle_fl [4] == 0 and _angle_fl[3] == 0 and _angle_fl[2] == 0 and _angle_fl[1] == 0 and _angle_fl == 0 and iTrend < 0 and Add_Sell_1 and MODE == "NO FILTER HIGHER TIME FRAME" ? 1 :0
add_buy_3 = _angle_fl [8] > 0 and _angle_fl [7] == 0 and _angle_fl[6] == 0 and _angle_fl[5] == 0 and _angle_fl[4] == 0 and _angle_fl[3] == 0 and _angle_fl[2] == 0 and _angle_fl[1] == 0 and _angle_fl == 0 and iTrend > 0 and Add_Buy_2 and MODE == "NO FILTER HIGHER TIME FRAME" ? 1 :0
add_sell_3 = _angle_fl [8] < 0 and _angle_fl [7] == 0 and _angle_fl[6] == 0 and _angle_fl[5] == 0 and _angle_fl[4] == 0 and _angle_fl[3] == 0 and _angle_fl[2] == 0 and _angle_fl[1] == 0 and _angle_fl == 0 and iTrend < 0 and Add_Sell_2 and MODE == "NO FILTER HIGHER TIME FRAME" ? 1 :0
//ADD AND FILTER HIGHER TIME FRAME ————————————————————————————————————————————————————————————
add_buy_1_A = angle_fl [2] > 0 and _angle_fl [1] == 0 and _angle_fl == 0 and iTrend > 0 and Add_Buy_0 and MODE == "FILTER HIGHER TIME FRAME" and iTrend==1? 1 :0
add_sell_1_A = angle_fl [2] < 0 and _angle_fl [1] == 0 and _angle_fl == 0 and iTrend < 0 and Add_Sell_0 and MODE == "FILTER HIGHER TIME FRAME"and iTrend==-1? 1 :0
add_buy_2_A = angle_fl [5] > 0 and _angle_fl [4] == 0 and _angle_fl[3] == 0 and _angle_fl[2] == 0 and _angle_fl[1] == 0 and _angle_fl == 0 and MODE == "FILTER HIGHER TIME FRAME" and iTrend==1 and Add_Buy_1? 1 :0
add_sell_2_A = angle_fl [5] < 0 and _angle_fl [4] == 0 and _angle_fl[3] == 0 and _angle_fl[2] == 0 and _angle_fl[1] == 0 and _angle_fl == 0 and MODE == "FILTER HIGHER TIME FRAME" and iTrend==-1 and Add_Sell_1 ? 1 :0
add_buy_3_A = angle_fl [8] > 0 and _angle_fl [7] == 0 and _angle_fl[6] == 0 and _angle_fl[5] == 0 and _angle_fl[4] == 0 and _angle_fl[3] == 0 and _angle_fl[2] == 0 and _angle_fl[1] == 0 and _angle_fl == 0 and MODE == "FILTER HIGHER TIME FRAME" and iTrend==1 and Add_Buy_2? 1 :0
add_sell_3_A = angle_fl [8] < 0 and _angle_fl [7] == 0 and _angle_fl[6] == 0 and _angle_fl[5] == 0 and _angle_fl[4] == 0 and _angle_fl[3] == 0 and _angle_fl[2] == 0 and _angle_fl[1] == 0 and _angle_fl == 0 and MODE == "FILTER HIGHER TIME FRAME" and iTrend==-1 and Add_Sell_2 ? 1 :0

//REDUCE AND NO FILTER HIGHER TIME FRAME ————————————————————————————————————————————————————————————
Redu_buy_1 = _angle_fl [1] < Max_level_1 and _angle_fl > Max_level_1 and Red_Buy_0 and MODE == "NO FILTER HIGHER TIME FRAME"? 1 :0
Redu_buy_2 = _angle_fl [1] < Max_level_2 and _angle_fl > Max_level_2 and Red_Buy_1 and MODE == "NO FILTER HIGHER TIME FRAME"? 1 :0
Redu_buy_3 = _angle_fl [2] < Max_level_2 and _angle_fl [1] > Max_level_2 and _angle_fl > Max_level_2 and Red_Buy_2 and MODE == "NO FILTER HIGHER TIME FRAME"? 1 :0
Redu_buy_4 = _angle_fl [3] < Max_level_2 and _angle_fl [2] > Max_level_2 and _angle_fl [1] > Max_level_2 and _angle_fl > Max_level_2 and Red_Buy_3 and MODE == "NO FILTER HIGHER TIME FRAME"? 1 :0
Redu_buy_5 = _angle_fl [4] < Max_level_2 and _angle_fl [3] > Max_level_2 and _angle_fl [2] > Max_level_2 and _angle_fl [1] > Max_level_2 and _angle_fl > Max_level_2 and Red_Buy_4 and MODE == "NO FILTER HIGHER TIME FRAME"? 1 :0
Redu_sell_1 = _angle_fl [1] > Min_level_1 and _angle_fl < Min_level_1 and Red_Sell_0 and MODE == "NO FILTER HIGHER TIME FRAME"? 1 :0
Redu_sell_2 = _angle_fl [1] > Min_level_2 and _angle_fl < Min_level_2 and Red_Sell_1 and MODE == "NO FILTER HIGHER TIME FRAME"? 1 :0
Redu_sell_3 = _angle_fl [2] > Min_level_2 and _angle_fl [1] < Min_level_2 and _angle_fl < Min_level_2 and Red_Sell_2 and MODE == "NO FILTER HIGHER TIME FRAME"? 1 :0
Redu_sell_4 = _angle_fl [3] > Min_level_2 and _angle_fl [2] < Min_level_2 and _angle_fl [1] < Min_level_2 and _angle_fl < Min_level_2 and Red_Sell_3 and MODE == "NO FILTER HIGHER TIME FRAME"? 1 :0
Redu_sell_5 = _angle_fl [4] > Min_level_2 and _angle_fl [3] < Min_level_2 and _angle_fl [2] < Min_level_2 and _angle_fl [1] < Min_level_2 and _angle_fl < Min_level_2 and Red_Sell_4 and MODE == "NO FILTER HIGHER TIME FRAME"? 1 :0
//REDUCE AND FILTER HIGHER TIME FRAME ————————————————————————————————————————————————————————————
Redu_buy_1_A = angle_fl [1] < Max_level_1 and _angle_fl > Max_level_1 and Red_Buy_0 and MODE == "FILTER HIGHER TIME FRAME" and iTrend==1? 1 :0
Redu_buy_2_A = angle_fl [1] < Max_level_2 and _angle_fl > Max_level_2 and Red_Buy_1 and MODE == "FILTER HIGHER TIME FRAME" and iTrend==1? 1 :0
Redu_buy_3_A = angle_fl [2] < Max_level_2 and _angle_fl [1] > Max_level_2 and _angle_fl > Max_level_2 and Red_Buy_2 and MODE == "FILTER HIGHER TIME FRAME" and iTrend==1? 1 :0
Redu_buy_4_A = angle_fl [3] < Max_level_2 and _angle_fl [2] > Max_level_2 and _angle_fl [1] > Max_level_2 and _angle_fl > Max_level_2 and Red_Buy_3 and MODE == "FILTER HIGHER TIME FRAME" and iTrend==1? 1 :0
Redu_buy_5_A = angle_fl [4] < Max_level_2 and _angle_fl [3] > Max_level_2 and _angle_fl [2] > Max_level_2 and _angle_fl [1] > Max_level_2 and _angle_fl > Max_level_2 and Red_Buy_4 and MODE == "FILTER HIGHER TIME FRAME" and iTrend==1? 1 :0
Redu_sell_1_A = angle_fl [1] > Min_level_1 and _angle_fl < Min_level_1 and Red_Sell_0 and MODE == "FILTER HIGHER TIME FRAME" and iTrend==-1? 1 :0
Redu_sell_2_A = angle_fl [1] > Min_level_2 and _angle_fl < Min_level_2 and Red_Sell_1 and MODE == "FILTER HIGHER TIME FRAME" and iTrend==-1? 1 :0
Redu_sell_3_A = angle_fl [2] > Min_level_2 and _angle_fl [1] < Min_level_2 and _angle_fl < Min_level_2 and Red_Sell_2 and MODE == "FILTER HIGHER TIME FRAME" and iTrend==-1? 1 :0
Redu_sell_4_A = angle_fl [3] > Min_level_2 and _angle_fl [2] < Min_level_2 and _angle_fl [1] < Min_level_2 and _angle_fl < Min_level_2 and Red_Sell_3 and MODE == "FILTER HIGHER TIME FRAME" and iTrend==-1? 1 :0
Redu_sell_5_A = angle_fl [4] > Min_level_2 and _angle_fl [3] < Min_level_2 and _angle_fl [2] < Min_level_2 and _angle_fl [1] < Min_level_2 and _angle_fl < Min_level_2 and Red_Sell_4 and MODE == "FILTER HIGHER TIME FRAME" and iTrend==-1? 1 :0
// PLOT ————————————————————————————————————————————————————————————
_color_fl = iTrend > 0?color.blue:color.red
plot(_angle_fl,"Angle Follow Line", _color_fl, 3, plot.style_line)
plot(_angle_fl,"Angle Follow Line Histogram", _color_fl, 3, plot.style_histogram)
hline(Max_level_1, title='Max Angle Level 1', color=color.blue, linestyle=hline.style_dotted, linewidth=1)
hline(Max_level_2, title='Max Angle Level 2', color=color.blue, linestyle=hline.style_dotted, linewidth=1)
hline(Min_level_1, title='Min Angle Level 1', color=color.red, linestyle=hline.style_dotted, linewidth=1)
hline(Min_level_2, title='Min Angle Level 2', color=color.red, linestyle=hline.style_dotted, linewidth=1)

plotshape(h_lables == false and (sell_0 or sell_0_A) ? 5 : na, title="Sell", text="Sell", location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.red, textcolor=color.white,transp=0)
plotshape(h_lables == false and (buy_0 or buy_0_A)? -5 : na, title="Buy", text="Buy", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.blue, textcolor=color.white,transp=0)
plotshape(h_lables == false and (add_sell_1 or add_sell_1_A or add_sell_2 or add_sell_3 or add_sell_2_A or add_sell_3_A) ? _angle_fl +5 : na, title="Add Sell 1", text="Add", location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.red, textcolor=color.white,transp=0)
plotshape(h_lables == false and (add_buy_1 or add_buy_1_A or add_buy_2 or add_buy_3 or add_buy_2_A or add_buy_3_A) ? _angle_fl -5 : na, title="Add Buy 1", text="Add", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.blue, textcolor=color.white,transp=0)
plotshape(h_lables == false and (Redu_buy_1 or Redu_buy_1_A)? _angle_fl +5 : na, title="Reduce Buy 1", text="Red", location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.blue, textcolor=color.white,transp=0)
plotshape(h_lables == false and (Redu_buy_2 or Redu_buy_2_A)? _angle_fl +5 : na, title="Reduce Buy 2", text="Red", location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.blue, textcolor=color.white,transp=0)
plotshape(h_lables == false and (Redu_buy_3 or Redu_buy_3_A)? _angle_fl +5 : na, title="Reduce Buy 3", text="Red", location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.blue, textcolor=color.white,transp=0)
plotshape(h_lables == false and (Redu_buy_4 or Redu_buy_4_A)? _angle_fl +5 : na, title="Reduce Buy 4", text="Red", location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.blue, textcolor=color.white,transp=0)
plotshape(h_lables == false and (Redu_buy_5 or Redu_buy_5_A)? _angle_fl +5 : na, title="Reduce Buy 5", text="Red", location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.blue, textcolor=color.white,transp=0)
plotshape(h_lables == false and (Redu_sell_1 or Redu_sell_1_A) ? _angle_fl -5 : na, title="Reduce Sell 1", text="Red", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.red, textcolor=color.white,transp=0)
plotshape(h_lables == false and (Redu_sell_2 or Redu_sell_2_A)? _angle_fl -5 : na, title="Reduce Sell 2", text="Red", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.red, textcolor=color.white,transp=0)
plotshape(h_lables == false and (Redu_sell_3 or Redu_sell_3_A)? _angle_fl -5 : na, title="Reduce Sell 3", text="Red", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.red, textcolor=color.white,transp=0)
plotshape(h_lables == false and (Redu_sell_4 or Redu_sell_4_A)? _angle_fl -5 : na, title="Reduce Sell 4", text="Red", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.red, textcolor=color.white,transp=0)
plotshape(h_lables == false and (Redu_sell_5 or Redu_sell_5_A)? _angle_fl -5 : na, title="Reduce Sell 5", text="Red", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.red, textcolor=color.white,transp=0)
bgcolor(iTrend_ > 0 and AIB? color.blue : iTrend_ < 0 and AIB? color.red:na, transp=70)
barcolor(iTrend > 0?color.blue:color.red)
// ALERTS————————————————————————————————————————————————————————————
alertcondition(sell_0 or sell_0_A,title="Sell",message="Sell")
alertcondition(buy_0 or buy_0_A,title="Buy",message="Buy")
alertcondition(add_sell_1 or add_sell_1_A or add_sell_2 or add_sell_3 or add_sell_2_A or add_sell_3_A,title="Add Sell",message="Add Sell")
alertcondition(add_buy_1 or add_buy_1_A or add_buy_2 or add_buy_3 or add_buy_2_A or add_buy_3_A,title="Add Buy",message="Add Buy")
alertcondition(Redu_buy_1 or Redu_buy_1_A or Redu_buy_2 or Redu_buy_2_A or Redu_buy_3 or Redu_buy_3_A or Redu_buy_4 or Redu_buy_4_A or Redu_buy_5 or Redu_buy_5_A,title="Reduce Buy",message="Reduce Buy")
alertcondition(Redu_sell_1 or Redu_sell_1_A or Redu_sell_2 or Redu_sell_2_A or Redu_sell_3 or Redu_sell_3_A or Redu_sell_4 or Redu_sell_4_A or Redu_sell_5 or Redu_sell_5_A,title="Reduce Sell",message="Reduce Sell")
alertcondition(sell_0 or sell_0_A or buy_0 or buy_0_A or add_sell_1 or add_sell_1_A or add_sell_2 or add_sell_3 or add_sell_2_A or add_sell_3_A or add_buy_1 or add_buy_1_A or add_buy_2 or add_buy_3 or add_buy_2_A or add_buy_3_A or Redu_buy_1 or Redu_buy_1_A or Redu_buy_2 or Redu_buy_2_A or Redu_buy_3 or Redu_buy_3_A or Redu_buy_4 or Redu_buy_4_A or Redu_buy_5 or Redu_buy_5_A or Redu_sell_1 or Redu_sell_1_A or Redu_sell_2 or Redu_sell_2_A or Redu_sell_3 or Redu_sell_3_A or Redu_sell_4 or Redu_sell_4_A or Redu_sell_5 or Redu_sell_5_A ,title="Buy/Sell/Add/Reduce",message="Buy/Sell/Add/Reduce")
check this.

https://usethinkscript.com/threads/angle-attack-follow-line-for-thinkorswim.14591/
 

Not the exact question you're looking for?

Start a new thread and receive assistance from our community.

87k+ Posts
422 Online
Create Post

The Market Trading Game Changer

Join 2,500+ subscribers inside the useThinkScript VIP Membership Club
  • Exclusive indicators
  • Proven strategies & setups
  • Private Discord community
  • ‘Buy The Dip’ signal alerts
  • Exclusive members-only content
  • Add-ons and resources
  • 1 full year of unlimited support

Frequently Asked Questions

What is useThinkScript?

useThinkScript is the #1 community of stock market investors using indicators and other tools to power their trading strategies. Traders of all skill levels use our forums to learn about scripting and indicators, help each other, and discover new ways to gain an edge in the markets.

How do I get started?

We get it. Our forum can be intimidating, if not overwhelming. With thousands of topics, tens of thousands of posts, our community has created an incredibly deep knowledge base for stock traders. No one can ever exhaust every resource provided on our site.

If you are new, or just looking for guidance, here are some helpful links to get you started.

What are the benefits of VIP Membership?
VIP members get exclusive access to these proven and tested premium indicators: Buy the Dip, Advanced Market Moves 2.0, Take Profit, and Volatility Trading Range. In addition, VIP members get access to over 50 VIP-only custom indicators, add-ons, and strategies, private VIP-only forums, private Discord channel to discuss trades and strategies in real-time, customer support, trade alerts, and much more. Learn all about VIP membership here.
How can I access the premium indicators?
To access the premium indicators, which are plug and play ready, sign up for VIP membership here.
Back
Top