Gap Indicator, Watchlist, Label, Scan for ThinkorSwim - Highlight Potential Gap

Hi, I'm trying to create a gap up or gap down scanner for the daily TF to scan each morning at the market opens. Below is my first draft of this script. The calculations i use don't seem correct; like gap = 2% and the offset 0.5%. If anyone has a better idea what gap percentage to use or how my calculation could be better calculated, i would really appreciate your help! Thanks.

I searched our forum and couldn't find a gapper script. The only one close is the Blastoff script by @BenTen.

Code:
# # Gap and offset in percent
input gap = 2;
input offset = 0.5;

def dailyOpen = open(period = AggregationPeriod.DAY);
def gapUpCondition = (dailyOpen - high(period = AggregationPeriod.DAY)[1]) / dailyOpen * 100 > gap;
def gapDownCondition = (low(period = AggregationPeriod.DAY)[1] - dailyOpen) / low(period = AggregationPeriod.DAY)[1] * 100 > gap;

#AddChartBubble(dailyOpen, high, "O " + round(dailyOpen,1), Color.WHITE);
#AddChartBubble(gapUpCondition, high, "G " + gapUpCondition, Color.WHITE);
plot UpArrow =  gapUpCondition and high > dailyOpen + offset;
UpArrow.SetPaintingStrategy(PaintingStrategy.BOOLEAN_ARROW_UP);
UpArrow.SetDefaultColor(Color.YELLOW);
UpArrow.SetLineWeight(3);

#AddChartBubble(dailyOpen, low, "O " + round(dailyOpen,1), Color.WHITE);
#AddChartBubble(gapDownCondition, low, "G " + gapDownCondition, Color.WHITE);
plot DownArrow =  gapDownCondition and low < dailyOpen + offset;
DownArrow.SetPaintingStrategy(PaintingStrategy.BOOLEAN_ARROW_DOWN);
DownArrow.SetDefaultColor(Color.YELLOW);
DownArrow.SetLineWeight(3);
 
@MerryDay I actually wanted MATH because I want the (low of today) to be > (high of yesterday + a small higher offset).

I actually got the above script in post #1 to scan more successfully. They are actually gaps up or down. I want to fine tune it more, but I can't scan after hours, and ondemand doesn't allow scans.

Code:
input gap = 2;
input offset = 0.5;

def dailyOpen = open(period = AggregationPeriod.DAY);
def gapUpCondition = (dailyOpen - high(period = AggregationPeriod.DAY)[1]) / dailyOpen * 100 > gap;
def gapDownCondition = (low(period = AggregationPeriod.DAY)[1] - dailyOpen) / low(period = AggregationPeriod.DAY)[1] * 100 > gap;

plot UpArrow =  gapUpCondition and high > dailyOpen + offset;
plot DownArrow =  gapDownCondition and low < dailyOpen + offset;

plot scangap = (UpArrow) or (DownArrow);
 
Why do you buy the gap? If the gap has gapped then it's too late. A lot of these strategies are also so complicated that you'll end up not following them and you'll get burnt.
 
Historically, Gap strategies had shown to be very profitable but it is usually a strategy used by advanced traders as it requires experience, confidence and ability to understand the strategy and the volatility of the market. Investors must have the enormous amount of discipline required to trade during the most volatile period of the day.

The criteria of the strategies minimizes losses and maximizes my gains. Win-rates can swing low but the higher profits on the wins carry the strategy through.
 
Last edited:
Here you go.

Code:
# TS_GapFill
# [email protected]
# Last Update 28 Jan 2010
# Last Update 16 Jan 2019 by Jerry Investor

input marketOpenTime = 0930;
input marketCloseTime = 1615;

def yesterdaysClose = close(period = "DAY" )[1];

def secondsFromOpen =  SecondsFromTime(marketOpenTime);
def secondsTillClose = SecondsTillTime(marketCloseTime);
def marketOpen = if secondsFromOpen >= 0 and secondsTillClose >= 0 then 1 else 0;

rec regularHoursOpen = if (secondsFromOpen >= 0 and secondsFromOpen[1] < 0) or
(GetDay() != GetDay()[1]) then open else regularHoursOpen[1];

def newDay = if GetDay() != GetDay()[1] then 1 else 0;

