Archived: RSI Divergence Indicator

Status
Not open for further replies.
@chewie76 The one that you drew manually? Either by drawing it using the drawing toolkit, or you will have to code it. From what I know, divergences are best when identified manually :)
I drew them, was hoping this Mobius RSI Divergence would point them out.
 
I'm fairly new to TOS and found this community here that seems extremely helpful. Was hoping someone might be able to share some insight on how I might accomplish a scanner that is based around stochastic divergence? The divergence would preferably need to based around two price pivot lows/highs.

I read somewhere that it could be done, but I would need to make separate scans for buy and sell divergences, which is fine. I just can't figure out how I would go about doing this.

Anyway, any help or guidance would be greatly appreciated!
 
Hello, has anyone made or can someone make a CVD divergence indicator. My assumption is it would combine the scripts from a CVD indicator and an RSI divergence indicator to show when price is making higher highs but CVD is making new lows. Let me know if any questions. @BenTen
 
Trying to plot RSI divergence visual (arrow) on the upper chart, a simple 'up' arrow when over sold line is hit.

Code:
# TD Ameritrade IP Company, Inc. (c) 2007-2021


input length = 14;
input over_Bought = 70;
input over_Sold = 30;
input price = close;
input averageType = AverageType.WILDERS;
input showBreakoutSignals = no;

def NetChgAvg = MovingAverage(averageType, price - price[1], length);
def TotChgAvg = MovingAverage(averageType, AbsValue(price - price[1]), length);
def ChgRatio = if TotChgAvg != 0 then NetChgAvg / TotChgAvg else 0;

def RSI = 50 * (ChgRatio + 1);
def OverSold = over_Sold;
def OverBought = over_Bought;

def UpSignal = if RSI crosses above OverSold then OverSold else Double.NaN;
def DownSignal = if RSI crosses below OverBought then OverBought else Double.NaN;

#Up Arrow:

def Condition1 = if
NetChgAvg [1] < TotChgAvg [1] and
NetChgAvg > TotChfAvg
then 1 else Double.NaN;
plot x = Condition1;
x.SetPaintingStrategy(paintingStrategy = PaintingStrategy.BOOLEAN_ARROW_UP);
 
@Adeodatus You have a typo... NetChgAvg > TotChfAvg should be NetChgAvg > TotChgAvg... I didn't test the code...

Edited to add: Ever consider just painting the candle itself from a lower RSI indicator...??? Just a thought... 💡
 
Last edited:
@Adeodatus Here you go... You were trying to overcomplicate it...

Ruby:
# RSI_Upper_Breakout_Signals
# TD Ameritrade IP Company, Inc. (c) 2007-2021
# Modified from the standard TOS RSI by rad14733 for uesthinkscript.com
# v1.0 : 2021-02-25 : Initial Release

input length = 14;
input over_Bought = 70;
input over_Sold = 30;
input price = close;
input averageType = AverageType.WILDERS;
input showBreakoutSignals = yes;

def NetChgAvg = MovingAverage(averageType, price - price[1], length);
def TotChgAvg = MovingAverage(averageType, AbsValue(price - price[1]), length);
def ChgRatio = if TotChgAvg != 0 then NetChgAvg / TotChgAvg else 0;

def RSI = 50 * (ChgRatio + 1);
def OverSold = over_Sold;
def OverBought = over_Bought;

plot UpSignal = if RSI crosses above OverSold then OverSold else Double.NaN;
UpSignal.SetDefaultColor(Color.UPTICK);
UpSignal.SetPaintingStrategy(paintingStrategy = PaintingStrategy.BOOLEAN_ARROW_UP);
UpSignal.SetLineWeight(3);

plot DownSignal = if RSI crosses below OverBought then OverBought else Double.NaN;
DownSignal.SetDefaultColor(Color.DOWNTICK);
DownSignal.SetPaintingStrategy(paintingStrategy = PaintingStrategy.BOOLEAN_ARROW_DOWN);
DownSignal.SetLineWeight(3);

usDdvZm.png
 
