QQsToched =(QQE + Stochastic) For ThinkOrSwim

mbarcala

Active member
Here is a combination of QQE + Stochastic Indicator, its give you a nice and good possible entry and exit points with some custom levels of reversal.

  • QQE as Histogram
  • Stochastic as Blue line
  • Red and Green Arrows mean when QQE crosses up or down the qqe faster signal
  • Gray level (30 = 80 and -30 = 20)
  • Red Dots mean price goes over 45 = 95

Upper Indicator: https://usethinkscript.com/threads/break-keltner-bands-bkb-for-thinkorswim.11220/

Photo
14857[/ATTACH]']
287BcTn.png


script
Code:
# QQE and Stochastic Indicators by mbarcala at useThinkScript.com

declare lower;

input RSI_Period = 20;
input Slow_Factor = 5;
input qqeColLevel = 8.5;
input kPeriod = 14;
input dPeriod = 3;
input obosLevel = 30;
input stochLevel = 45;
input dotLevel = 3; # Position of the dots level up or down

def RSIndex = 4.236;
def Wilder_Period = RSI_Period * 2 - 1;
def rsi = RSI(price = close, length = RSI_Period);
def fullK = 100 * ((close - Lowest(low, kPeriod)) / (Highest(high, kPeriod) - Lowest(low, kPeriod)));

plot STOCHRSI = Round(ExpAverage(fullK, dPeriod) - 50, 2);
STOCHRSI.SetDefaultColor(CreateColor(0, 101, 255));
STOCHRSI.SetLineWeight(3);
#STOCHRSI.HideBubble();
STOCHRSI.HideTitle();

plot midline = 0;
midline.SetDefaultColor(Color.BLACK);
midline.SetLineWeight(1);
midline.HideTitle();

plot QQE = ExpAverage(rsi, Slow_Factor) - 50;
QQE.SetPaintingStrategy(PaintingStrategy.HISTOGRAM);
QQE.AssignValueColor(if QQE > midline and QQE < qqeColLevel then CreateColor(255, 120, 0) else
                     if QQE >= qqeColLevel then CreateColor(255, 250, 0) else
                     if QQE < midline and QQE > -qqeColLevel then CreateColor(118, 0, 60) else  #CreateColor(230, 17, 125)
                     if QQE <= -qqeColLevel then CreateColor(230, 17, 125) else Color.CURRENT);
QQE.SetLineWeight(5);
QQE.HideBubble();
QQE.HideTitle();

def atr_rsi = AbsValue(QQE[1] - QQE);
def atr_rsi_ma = ExpAverage(atr_rsi, Wilder_Period);
def DeltaFastAtrRsi = ExpAverage(atr_rsi_ma, Wilder_Period) * RSIndex;
def newshortband =  QQE + DeltaFastAtrRsi;
def newlongband = QQE - DeltaFastAtrRsi;
def longband = if QQE[1] > longband[1] and QQE > longband[1] then Max(longband[1], newlongband) else newlongband;
def shortband = if QQE[1] < shortband[1] and  QQE < shortband[1] then Min(shortband[1], newshortband) else newshortband;
def trend = if Crosses(QQE, shortband[1]) then 1 else if Crosses(longband[1], QQE) then -1 else if !IsNaN(trend[1]) then trend[1] else 1;
def pFastAtrRsiTL = if trend == 1 then longband else shortband;

def udDots = 4;
plot qqeBrk = if QQE crosses above pFastAtrRsiTL then QQE + udDots else
              if QQE crosses below pFastAtrRsiTL then QQE - udDots else Double.NaN;
qqeBrk.SetPaintingStrategy(PaintingStrategy.POINTS);
qqeBrk.SetDefaultColor(Color.BLACK);
qqeBrk.SetLineWeight(1);
qqeBrk.HideBubble();
qqeBrk.HideTitle();

plot qqeBrkBg = if QQE crosses above pFastAtrRsiTL then QQE + udDots else
                if QQE crosses below pFastAtrRsiTL then QQE - udDots else Double.NaN;
qqeBrkBg.SetPaintingStrategy(PaintingStrategy.POINTS);
qqeBrkBg.AssignValueColor(if QQE crosses above pFastAtrRsiTL then Color.GREEN else
                          if QQE crosses below pFastAtrRsiTL then Color.RED else Color.CURRENT);