rec regHoursHigh = if newDay then high else if marketOpen then
if high > regHoursHigh[1] then high else regHoursHigh[1] else high;
rec regHoursLow = if newDay then low else if marketOpen then
if low < regHoursLow[1] then low else regHoursLow[1] else low;

def yc = if marketOpen then yesterdaysClose else Double.NaN;
def o = if marketOpen then regularHoursOpen else Double.NaN;
def hg = o + (yc - o) / 2;

def gapUp = if yc < o then 1 else 0;
def gapDown = if yc > o then 1 else 0;

def gapRemaining = if gapUp then
Max(regHoursLow - yc, 0) else
if gapDown then Max(yc - regHoursHigh, 0) else 0;

def percentRemaining = 100 * gapRemaining / AbsValue(yc - o);
def gapFilled = if percentRemaining == 0 then 1 else 0;
def halfGapFilled = if percentRemaining <= 50 then 1 else 0;

plot gH = if (gapUp and !gapFilled and marketOpen and !newDay[-1])
then regHoursLow else if (gapDown and !gapFilled and marketOpen and !newDay[-1])
then yc else Double.NaN;
plot gL = if (gapUp and !gapFilled and marketOpen and !newDay[-1])
then yc else if (gapDown and !gapFilled and marketOpen and !newDay[-1])
then regHoursHigh else Double.NaN;
plot hGF = if !gapFilled and !halfGapFilled and marketOpen and !newDay[-1]
then hg else Double.NaN;

gH.SetPaintingStrategy(PaintingStrategy.DASHES);
gH.AssignValueColor(if gapDown then Color.DARK_RED else Color.DARK_GREEN);
gL.SetPaintingStrategy(PaintingStrategy.DASHES);
gL.AssignValueColor(if gapDown then Color.DARK_RED else Color.DARK_GREEN);
hGF.SetStyle(Curve.LONG_DASH);
hGF.SetDefaultColor(Color.DARK_GRAY);
gH.HideBubble();
gL.HideBubble();
hGF.HideBubble();

AddCloud(gH, gL, Color.Pink, Color.Pink);
AddLabel(yes, Concat(percentRemaining, " % Gap Remaining" ),if percentRemaining  > 0 then Color.RED else Color.GREEN);
Would you happen to have it as a file ?
 
Here's a small tweak to the original code. With this tweak, the Potential gap remaining is shown in the form of a number on the top left side.

To improve it further I added a condition in the gap fill. If the gap is already filled then the label will be in red. Indicating that very less likely the stock will go up. If the label is green and it shows percentage that means the stock has room for potential gap fill.

Gap filled and red color

uqZPjCW.png


Gap remaning with % and Green color

d7BcbQe.png


There are multiple ways to use this indicator. If the gap is already filled I would place my bet's on buying puts(or refrain from buying any calls) but it can get risky since 0% gap does not mean that stock cannot run up anymore.

When Gap % is in green we can buy calls and wait for upward price direction(Potential gap fill) can be seen (Bull move).**

https://tos.mx/S5EYxw
can this study cloud be extended to the right until crossed. some gaps don't always get filled within one day, and will get retested further in time. thanks, great work.
 
@CHOZEN Maybe this will work...GapFill_TS