Last edited:
Ooo! Ooo!, That's nice! Thanks RAD14733! Exactly what i've been looking for (I don't want to sound overly excited, but I've been struggling so much with this, my headache simply went off and I'm feeling groovy again)

Looks Super!
 
I'm trying to scan for Bull divergences. I kinda get the within x bars, but how do you make it look for the past three bars has to be divergent?
 
I'm trying to scan for Bull divergences. I kinda get the within x bars, but how do you make it look for the past three bars has to be divergent?

For that you have to compare the last three bars with the same divergence criteria... Compare it to close, close[1], and close[2]...
 
<Sheepish grin> and how do I get from:
is true within 5 bars to Compare it to close, close[1], and close[2]
 
<Sheepish grin> and how do I get from:
is true within 5 bars to Compare it to close, close[1], and close[2]

What is your divergence criteria code...??? Post that and we'll be more than speculating the following...

Ruby:
def result = {divergence criteria for close} within 5 bars 
and {divergence criteria for close[1]} within 5 bars 
and {divergence criteria for close[2]} within 5 bars 
then 1 else Double.NaN;
 
What is your divergence criteria code...??? Post that and we'll be more than speculating the following...

Ruby:
def result = {divergence criteria for close} within 5 bars
and {divergence criteria for close[1]} within 5 bars
and {divergence criteria for close[2]} within 5 bars
then 1 else Double.NaN;
This is the RSI Code, searching with the Bull/Bear Signal.

Code:
TF_TS_RSI_DIV2("average type" = "EXPONENTIAL")."BearSignal" is true within 2 bars

Code:
#Trade Lessons:
#Wait for conformation before considering a trade,
#The RSI can remain at extreme levels for long periods in a strong trend
#Dont jump right in when you see a reading of 90, first allow the RSI line to fall back below the overbought line to at least give a stoploss level to trade off .
#Watch the Centreline for trend confirmtion.
#If the RSI line reaches an extreme and then returns to the centreline it is a better indication of a turning point in the trend. Waiting for this to occur can cut out those nasty impulsive trades!
#It is common for technical traders to watch the centreline to show shifts in trend,
#If the RSI is above 50, then it is considered a bullish uptrend, and if its below 50, then a bearish downtrend is in play.

# RSI Failure Swing Trade:
#A ‘bearish failure swing’ happens when the RSI enters the overbought zone at 70 and then comes back down below the 70 mark again.
#In this case, a short position will be entered only after the RSI cuts down through the 70 line from the top.
#The ‘bullish failure swing’ occurs when the RSI enters the oversold zone at 30 and then rallies out again and rises above the 30 line again.
#The trader uses this rise above the 30 line as a trigger to go long.

declare lower;
#Hint showDivergentRSI: YES will plot a Divergent Signal on the RSI line, NO will remove the Divergent Signal from the RSI Line

#Hint showDivergentSignals: YES will plot a Divergent Signal on the OS / OB line, NO will remove the Divergent Signal from the OS / OB Line

#Hint showBreakoutSignals: Actual indication of RSI crossovers with the overbought/oversold levels can be enabled by setting the show breakout signals parameter value to YES.

#Hint averageType: By default, the Wilder's moving average is used in the calculation of RSI, however, you are free to select a different type of average.

#Hint over_Sold: On a scale from 0 to 100, default values of 30 are typically use for the oversold level

#Hint over_Bought: On a scale from 0 to 100, default values of 70 are typically use for the overbought level

#Hint Length: The standard is to use 14 periods to calculate the initial RSI value but I like using 10 Periods.

#Hint Sound_AudibleAlert_for_RSI_Cross : This turns off the audio alerts for the RSI Crossovers

# input parameters
input length = 10;
input over_Bought = 70;
input over_Sold = 30;
input price = close;
input averageType = AverageType.WILDERS;
input showDivergentRSI = yes;
input showBreakoutSignals = no;
input showDivergentSignals = yes;
input Sound_AudibleAlert_for_RSI_Cross = No;
def NetChgAvg = MovingAverage(averageType, price - price[1], length);
def TotChgAvg = MovingAverage(averageType, AbsValue(price - price[1]), length);
def ChgRatio = if TotChgAvg != 0 then NetChgAvg / TotChgAvg else 0;


plot RSI = 50 * (ChgRatio + 1);
RSI .SetLineWeight(2);
plot OverSold = over_Sold;
plot OverBought = over_Bought;
plot RSI_CrossUp = if RSI crosses above OverSold then OverSold else Double.NaN;
plot RSI_CrossDn = if RSI crosses below OverBought then OverBought else Double.NaN;

RSI_CrossUp .SetHiding(!showBreakoutSignals);
RSI_CrossDn .SetHiding(!showBreakoutSignals);

RSI.DefineColor("OverBought", GetColor(5));
RSI.DefineColor("Normal", GetColor(7));
RSI.DefineColor("OverSold", GetColor(5));
RSI.AssignValueColor(if RSI > over_Bought then RSI.Color("OverBought") else if RSI < over_Sold then RSI.Color("OverSold") else RSI.Color("Normal"));
OverSold.SetDefaultColor(GetColor(8));
OverBought.SetDefaultColor(GetColor(8));
RSI_CrossUp .SetDefaultColor(Color.UPTICK);
RSI_CrossUp .SetPaintingStrategy(PaintingStrategy.ARROW_UP);
RSI_CrossDn .SetDefaultColor(Color.DOWNTICK);
RSI_CrossDn .SetPaintingStrategy(PaintingStrategy.ARROW_DOWN);

def n = Double.NaN;
def Hclose = high;
def lclose = low;
def prSlope = (Hclose + lclose) / 2;

# Define the Volume Study
def volavg = Average(volume, length);
#Define Volume Slope for Divergence Measurement
def hvol = Highest(volume, length);
def lvol = Lowest(volume, length);
def volslope = (hvol + lvol) / 2;

# Define the Divergence
def isbulld = if (lvol < 0 and volavg >= 0) then 1 else 0;
def isbeard = if (hvol > 0 and volavg <= 0) then 1 else 0;

def myslope = reference LinearRegressionSlope(RSI, length);
def bullslope = reference LinearRegressionSlope(low, length);
def bearslope = reference LinearRegressionSlope(high, length);
def priceslope = (bullslope + bearslope) / 2;

plot Divergence = if (bullslope < 0 and myslope >= 0) or (bearslope > 0 and myslope <= 0) then  RSI else n;
Divergence .DefineColor("Bullish_Divergence", GetColor(6));
Divergence .DefineColor("Bearish_Divergence", GetColor(5));
Divergence .AssignValueColor(if (bullslope < 0 and myslope >= 0) then Divergence .Color("Bullish_Divergence") else if (bearslope > 0 and myslope <= 0) then Divergence .Color("Bearish_Divergence") else Color.GRAY);
Divergence .SetHiding(!showDivergentRSI);
Divergence .SetPaintingStrategy(PaintingStrategy.POINTS);
Divergence .SetLineWeight(5);


plot BullSignal = if (bullslope < 0 and myslope >= 0) then OverBought else Double.NaN;
plot BearSignal = if (bearslope > 0 and myslope <= 0) then OverSold else Double.NaN;

PLOT "0" = 0;
"0" .SetDefaultColor(GetColor(8));
"0" .hidebubble();
"0" .hidetitle();
plot "50" = 50;
"50" .SetDefaultColor(GetColor(8));
"50" .hidebubble();
"50" .hidetitle();
PLOT "100" = 100;
"100" .SetDefaultColor(GetColor(8));
"100" .hidebubble();
"100" .hidetitle();
#Positive divergence happens when the price of an asset is drifting lower yet the RSI is starting to trend higher.
#This could mean that the price is nearing a bottom and will probably turn up soon.
#Negative divergence happens the opposite way, the price is driving higher, but the RSI has stalled and is beginning to turn lower.
#When this occurs it is likely that the price will stop rising soon after. And then follow the RSI lower.
DefineGlobalColor("Bull_Label_Color", CreateColor(148, 214, 232));
DefineGlobalColor("Bear_Label_Color", CreateColor(255, 127, 0));

AddLabel (BullSignal, "Bullish Divergence", GlobalColor("Bull_Label_Color" ) );
AddLabel (BearSignal, "Bearish Divergence", GlobalColor("Bear_Label_Color" ) );

input Show_RSIcross_Labels = yes;
AddLabel (Show_RSIcross_Labels, if
    RSI_CrossUp then "RSI OverSold" else if
    RSI_CrossDn then "RSI OverBought" else "",  if
            RSI_CrossUp then
            Divergence .Color("Bullish_Divergence") else
            Divergence .Color("Bearish_Divergence"));
BullSignal .SetHiding(!showDivergentSignals);
BearSignal .SetHiding(!showDivergentSignals);
BullSignal .SetDefaultColor(Color.UPTICK);
BullSignal .SetPaintingStrategy(PaintingStrategy.TRIANGLES);
BearSignal .SetDefaultColor(Color.DOWNTICK);
BearSignal .SetPaintingStrategy(PaintingStrategy.TRIANGLES);

def MidlineCross = (RSI crosses above 50) or (RSI crosses below 50);
def ExtremeCross = (RSI crosses 70 ) or (RSI crosses below 30);

def Midline_signal = MidlineCross is true;
def Extreme_signal = ExtremeCross is true;

def TrendChange = if Sound_AudibleAlert_for_RSI_Cross == yes then rsi crosses 50 or rsi else no;

Alert(TrendChange, "RSI Trend Change", Alert.BAR, Sound.Ring);

def Extreme = if Sound_AudibleAlert_for_RSI_Cross == yes then rsi crosses 70 or rsi crosses 30 else no;

Alert(Extreme, "RSI @ Extreme", Alert.BAR, Sound.Ring);
 
I came across this interesting indicator today in my ThinkScript archives and decided to share it here for other UTS members and visitors. Based on the notes in the code, it seems to have been originally shared in the ThinkScript Lounge back in August 2015, and was subsequently modified by other coders. I have no idea where or when I obtained it, and I do not use it for trading. If anyone finds a way to use it, let me know how it works. :)