qqeBrkBg.SetLineWeight(5);
qqeBrkBg.HideBubble();
qqeBrkBg.HideTitle();

plot obLevel = midline + obosLevel;
obLevel.SetStyle(Curve.MEDIUM_DASH);
obLevel.SetDefaultColor(Color.DARK_GRAY);
obLevel.SetLineWeight(1);
obLevel.HideTitle();

plot osLevel = midline - obosLevel;
osLevel.SetStyle(Curve.MEDIUM_DASH);
osLevel.SetDefaultColor(Color.DARK_GRAY);
osLevel.SetLineWeight(1);
osLevel.HideTitle();

plot stochUpDn = if STOCHRSI > stochLevel then STOCHRSI + dotLevel else if STOCHRSI < -stochLevel then STOCHRSI - dotLevel else Double.NaN;
stochUpDn.SetPaintingStrategy(PaintingStrategy.POINTS);
stochUpDn.AssignValueColor(if STOCHRSI > stochLevel then Color.RED else if STOCHRSI < -stochLevel then Color.GREEN else Color.CURRENT);
stochUpDn.SetLineWeight(2);
stochUpDn.HideBubble();
stochUpDn.HideTitle();

AddCloud(STOCHRSI, midline + obosLevel, CreateColor(255, 0, 0), CreateColor(17, 17, 17));
AddCloud(midline - obosLevel, STOCHRSI, CreateColor(0, 255, 0), CreateColor(17, 17, 17));

Scanner
Code:
#QQsToched Scanner

def kPeriod = 14;
def dPeriod = 3;
def fullK = 100 * ((close - Lowest(low, kPeriod)) / (Highest(high, kPeriod) - Lowest(low, kPeriod)));

plot STOCHRSI = ExpAverage(fullK, dPeriod) - 50;
plot obLevel = 35;
plot osLevel = -35;

Watchlist Label
Code:
#QQsToched Label

def kPeriod = 14;
def dPeriod = 3;
def fullK = 100 * ((close - Lowest(low, kPeriod)) / (Highest(high, kPeriod) - Lowest(low, kPeriod)));

def STOCHRSI = ExpAverage(fullK, dPeriod) - 50;
def obLevel = 35;
def osLevel = -35;

def cond1 = STOCHRSI > obLevel;
def cond2 = STOCHRSI < osLevel;

AddLabel(yes, if cond1 then "ob" else
              if cond2 then "os" else " ", Color.CURRENT);

AssignBackgroundColor(if cond1 then Color.DARK_RED else
                      if cond2 then Color.DARK_GREEN else CreateColor(10,10,10));
 

Attachments

  • 287BcTn.png
    287BcTn.png
    457.6 KB · Views: 87
Last edited:
how do i scan for the green arrows , seem to be powerfull near earnings!
scan
Code:
# QQE and Stochastic Indicators Scan by mbarcala at useThinkScript.com

def RSI_Period = 20;
def Slow_Factor = 5;
def kPeriod = 14;
def dPeriod = 3;

def RSIndex = 4.236;
def Wilder_Period = RSI_Period * 2 - 1;
def rsi = RSI(price = close, length = RSI_Period);
def fullK = 100 * ((close - Lowest(low, kPeriod)) / (Highest(high, kPeriod) - Lowest(low, kPeriod)));

def STOCHRSI = ExpAverage(fullK, dPeriod);

def QQE = ExpAverage(rsi, Slow_Factor) - 50;
def atr_rsi = AbsValue(QQE[1] - QQE);
def atr_rsi_ma = ExpAverage(atr_rsi, Wilder_Period);
def DeltaFastAtrRsi = ExpAverage(atr_rsi_ma, Wilder_Period) * RSIndex;
def newshortband =  QQE + DeltaFastAtrRsi;
def newlongband = QQE - DeltaFastAtrRsi;
def longband = if QQE[1] > longband[1] and QQE > longband[1] then Max(longband[1], newlongband) else newlongband;
def shortband = if QQE[1] < shortband[1] and  QQE < shortband[1] then Min(shortband[1], newshortband) else newshortband;
def trend = if Crosses(QQE, shortband[1]) then 1 else if Crosses(longband[1], QQE) then -1 else if !IsNaN(trend[1]) then trend[1] else 1;
def pFastAtrRsiTL = if trend == 1 then longband else shortband;