By popular request, here is a study that will display a gap opening and it’s 50% fill line. The plot will dynamically collapse as the gap is filled. It will work on any intraday chart timeframe, 24 hours or regular trading hours so long as the two affected trading days are showing. (Edit: If you would like the % Gap Filled box in the upper left, uncomment out the last line of code by removing the #)



Rich (BB code):
#- TS_GapFill
#- http://www.thinkscripter.com
#- [email protected]
#- Last Update 28 Jan 2010

input marketOpenTime = 0930;

input marketCloseTime = 1615;

def yesterdaysClose = close(period = "DAY")[1];

def secondsFromOpen =  secondsFromTime(marketOpenTime);

def secondsTillClose = secondsTillTime(marketCloseTime);

def marketOpen = if secondsFromOpen >= 0 and secondsTillClose >= 0 then 1 else 0;

rec regularHoursOpen = if (secondsFromOpen >= 0 and secondsFromOpen[1] < 0) or

(getDay() != getDay()[1]) then open else regularHoursOpen[1];

def newDay = if getDay() != getDay()[1] then 1 else 0;

rec regHoursHigh = if newDay then high else if marketOpen then

if high > regHoursHigh[1] then high else regHoursHigh[1] else high;

rec regHoursLow = if newDay then low else if marketOpen then

if low < regHoursLow[1] then low else regHoursLow[1] else low;

def yc = if marketOpen then yesterdaysClose else double.nan;

def o = if marketOpen then regularHoursOpen else double.nan;

def hg = o + (yc - o) / 2;

def gapUp = if yc < o then 1 else 0;

def gapDown = if yc > o then 1 else 0;

def gapRemaining = if gapUp then

Max(regHoursLow - yc, 0) else

if gapDown then Max(yc - regHoursHigh, 0) else 0;

def percentRemaining = 100 * gapRemaining / AbsValue(yc - o);

def gapFilled = if percentRemaining == 0 then 1 else 0;

def halfGapFilled = if percentRemaining <= 50 then 1 else 0;

plot gH = if (gapUp and !gapFilled and marketOpen and !newDay[-1])

then regHoursLow else if (gapDown and !gapFilled and marketOpen and !newDay[-1])

then yc else double.nan;

plot gL = if (gapUp and !gapFilled and marketOpen and !newDay[-1])

then yc else if (gapDown and !gapFilled and marketOpen and !newDay[-1])

then regHoursHigh else double.nan;

plot hGF = if !gapFilled and !halfGapFilled and marketOpen and !newDay[-1]

then hg else double.nan;

gH.SetPaintingStrategy(paintingStrategy.DaSHES);

gH.AssignValueColor(if gapDown then color.darK_red else color.dark_green);

gL.SetPaintingStrategy(paintingStrategy.DASHES);

gL.AssignValueColor(if gapDown then color.darK_red else color.dark_green);

hGF.setStyle(curve.LONG_DASH);

hGF.SetDefaultColor(color.dark_gray);

gH.hideBubble();

gL.hideBubble();

hgF.hideBubble();

AddCloud(gH, gL, color.gray, color.gray);

#AddChartLabel(gapUp or gapDown, concat(percentRemaining, " % Gap Remaining"), color.white);

#end
is there any way to have the box extended until future interactions with price? i see that the box only extends till EOD.
Also, it doesnt seem to work on the daily chart for me.
 
can this study cloud be extended to the right until crossed. some gaps don't always get filled within one day, and will get retested further in time. thanks, great work.
is there any way to have the box extended until future interactions with price? i see that the box only extends till EOD.
Also, it doesnt seem to work on the daily chart for me.
This is only an intraday indicator. Extending beyond the current day is beyond the scope and intent of this script.
But if you search the forum for 'gap' there are probably others that perform that function.
 
Hi, I am trying to set up a pre-market scan

input priceType = PriceType.bid;

plot bidPrice = close(priceType = priceType) > high;

(on daily)

If I write high the scan doesn't show anything

if I write high[1] it shows me the high from 2 days ago

Any idea?

Thanks for the help!
 
Mobius Study: Plots Gap-Up that has NOT been filled
Mobius states:
Pay attention to the notes in the study header. THIS IS A CHART STUDY WITH SPECIFIC INSTRUCTIONS ON HOW TO USE IT IN THE SCANNER
Ruby:
# Gap_High_Is_True Study
# Mobius
# Study Plots Gap-Up that has NOT been filled.
# V01.04.06.2022
# Note: Study Name: Gap_High_Is_True
# Note: Scan Code: Gap_High_Is_True() is true
# Note: Changing default value for percentGap after scan is written will NOT change the percentGap value in the scanner unless you resave the scan code after changeing the percentGap value. Scan Name should reflect any value other than the default value.

input percentGap = 1.00;

def p = percentGap / 100;
def gapH = if(low > high[1] * (1+ p), high[1], gapH[1]);
def state = {default init, isTrue, isFalse};
def extreme;
def gap;
def isT;

switch (state[1]) {
case init:
    state = state.isTrue;
    isT = low > gapH;
    extreme = low;
    gap = gapH;
case isFalse:
    if (gap[1] > low)
    then {
        state = state.isTrue;
        isT = low < gapH;
        extreme = low;
        gap = double.nan;
    } else {
        state = state.isFalse;
        if (gapH > extreme[1])
        then {
            extreme = low;
        } else {
            extreme = extreme[1];
        }
        gap = gapH;
        isT = isT[1];
    }
case isTrue:
    if (gap[1] < low)
    then {
        state = state.isFalse;
        extreme = low;
        gap = extreme[1];
        isT = isT[1];
    } else {
        state = state.isTrue;
        if (gapH < extreme[1])
        then {
            extreme = low;
        } else {
            extreme = extreme[1];
        }
        gap = max(gapH, 0);
        isT = 0;
    }
}
plot gapIsTrue = if gap and isT then gap else double.nan;
     gapIsTrue.SetPaintingStrategy(PaintingStrategy.POINTS);
     gapIsTrue.SetDefaultColor(GetColor(5));
# End Study Gap Up Is True
 
is there any way to have the box extended until future interactions with price? i see that the box only extends till EOD.
Also, it doesnt seem to work on the daily chart for me.
did you have any luck?
I'm looking for an indicator that will draw an extended line of any unfilled gaps until price actually fills the gap
 
Hello, I trade futures ES and NQ and have made the changes to the time 1800 (open) and 1700 (close) but am unable to find any gaps on my charts in any timeframe. Kindly help.

So what's the right method to do?
 
Last edited by a moderator:
Can someone show me how to add an input where I can choose only gaps up or down by X percent? Thank you!

Plot Data = open < close[1];
data.setpaintingstrategy(PaintingStrategy.BOOLEAN_ARROW_DOWN);
plot data2 = open > close[1];
data2.setpaintingstrategy(PaintingStrategy.BOOLEAN_ARROW_UP);
data.AssignValueColor(GetColor(5));
data2.assignValueColor(color.dark_green);
data.setlineWeight(1);
data2.setlineweight(1);
 
Can someone show me how to add an input where I can choose only gaps up or down by X percent? Thank you!

Plot Data = open < close[1];
data.setpaintingstrategy(PaintingStrategy.BOOLEAN_ARROW_DOWN);
plot data2 = open > close[1];
data2.setpaintingstrategy(PaintingStrategy.BOOLEAN_ARROW_UP);
data.AssignValueColor(GetColor(5));
data2.assignValueColor(color.dark_green);
data.setlineWeight(1);
data2.setlineweight(1);

can choose to show , just up or just down arrows, or both.

take a look at NVDA day chart, quite a few arrows , with min set to 3%.
can show a test bubble with gap amount and percent

Ruby:
# choose_gap_updown_0b

input gap_type = { up, down , default both };
def gap_t;
switch (gap_type) {
case up:
  gap_t = 1;
case down:
  gap_t = -1;
case both:
  gap_t = 0;
}

input gap_min_percent = 3.0;
addlabel(1, "min gap % : " + gap_min_percent, color.yellow);

def gap = (open - close[1]);
def gapper = round( 100 * gap / close[1], 1);
def gap_ok = (absvalue(gapper) >= gap_min_percent);

Plot zdwn = (gap < 0 and gap_t != 1 and gap_ok);
zdwn.setpaintingstrategy(PaintingStrategy.BOOLEAN_ARROW_DOWN);
zdwn.AssignValueColor(color.dark_red);
zdwn.setlineWeight(3);

plot zup = (gap > 0 and gap_t != -1 and gap_ok);
zup.setpaintingstrategy(PaintingStrategy.BOOLEAN_ARROW_UP);
zup.assignValueColor(color.dark_green);
zup.setlineweight(3);

#-----------------------------------

input test1 = no;
addchartbubble(test1, low*0.97,
gap + " g\n" +
gapper + " %\n" +
gap_ok + " ok"
, (if gap_ok then color.yellow else color.gray), no);
#
 
@CHOZEN Maybe this will work...GapFill_TS

By popular request, here is a study that will display a gap opening and it’s 50% fill line. The plot will dynamically collapse as the gap is filled. It will work on any intraday chart timeframe, 24 hours or regular trading hours so long as the two affected trading days are showing. (Edit: If you would like the % Gap Filled box in the upper left, uncomment out the last line of code by removing the #)



Rich (BB code):
#- TS_GapFill
#- http://www.thinkscripter.com
#- [email protected]
#- Last Update 28 Jan 2010

input marketOpenTime = 0930;

input marketCloseTime = 1615;

def yesterdaysClose = close(period = "DAY")[1];

def secondsFromOpen =  secondsFromTime(marketOpenTime);

def secondsTillClose = secondsTillTime(marketCloseTime);

def marketOpen = if secondsFromOpen >= 0 and secondsTillClose >= 0 then 1 else 0;

rec regularHoursOpen = if (secondsFromOpen >= 0 and secondsFromOpen[1] < 0) or

(getDay() != getDay()[1]) then open else regularHoursOpen[1];

def newDay = if getDay() != getDay()[1] then 1 else 0;

rec regHoursHigh = if newDay then high else if marketOpen then

if high > regHoursHigh[1] then high else regHoursHigh[1] else high;

rec regHoursLow = if newDay then low else if marketOpen then

if low < regHoursLow[1] then low else regHoursLow[1] else low;

def yc = if marketOpen then yesterdaysClose else double.nan;

def o = if marketOpen then regularHoursOpen else double.nan;

def hg = o + (yc - o) / 2;

def gapUp = if yc < o then 1 else 0;

def gapDown = if yc > o then 1 else 0;

def gapRemaining = if gapUp then

Max(regHoursLow - yc, 0) else

if gapDown then Max(yc - regHoursHigh, 0) else 0;

def percentRemaining = 100 * gapRemaining / AbsValue(yc - o);

def gapFilled = if percentRemaining == 0 then 1 else 0;

def halfGapFilled = if percentRemaining <= 50 then 1 else 0;

plot gH = if (gapUp and !gapFilled and marketOpen and !newDay[-1])

then regHoursLow else if (gapDown and !gapFilled and marketOpen and !newDay[-1])

then yc else double.nan;

plot gL = if (gapUp and !gapFilled and marketOpen and !newDay[-1])

then yc else if (gapDown and !gapFilled and marketOpen and !newDay[-1])

then regHoursHigh else double.nan;

plot hGF = if !gapFilled and !halfGapFilled and marketOpen and !newDay[-1]

then hg else double.nan;

gH.SetPaintingStrategy(paintingStrategy.DaSHES);

gH.AssignValueColor(if gapDown then color.darK_red else color.dark_green);

gL.SetPaintingStrategy(paintingStrategy.DASHES);

gL.AssignValueColor(if gapDown then color.darK_red else color.dark_green);

hGF.setStyle(curve.LONG_DASH);

hGF.SetDefaultColor(color.dark_gray);

gH.hideBubble();

gL.hideBubble();

hgF.hideBubble();

AddCloud(gH, gL, color.gray, color.gray);

#AddChartLabel(gapUp or gapDown, concat(percentRemaining, " % Gap Remaining"), color.white);

#end
Can you please add the range of the top and bottom number .Example the top is 450 and bottom is 445. Thanks alot
 
This indicator will alert you when there is a gap fill on the daily chart by means of a red or green arrow depending on the overall direction of stock.
You should already assume this should be used on the daily chart.

# chatGPT Gap Fill Indicator for Thinkorswim

# Inputs
input gapThreshold = 0.2; # Minimum percentage of the previous day's range to consider a gap (modify as per your preference)

# Calculate gap fill
def previousClose = close(period = AggregationPeriod.DAY)[1];
def gapUp = open > previousClose;
def gapDown = open < previousClose;
def gapSize = AbsValue(previousClose - open) / previousClose;

# Identify gap fills
def gapFilledUp = gapUp and low <= previousClose + (previousClose * gapThreshold);
def gapFilledDown = gapDown and high >= previousClose - (previousClose * gapThreshold);

# Plot gap fill signal
plot GapFillUp = if gapFilledUp then 1 else Double.NaN;
GapFillUp.SetPaintingStrategy(PaintingStrategy.BOOLEAN_ARROW_UP);
GapFillUp.AssignValueColor(Color.GREEN);
GapFillUp.SetDefaultColor(Color.GREEN);
GapFillUp.SetLineWeight(2);
GapFillUp.SetHiding(!gapFilledUp);

plot GapFillDown = if gapFilledDown then -1 else Double.NaN;
GapFillDown.SetPaintingStrategy(PaintingStrategy.BOOLEAN_ARROW_DOWN);
GapFillDown.AssignValueColor(Color.RED);
GapFillDown.SetDefaultColor(Color.RED);
GapFillDown.SetLineWeight(2);
GapFillDown.SetHiding(!gapFilledDown);

# Display text
AddLabel(gapFilledUp, "Gap Fill", Color.GREEN);
AddLabel(gapFilledDown, "Gap Fill", Color.RED);
 
Last edited by a moderator:
This indicator will overlay potential gaps on your chart. Highlighted so it's easier to see as the stock gap up, gap down, or filling the gap.

View attachment 4286

thinkScript Code

Rich (BB code):
# TS_GapFill
# [www.thinkscripter.com]
# [email protected]
# Last Update 28 Jan 2010

input marketOpenTime = 0930;
input marketCloseTime = 1615;

def yesterdaysClose = close(period = "DAY" )[1];

def secondsFromOpen =  secondsFromTime(marketOpenTime);
def secondsTillClose = secondsTillTime(marketCloseTime);
def marketOpen = if secondsFromOpen >= 0 and secondsTillClose >= 0 then 1 else 0;

rec regularHoursOpen = if (secondsFromOpen >= 0 and secondsFromOpen[1] < 0) or
(getDay() != getDay()[1]) then open else regularHoursOpen[1];

def newDay = if getDay() != getDay()[1] then 1 else 0;

rec regHoursHigh = if newDay then high else if marketOpen then
if high > regHoursHigh[1] then high else regHoursHigh[1] else high;
rec regHoursLow = if newDay then low else if marketOpen then
if low < regHoursLow[1] then low else regHoursLow[1] else low;

def yc = if marketOpen then yesterdaysClose else double.nan;
def o = if marketOpen then regularHoursOpen else double.nan;
def hg = o + (yc - o) / 2;

def gapUp = if yc < o then 1 else 0;
def gapDown = if yc > o then 1 else 0;

def gapRemaining = if gapUp then
Max(regHoursLow - yc, 0) else
if gapDown then Max(yc - regHoursHigh, 0) else 0;

def percentRemaining = 100 * gapRemaining / AbsValue(yc - o);
def gapFilled = if percentRemaining == 0 then 1 else 0;
def halfGapFilled = if percentRemaining <= 50 then 1 else 0;

plot gH = if (gapUp and !gapFilled and marketOpen and !newDay[-1])
then regHoursLow else if (gapDown and !gapFilled and marketOpen and !newDay[-1])
then yc else double.nan;
plot gL = if (gapUp and !gapFilled and marketOpen and !newDay[-1])
then yc else if (gapDown and !gapFilled and marketOpen and !newDay[-1])
then regHoursHigh else double.nan;
plot hGF = if !gapFilled and !halfGapFilled and marketOpen and !newDay[-1]
then hg else double.nan;

gH.SetPaintingStrategy(paintingStrategy.DaSHES);
gH.AssignValueColor(if gapDown then color.darK_red else color.dark_green);
gL.SetPaintingStrategy(paintingStrategy.DASHES);
gL.AssignValueColor(if gapDown then color.darK_red else color.dark_green);
hGF.setStyle(curve.LONG_DASH);
hGF.SetDefaultColor(color.dark_gray);
gH.hideBubble();
gL.hideBubble();
hgF.hideBubble();

AddCloud(gH, gL, color.violet, color.violet);
#AddChartLabel(gapUp or gapDown, concat(percentRemaining, " % Gap Remaining" ), color.white);

Shareable Link

https://tos.mx/ujmdv8

Is there any way to modify this script so that it is based on gap from the previous day's RTH high or low, rather than the previous day's close? I personally find gaps on this basis to be more useful as inflection points the next day, especially in futures. Thank you!
 
Is there any way to modify this script so that it is based on gap from the previous day's RTH high or low, rather than the previous day's close? I personally find gaps on this basis to be more useful as inflection points the next day, especially in futures. Thank you!
change this:
def yesterdaysClose = close(period = "DAY" )[1];
to this:
def yesterdaysClose = high(period = "DAY" )[1] or low(period = "DAY" )[1];
 

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