Thinkscript-Study.png

Think-Script-Study-2.png


Code:
# Dilbert_RsiDivergence_with_HiddenDivergence
# V1.4  - 091615  - Dilbert  -  Add hidden divergence
# V1.3  - 082715  - Dilbert  -  Add LastHighAtRsiPivotHigh and LastLowAtRsiPivotLow
# V1.2  - 082615  - zzz      -  Limit plots to == count
# V1.1  - 082615  - Original author unknown, posted to chat by Jr2146
input pricecolor = yes;
input count = 6;#Hint count: number of plots to display
#hint: recognizes and signals divergences between rsi and price.
input n=3;
#hint n: controls how the slow pivot level is recognized. n=3 means that a slow pivot level is recognized when a high/low is preceded by 3 equal or lesser/greater (resp.) high's/low's and followed by 3 lesser/greater high's/low's.

input length = 14;
input ob  = 70;
input ob2 = 78;
input os = 29;
input os2 = 10;

def highPrice = StDev(high, 10);
def lowPrice = StDev(low, 10);

def highAvgUp = ExpAverage(if high > high[1] then highPrice else 0, length);
def highAvgDown = ExpAverage(if high < high[1] then highPrice else 0, length);

def lowAvgUp = ExpAverage(if low > low[1] then lowPrice else 0, length);
def lowAvgDown = ExpAverage(if low < low[1] then lowPrice else 0, length);