#Scan Up
#plot qqeBrkUp = QQE crosses above pFastAtrRsiTL;

#Scan Down
plot qqeBrkDn = QQE crosses below pFastAtrRsiTL;

to create an scan Down just place #symbol in front Scan down and delete the one its on scan up
 
Here is a combination of QQE + Stochastic Indicator, its give you a nice and good possible entry and exit points with some custom levels of reversal.

  • QQE as Histogram
  • Stochastic as Blue line
  • Red and Green Arrows mean when QQE crosses up or down the qqe faster signal
  • Gray level (30 = 80 and -30 = 20)
  • Red Dots mean price goes over 45 = 95

Upper Indicator: https://usethinkscript.com/threads/break-keltner-bands-bkb-for-thinkorswim.11220/

Photo
15262[/ATTACH]']
287BcTn.png


script
Code:
# QQE and Stochastic Indicators by mbarcala at useThinkScript.com

declare lower;

input RSI_Period = 20;
input Slow_Factor = 5;
input qqeColLevel = 8.5;
input kPeriod = 14;
input dPeriod = 3;
input obosLevel = 30;
input stochLevel = 45;
input dotLevel = 3; # Position of the dots level up or down

def RSIndex = 4.236;
def Wilder_Period = RSI_Period * 2 - 1;
def rsi = RSI(price = close, length = RSI_Period);
def fullK = 100 * ((close - Lowest(low, kPeriod)) / (Highest(high, kPeriod) - Lowest(low, kPeriod)));

plot STOCHRSI = Round(ExpAverage(fullK, dPeriod) - 50, 2);
STOCHRSI.SetDefaultColor(CreateColor(0, 101, 255));
STOCHRSI.SetLineWeight(3);
#STOCHRSI.HideBubble();
STOCHRSI.HideTitle();

plot midline = 0;
midline.SetDefaultColor(Color.BLACK);
midline.SetLineWeight(1);
midline.HideTitle();

plot QQE = ExpAverage(rsi, Slow_Factor) - 50;
QQE.SetPaintingStrategy(PaintingStrategy.HISTOGRAM);
QQE.AssignValueColor(if QQE > midline and QQE < qqeColLevel then CreateColor(255, 120, 0) else
                     if QQE >= qqeColLevel then CreateColor(255, 250, 0) else
                     if QQE < midline and QQE > -qqeColLevel then CreateColor(118, 0, 60) else  #CreateColor(230, 17, 125)
                     if QQE <= -qqeColLevel then CreateColor(230, 17, 125) else Color.CURRENT);
QQE.SetLineWeight(5);
QQE.HideBubble();
QQE.HideTitle();

def atr_rsi = AbsValue(QQE[1] - QQE);
def atr_rsi_ma = ExpAverage(atr_rsi, Wilder_Period);
def DeltaFastAtrRsi = ExpAverage(atr_rsi_ma, Wilder_Period) * RSIndex;
def newshortband =  QQE + DeltaFastAtrRsi;
def newlongband = QQE - DeltaFastAtrRsi;
def longband = if QQE[1] > longband[1] and QQE > longband[1] then Max(longband[1], newlongband) else newlongband;
def shortband = if QQE[1] < shortband[1] and  QQE < shortband[1] then Min(shortband[1], newshortband) else newshortband;
def trend = if Crosses(QQE, shortband[1]) then 1 else if Crosses(longband[1], QQE) then -1 else if !IsNaN(trend[1]) then trend[1] else 1;
def pFastAtrRsiTL = if trend == 1 then longband else shortband;

def udDots = 4;
plot qqeBrk = if QQE crosses above pFastAtrRsiTL then QQE + udDots else
              if QQE crosses below pFastAtrRsiTL then QQE - udDots else Double.NaN;
qqeBrk.SetPaintingStrategy(PaintingStrategy.POINTS);
qqeBrk.SetDefaultColor(Color.BLACK);
qqeBrk.SetLineWeight(1);
qqeBrk.HideBubble();
qqeBrk.HideTitle();

plot qqeBrkBg = if QQE crosses above pFastAtrRsiTL then QQE + udDots else
                if QQE crosses below pFastAtrRsiTL then QQE - udDots else Double.NaN;