def highRVI = 100 - 100 / (1 + highAvgUp / highAvgDown);
def lowRVI = 100 - 100 / (1 + lowAvgUp / lowAvgDown);

def r = (highRVI + lowRVI) / 2;


def isRsiHigh = CompoundValue(n,
    r[n] == Highest(r, n * 2 + 1) && r[n] > r && fold i = 1 to n with x = 1 while x == 1 do
        r[n] > GetValue(r, i)
    , 0
);

def isRsiLow = CompoundValue(n,
    r[n] == Lowest(r, n * 2 + 1) && r[n] < r && fold j = 1 to n with y=1 while y == 1 do
        r[n] < GetValue(r, j)
    , 0
);

def rsiPivotHigh = CompoundValue(n,
    if isRsiHigh then r[n] else rsiPivotHigh[1],
    0
);
def highAtRsiPivotHigh = CompoundValue(n,
    if isRsiHigh then Max(high[n], high[n - 1]) else highAtRsiPivotHigh[1],
    0
);
def rsiPivotLow = CompoundValue(n,
    if isRsiLow then r[n] else rsiPivotLow[1],
    0
);
def lowAtRsiPivotLow = CompoundValue(n,
    if isRsiLow then Min(low[n], low[n - 1]) else lowAtRsiPivotLow[1],
    0
);
def TheBar = BarNumber();

plot divergenceColors = Double.NaN;
divergenceColors.DefineColor( "high divergence", Color.Yellow);
divergenceColors.DefineColor( "low divergence", Color.Yellow);
divergenceColors.HideTitle();

def isFastRsiHigh = r[1] > r && r[2] <= r[1] && r[3] <= r[1];
def isFastRsiLow = r[1] < r  && r[2] >= r[1] && r[3] >= r[1];
def fastPriceHigh = Max(high, high[1]);
def fastPriceLow = Min(low, low[1]);

def isHigherFastRsiHigh = isFastRsiHigh && r[1] < rsiPivotHigh[1];
def isLowerFastRsiLow = isFastRsiLow && r[1] > rsiPivotLow[1];
def highDivergence = (isHigherFastRsiHigh && fastPriceHigh >= highAtRsiPivotHigh[1]);
def lowDivergence = (isLowerFastRsiLow && fastPriceLow <= lowAtRsiPivotLow[1]);

############################################################################################

#####
input crosscount = 2;
def cond2 = highDivergence;
rec dataCount2 = CompoundValue(1, if (cond2) == 1 then dataCount2[1] + 1 else dataCount2[1], 0);
plot CrossDn = if HighestAll(dataCount2) - dataCount2 <= crosscount - 1 and highDivergence then 1 else Double.NaN;
def cond3 = lowDivergence;
rec dataCount3 = CompoundValue(1, if (cond3) == 1 then dataCount3[1] + 1 else dataCount3[1], 0);
plot CrossUp = if HighestAll(dataCount3) - dataCount3 <= crosscount - 1 and lowDivergence then 1 else Double.NaN;
CrossUp.SetPaintingStrategy(PaintingStrategy.BOOLEAN_ARROW_UP);
CrossDn.SetPaintingStrategy(PaintingStrategy.BOOLEAN_ARROW_DOWN);
CrossUp.SetDefaultColor(Color.MAGENTA);
CrossDn.SetDefaultColor(Color.CYAN);

AssignPriceColor(
    if HighestAll(dataCount2) - dataCount2 <= crosscount - 1 and highDivergence then divergenceColors.Color("high divergence")
    else if HighestAll(dataCount3) - dataCount3 <= crosscount - 1 and lowDivergence then divergenceColors.Color("low divergence")
       else Color.CURRENT);

alert(highDivergence,"HighDivergence", sound = Sound.Ring, "alert type" = Alert.BAR);

################################
input displace = 0;
input MA1_length = 8;
input MA2_length = 21;
input price = close;
input showverticals = yes;
input number_verticals_displayed = 1;

DefineGlobalColor("RisingMA", Color.BLUE);
DefineGlobalColor("FallingMA", Color.RED);

input movingAverageType1 = {default Simple, Exponential, Weighted, Hull, Variable};
input movingAverageType2 = {default Variable, Simple, Exponential, Weighted, Hull};

def data1;

switch (movingAverageType1) {
case Simple:
    data1 = CompoundValue(1, Average(price[-displace], MA1_length), price);
case Exponential:
    data1 = CompoundValue(1, ExpAverage(price[-displace], MA1_length), price);
case Weighted:
    data1 = CompoundValue(1, WMA(price[-displace], MA1_length), price);
case Hull:
    data1 = CompoundValue(1, HullMovingAvg(price[-displace], MA1_length), price);
case Variable:
    data1 = CompoundValue(1, VariableMA(price = price, length = MA1_length), price);
}

plot DoubleMA;

switch (movingAverageType2) {
case Simple:
    DoubleMA = CompoundValue(1, Average(data1[-displace], MA2_length), data1);
case Exponential:
    DoubleMA = CompoundValue(1, ExpAverage(data1[-displace], MA2_length), data1);
case Weighted:
    DoubleMA = CompoundValue(1, WMA(data1[-displace], MA2_length), data1);
case Hull:
    DoubleMA = CompoundValue(1, HullMovingAvg(data1[-displace], MA2_length), data1);
case Variable:
    DoubleMA = CompoundValue(1, VariableMA( data1, MA2_length), data1);
}

DoubleMA.SetLineWeight(2);
DoubleMA.AssignValueColor(if DoubleMA > DoubleMA[1] then GlobalColor("RisingMA") else GlobalColor("FallingMA"));
DoubleMA.HideBubble();


DoubleMA.SetLineWeight(2);
DoubleMA.AssignValueColor(if DoubleMA > DoubleMA[1] then GlobalColor("RisingMA") else GlobalColor("FallingMA"));