qqeBrkBg.SetPaintingStrategy(PaintingStrategy.POINTS);
qqeBrkBg.AssignValueColor(if QQE crosses above pFastAtrRsiTL then Color.GREEN else
                          if QQE crosses below pFastAtrRsiTL then Color.RED else Color.CURRENT);
qqeBrkBg.SetLineWeight(5);
qqeBrkBg.HideBubble();
qqeBrkBg.HideTitle();

plot obLevel = midline + obosLevel;
obLevel.SetStyle(Curve.MEDIUM_DASH);
obLevel.SetDefaultColor(Color.DARK_GRAY);
obLevel.SetLineWeight(1);
obLevel.HideTitle();

plot osLevel = midline - obosLevel;
osLevel.SetStyle(Curve.MEDIUM_DASH);
osLevel.SetDefaultColor(Color.DARK_GRAY);
osLevel.SetLineWeight(1);
osLevel.HideTitle();

plot stochUpDn = if STOCHRSI > stochLevel then STOCHRSI + dotLevel else if STOCHRSI < -stochLevel then STOCHRSI - dotLevel else Double.NaN;
stochUpDn.SetPaintingStrategy(PaintingStrategy.POINTS);
stochUpDn.AssignValueColor(if STOCHRSI > stochLevel then Color.RED else if STOCHRSI < -stochLevel then Color.GREEN else Color.CURRENT);
stochUpDn.SetLineWeight(2);
stochUpDn.HideBubble();
stochUpDn.HideTitle();

AddCloud(STOCHRSI, midline + obosLevel, CreateColor(255, 0, 0), CreateColor(17, 17, 17));
AddCloud(midline - obosLevel, STOCHRSI, CreateColor(0, 255, 0), CreateColor(17, 17, 17));

Scanner
Code:
#QQsToched Scanner

def kPeriod = 14;
def dPeriod = 3;
def fullK = 100 * ((close - Lowest(low, kPeriod)) / (Highest(high, kPeriod) - Lowest(low, kPeriod)));

plot STOCHRSI = ExpAverage(fullK, dPeriod) - 50;
plot obLevel = 35;
plot osLevel = -35;

Watchlist Label
Code:
#QQsToched Label

def kPeriod = 14;
def dPeriod = 3;
def fullK = 100 * ((close - Lowest(low, kPeriod)) / (Highest(high, kPeriod) - Lowest(low, kPeriod)));

def STOCHRSI = ExpAverage(fullK, dPeriod) - 50;
def obLevel = 35;
def osLevel = -35;

def cond1 = STOCHRSI > obLevel;
def cond2 = STOCHRSI < osLevel;

AddLabel(yes, if cond1 then "ob" else
              if cond2 then "os" else " ", Color.CURRENT);

AssignBackgroundColor(if cond1 then Color.DARK_RED else
                      if cond2 then Color.DARK_GREEN else CreateColor(10,10,10));
@mbarcala my lower shows dots near the zero line instead of arrows like on your lower chart. How do I change it to arrows. Thanks for the study.
dRfquFw.jpg
 

Attachments

  • 287BcTn.png
    287BcTn.png
    457.6 KB · Views: 74
Last edited:
@mbarcala my lower shows dots near the zero line instead of arrows like on your lower chart. How do I change it to arrows. Thanks for the study.
dRfquFw.jpg
ok replace this part of the code:
Code:
def udDots = 4;
plot qqeBrk = if QQE crosses above pFastAtrRsiTL then QQE + udDots else
              if QQE crosses below pFastAtrRsiTL then QQE - udDots else Double.NaN;
qqeBrk.SetPaintingStrategy(PaintingStrategy.POINTS);
qqeBrk.SetDefaultColor(Color.BLACK);
qqeBrk.SetLineWeight(1);
qqeBrk.HideBubble();
qqeBrk.HideTitle();

plot qqeBrkBg = if QQE crosses above pFastAtrRsiTL then QQE + udDots else
                if QQE crosses below pFastAtrRsiTL then QQE - udDots else Double.NaN;
qqeBrkBg.SetPaintingStrategy(PaintingStrategy.POINTS);
qqeBrkBg.AssignValueColor(if QQE crosses above pFastAtrRsiTL then Color.GREEN else
                          if QQE crosses below pFastAtrRsiTL then Color.RED else Color.CURRENT);
qqeBrkBg.SetLineWeight(5);
qqeBrkBg.HideBubble();
qqeBrkBg.HideTitle();

for this one here:
Code:
plot upArrow = if QQE crosses above pFastAtrRsiTL then QQE else Double.NaN;
upArrow.SetPaintingStrategy(PaintingStrategy.ARROW_UP);
upArrow.SetDefaultColor(Color.GREEN);
upArrow.SetLineWeight(1);
upArrow.HideBubble();
upArrow.HideTitle();

plot dnArrow = if QQE crosses below pFastAtrRsiTL then QQE else Double.NaN;
dnArrow.SetPaintingStrategy(PaintingStrategy.ARROW_DOWN);
dnArrow.SetDefaultColor(Color.RED);
dnArrow.SetLineWeight(1);
dnArrow.HideBubble();
dnArrow.HideTitle();
 
@mbarcala on your original coded the qqeBrk and qqeBrkBg seems to represent some reading/point. Is this right?
which of the input is qqe faster signal. I'm new at this. Thx for your time.
 
@mbarcala on your original coded the qqeBrk and qqeBrkBg seems to represent some reading/point. Is this right?
which of the input is qqe faster signal. I'm new at this. Thx for your time.
the Arrow and the Points read the same cross between QQE and pFastAtrRsiTL wish is the faster signal, thank you!
 
QQE_Mod version if anyone wants it, personally didn't want the arrows so this won't plot them.

Code:
declare lower;

input RSI_Length = 6;
input RSI_Smoothing = 5;
input Fast_QQE_Factor = 3.0;
input Threshold = 3;
input RSI_Source = close;
input RSI_Length2 = 6;
input RSI_Smoothing2 = 5;
input Fast_QQE_Factor2 = 1.61;
input Threshold2 = 3;
input RSI_Source2 = close;
input Bollinger_Length = 50;
input BB_Multiplier = 0.35; # min: 0.001, max: 5

input RSI_Period = 20;
input Slow_Factor = 5;
input qqeColLevel = 8.5;
input kPeriod = 14;
input dPeriod = 3;
input obosLevel = 30;
input stochLevel = 45;
input dotLevel = 3; # Position of the dots level up or down

def Wilder_Period = RSI_Period * 2 - 1;
def fullK = 100 * ((close - Lowest(low, kPeriod)) / (Highest(high, kPeriod) - Lowest(low, kPeriod)));

plot STOCHRSI = Round(ExpAverage(fullK, dPeriod) - 50, 2);
STOCHRSI.SetDefaultColor(CreateColor(0, 101, 255));
STOCHRSI.SetLineWeight(3);
#STOCHRSI.HideBubble();
STOCHRSI.HideTitle();

plot midline = 0;
midline.SetDefaultColor(Color.BLACK);
midline.SetLineWeight(1);
midline.HideTitle();


# QQE 1
def Wilders_period = RSI_Length * 2 - 1;

def Rsi = RSI(price = RSI_Source, length = RSI_Length);
def RsiMa = MovAvgExponential(Rsi, RSI_Smoothing);
def AtrRsi = absValue(RsiMa[1] - RsiMa);
def MaAtrRsi = MovAvgExponential(AtrRsi, Wilders_Period);
def dar = MovAvgExponential(MaAtrRsi, Wilders_Period) * Fast_QQE_Factor;

def DeltaFastAtrRsi = dar;
def RSIndex = RsiMa;
def newshortband = RSIndex + DeltaFastAtrRsi;
def newlongband = RSIndex - DeltaFastAtrRsi;
def longband = if RSIndex[1] > longband[1] and RSIndex > longband[1] then max(longband[1], newlongband) else newlongband;
def shortband = if RSIndex[1] < shortband[1] and RSIndex < shortband[1] then min(shortband[1], newshortband) else newshortband;
def cross_1 = Crosses(longband[1], RSIndex, CrossingDirection.ANY);
def trend = if Crosses(RSIndex, shortband[1], CrossingDirection.ANY) then 1 else if cross_1 then -1 else if isNaN(trend[1]) then 1 else trend[1];
def FastAtrRsiTL = if trend == 1 then longband else shortband;