# Verticals
def condgreen =  if DoubleMA > DoubleMA[1] then 1 else 0;
def count1 = number_verticals_displayed;
def cond1 = if condgreen[1] == 0 and condgreen or condgreen[1] == 1 and condgreen == 0 then 1 else Double.NaN;
rec dataCount1 = CompoundValue(1, if !IsNaN(cond1) then dataCount1[1] + 1 else dataCount1[1], 0);
AddVerticalLine(HighestAll(dataCount1) - dataCount1 <= count1 - 1 and showverticals and condgreen[1] == 0 and condgreen , "                                 Trend Rising     " + Round(DoubleMA, 2), Color.BLUE, Curve.FIRM);
AddVerticalLine(HighestAll(dataCount1) - dataCount1 <= count1 - 1 and showverticals and condgreen[1] == 1 and condgreen == 0 , "                                 Trend Falling     " + Round(DoubleMA, 2), Color.RED, Curve.FIRM);

input showcloud = yes;
input pct_above_below = 1.0;
plot UpperBand = DoubleMA * (1 + pct_above_below / 100);
UpperBand.AssignValueColor(if DoubleMA > DoubleMA[1] then GlobalColor("RisingMA") else GlobalColor("FallingMA"));
plot LowerBand = DoubleMA * (1 - pct_above_below / 100);
LowerBand.AssignValueColor(if DoubleMA > DoubleMA[1] then GlobalColor("RisingMA") else GlobalColor("FallingMA"));
input number_clouds_displayed = 3;
rec dataCount4 = CompoundValue(1, if !IsNaN(cond1) then dataCount4[1] + 1 else dataCount4[1], 0);
def dcount4 = dataCount4;
AddCloud(if HighestAll(dCount4) - dCount4 <= number_clouds_displayed - 1 and showcloud and DoubleMA > DoubleMA[1] then UpperBand else Double.NaN, LowerBand, GlobalColor("RisingMA"), GlobalColor("RisingMA"));
AddCloud(if HighestAll(dCount4) - dCount4 <= number_clouds_displayed - 1 and showcloud and DoubleMA < DoubleMA[1] then UpperBand else Double.NaN, LowerBand, GlobalColor("FallingMA"), GlobalColor("FallingMA"));


#Arrow Option
input showarrows = yes;
input arrow_mover_updown = 1;
plot greenarrow = if HighestAll(dataCount1) - dataCount1 <= count1 - 1 and showarrows and condgreen[1] == 0 and condgreen then doublema - TickSize() * arrow_mover_updown else Double.NaN;
greenarrow.SetPaintingStrategy(PaintingStrategy.ARROW_UP);
greenarrow.SetDefaultColor(Color.BLUE);
greenarrow.SetLineWeight(3);
greenarrow.HideBubble();
plot redarrow = if HighestAll(dataCount1) - dataCount1 <= count1 - 1 and showarrows and condgreen[1] == 1 and condgreen == 0 then doublema + TickSize() * arrow_mover_updown else Double.NaN;
redarrow.SetPaintingStrategy(PaintingStrategy.ARROW_DOWN);
redarrow.SetDefaultColor(Color.RED);
redarrow.SetLineWeight(3);
redarrow.HideBubble();

#Bar Color

def green = if condgreen[1] == 0 and condgreen then 1 else if green[1]==1 and !(condgreen[1] == 1 and condgreen == 0) then 1 else 0;

AssignPriceColor(if pricecolor then if Between(r, 87, 95) or between(r,5,13) then color.GREEN else if r > 95 or r < 5 then color.WHITE else if green==0 then color.red else color.BLUE else Color.CURRENT);
 
Hello, I'm using the RSI_With_Divergence code in a scan and I was wondering if the scan could have the divergence and include a lower closing price then the last divergence price? Stock Example Please see the example for a better explanation. Thanks
 
Study looks good but scanner doesn’t show any results.. I’m trying to scan huge list.. about 1000 stocks.. has anyone got scanner working? What’s your scanner code? Thanks
 
Study looks good but scanner doesn’t show any results.. I’m trying to scan huge list.. about 1000 stocks.. has anyone got scanner working? What’s your scanner code? Thanks
Who are you questioning and what code are you using...??? Can you reference the post # of the code...??? The more details we have, the better we can assist you...
 
Status
Not open for further replies.

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

Similar threads

Not the exact question you're looking for?

Start a new thread and receive assistance from our community.

87k+ Posts
600 Online
Create Post

Similar threads

Similar threads

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