# QQE 2
def Wilders_period2 = RSI_Length2 * 2 - 1;

def Rsi2 = RSI(price = RSI_Source2, length = RSI_Length2);
def RsiMa2 = MovAvgExponential(Rsi2, RSI_Smoothing2);
def AtrRsi2 = absValue(RsiMa2[1] - RsiMa2);
def MaAtrRsi2 = MovAvgExponential(AtrRsi2, Wilders_Period2);
def dar2 = MovAvgExponential(MaAtrRsi2, Wilders_Period2) * Fast_QQE_Factor;

def DeltaFastAtrRsi2 = dar2;
def RSIndex2 = RsiMa2;
def newshortband2 = RSIndex2 + DeltaFastAtrRsi2;
def newlongband2 = RSIndex2 - DeltaFastAtrRsi2;
def longband2 = if RSIndex2[1] > longband2[1] and RSIndex2 > longband2[1] then max(longband2[1], newlongband2) else newlongband2;
def shortband2 = if RSIndex2[1] < shortband2[1] and RSIndex2 < shortband2[1] then min(shortband2[1], newshortband2) else newshortband2;
def cross_2 = Crosses(longband2[1], RSIndex2, CrossingDirection.ANY);
def trend2 = if Crosses(RSIndex2, shortband2[1], CrossingDirection.ANY) then 1 else if cross_2 then -1 else if isNaN(trend2[1]) then 1 else trend2[1];
def FastAtrRsiTL2 = if trend2 == 1 then longband2 else shortband2;

# BB

def basis = SimpleMovingAvg(FastAtrRsiTL - 50, Bollinger_Length);
def dev = BB_Multiplier * stdev(FastAtrRsiTL - 50, Bollinger_Length);
def upper = basis + dev;
def lower = basis - dev;

# Ups and Downs

def Greenbar1 = RsiMa2 - 50 > Threshold2;
def Greenbar2 = RsiMa - 50 > upper;

def Redbar1 = RsiMa2 - 50 < 0 - Threshold2;
def Redbar2 = RsiMa - 50 < lower;

# Plots

plot Zero = 0;
Zero.SetDefaultColor(Color.WHITE);

plot QQE_Line = FastAtrRsiTL2 - 50;
QQE_Line.SetDefaultColor(Color.WHITE);
QQE_Line.SetLineWeight(2);

plot Hist = RsiMa2 - 50;
Hist.SetPaintingStrategy(PaintingStrategy.HISTOGRAM);
Hist.SetLineWeight(4);
Hist.AssignValueColor(
    if Greenbar1 and Greenbar2 == 1 then CreateColor(0, 195, 255)
    else if Redbar1 and Redbar2 == 1 then CreateColor(255, 0, 98)
    else if RsiMa2 - 50 > Threshold2 then Color.DARK_GRAY
    else if RsiMa2 - 50 < 0 - Threshold2 then Color.DARK_GRAY
    else Color.BLACK
);


plot obLevel = midline + obosLevel;
obLevel.SetStyle(Curve.MEDIUM_DASH);
obLevel.SetDefaultColor(Color.DARK_GRAY);
obLevel.SetLineWeight(1);
obLevel.HideTitle();

plot osLevel = midline - obosLevel;
osLevel.SetStyle(Curve.MEDIUM_DASH);
osLevel.SetDefaultColor(Color.DARK_GRAY);
osLevel.SetLineWeight(1);
osLevel.HideTitle();

plot stochUpDn = if STOCHRSI > stochLevel then STOCHRSI + dotLevel else if STOCHRSI < -stochLevel then STOCHRSI - dotLevel else Double.NaN;
stochUpDn.SetPaintingStrategy(PaintingStrategy.POINTS);
stochUpDn.AssignValueColor(if STOCHRSI > stochLevel then Color.RED else if STOCHRSI < -stochLevel then Color.GREEN else Color.CURRENT);
stochUpDn.SetLineWeight(2);
stochUpDn.HideBubble();
stochUpDn.HideTitle();

AddCloud(STOCHRSI, midline + obosLevel, CreateColor(255, 0, 0), CreateColor(17, 17, 17));
AddCloud(midline - obosLevel, STOCHRSI, CreateColor(0, 255, 0), CreateColor(17, 17, 17));
 

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
324 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