# ChatGPT For ThinkOrSwim

#### MerryDay

Staff member
Staff
VIP
This is what chatGPT says about itself:

"Hello there! I am ChatGPT, your AI code-generating companion! While I do a pretty good job with definitions, I could use a little extra help with my syntax. You see, I might stumble a bit when it comes to creating functions, and sometimes I might even invent some on the fly. And I have to admit, generating output can be a bit of a difficulty for me."

We have a simple request:

We ask that you provide the words used to generate the chatGPT code.
We need this as a vital clue of what the script is supposed to be doing.
And we are curious how well it coverts from a description and how you described the problem.

Last edited:

#### Splinter

##### Member
VIP
I found this pretty fascinating as AI is starting to get more prevalent. Just to preface this, I'm not a coder by any stretch so my knowledge is limited in this respect to Thinkscript/Pinescript. I had input the Pinescript code (first block of code) into Chat GPT and asked it to convert it to Thinkscript which is the second block of code below.
I did try the code and it showed some errors. I was curious if it was way off or this could be an easier way to do conversions.
Just wanted to lighten the load for all that help us out here.
Website: Open AI

Code:
``````// This work is licensed under a Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) https://creativecommons.org/licenses/by-nc-sa/4.0/

//@version=5
indicator("Signal Moving Average [LuxAlgo]", overlay = true)
//------------------------------------------------------------------------------
//Settings
//-----------------------------------------------------------------------------{
length = input(50)

src = input(close)

//------------------------------------------------------------------------------
//Signal moving average
//-----------------------------------------------------------------------------{
var ma = 0.
var os = 0.

target = ta.sma(src, length)
abs_diff = math.abs(target - target[1])

r2 = math.pow(ta.correlation(close, bar_index, length), 2)

os := r2 > 0.5 ? math.sign(src[1] - target[1]) : os

ma := r2 > 0.5 ? r2 * target + (1 - r2) * nz(ma[1], target)
: ma[1] - abs_diff * os

//-----------------------------------------------------------------------------}
//Plots
//-----------------------------------------------------------------------------{
plot0 = plot(src, display = display.none, editable = false)

css = os == 1 ? #0cb51a : #ff1100
plot1 = plot(ma, 'Signal MA'
, css)

fill_css = src > ma ? color.new(#0cb51a, 80) : color.new(#ff1100, 80)
fill(plot0, plot1, fill_css, 'Fill')

//-----------------------------------------------------------------------------}``````

Results from Chat GPT:
Code:
``````input length = 50;
input src = close;

def ma;
def os;

def target = SimpleMovingAvg(src, length);
def abs_diff = AbsValue(target - target[1]);
def bar = BarNumber();

def r2 = Power(Correlation(src, bar, length), 2);

def osCond = if r2 > 0.5 then Sign(src[1] - target[1]) else os;

def oc = osCond;
oc.AssignValueColor(if osCond == 1 then osCond else Double.NaN, color.green, color.red);

def nz = if IsNaN(ma[1]) then target else ma[1];

def maCond = if r2 > 0.5 then r2 * target + (1 - r2) * nz else ma[1] - abs_diff * os;

plot srcPlot = src;
plot signalMA = maCond;
AddCloud(if src > ma then src else Double.NaN, color.light_green, color.light_red);``````

#### Nomak

##### Member
2019 Donor
VIP
I asked it to do a couple simple things. There are errors but it does explain everything for learning.

#### vmalhotra13

##### New member
Thanks for the information.

@Splinter is Chat GPT a free tool. Could you please share the URL

#### halcyonguy

##### Well-known member
VIP
Thanks for the information.

@Splinter is Chat GPT a free tool. Could you please share the URL

#### Paul22

##### New member
I asked ChatGPT to write a code that could identify what core sector etf is out performing and what one is underperforming. This is what I got. The code loaded without errors, but there was no functional input. Can anyone make this code work?

Sector performance script

# # Sources:

# https://siblisresearch.com/data/us-sector-weightings/

# https://seekingalpha.com/etfs-and-funds/etf-tables/sectors

# https://www.spglobal.com/spdji/en/indices/equity/sp-500/#data

# debug

declare lower;

declare once_per_bar;

input open_time = 930;

input ConsumerStaples = 5.88; #XLP

input Utilities = 2.5; #XLU

input Communications = 10.16; #XLC

input Financials = 10.69; #XLF

input Materials = 2.56; #XLB

input Industrials = 7.77; #XLI

input Energy = 2.67; #XLE

input RealEstate = 2.77; #XLRE

input HealthCare = 13.29; #XLV

input InformationTechnology = 29.17; #XLK

input ConsumerDiscretionary = 12.54; #XLY

input sticker = "SPX";

def SectorCount = 11;

def NewDay = SecondsFromTime(open_time) < SecondsFromTime(open_time)[1];

def xlkWeight = InformationTechnology;

def xlvWeight = HealthCare;

def xlyWeight = ConsumerDiscretionary;

def xlfWeight = Financials;

def xlcWeight = Communications;

def xliWeight = Industrials;

def xlpWeight = ConsumerStaples;

def xleWeight = Energy;

def xlreWeight = RealEstate;

def xlbWeight = Materials;

def xluWeight = Utilities;

def xlk = close("XLK");

def xlv = close("XLV");

def xly = close("XLY");

def xlf = close("XLF");

def xlc = close("XLC");

def xli = close("XLI");

def xlp = close("XLP");

def xle = close("XLE");

def xlre = close("XLRE");

def xlb = close("XLB");

def xlu = close("XLU");

def xlkprice = open("XLK");

def xlvprice = open("XLV");

def xlyprice = open("XLY");

def xlfprice = open("XLF");

def xlcprice = open("XLC");

def xliprice = open("XLI");

def xlpprice = open("XLP");

def xleprice = open("XLE");

def xlreprice = open("XLRE");

def xlbprice = open("XLB");

def xluprice = open("XLU");

def xlkChangePercent = (xlk - xlkprice) / xlkprice;

def xlvChangePercent = (xlv - xlvprice) / xlvprice;

def xlyChangePercent = (xly - xlyprice) / xlyprice;

def xlfChangePercent = (xlf - xlfprice) / xlfprice;

def xlcChangePercent = (xlc - xlcprice) / xlcprice;

def xliChangePercent = (xli - xliprice)

#### MerryDay

Staff member
Staff
VIP
I asked ChatGPT to write a code that could identify what core sector etf is out performing and what one is underperforming. This is what I got. The code loaded without errors, but there was no functional input. Can anyone make this code work?
You "seem" to have lots of functional input.
Perhaps what you are trying to say, is that you don't have any functional output.

Output in ToS is defined by PLOT statements.
You are correct, you have no PLOT statements.

You did not say what you want your functional output to look like:
1. Are you trying to create chart output? If so what do you want to plot on your chart?
Something like this:​
or perhaps labels:​
2. Perhaps you are attempting to create a scanner.
What are the definitions of your filters?​

#### Paul22

##### New member
You "seem" to have lots of functional input.
Perhaps what you are trying to say, is that you don't have any functional output.

Output in ToS is defined by PLOT statements.
You are correct, you have no PLOT statements.

You did not say what you want your functional output to look like:
1. Are you trying to create chart output? If so what do you want to plot on your chart?
Something like this:​
or perhaps labels:​
2. Perhaps you are attempting to create a scanner.
What are the definitions of your filters?​
Thanks for the reply, I was looking for something that could give me what sector is out performing, and under performing in real time, on any timeframe. I went to the links you gave me and copied the scripts. I’ll try them out this week. I was also hoping that ChatGPT could write a functional script for me, since I can’t code myself. My hats off to all of you on this site who can. Your much appreciated

#### JoeDV

##### Active member
VIP
Something like this:

That chart made me smile. It actually looks like many of the setups I've seen over the years. .

#### earnon

##### New member
Hello kind forum. I am trying to write my first thinkscript and got the code from ChatGPT after describing what I wanted. Yet pasting it into the thinkScript editor gives me an error I don't know how to fix. My wife is a software engineer who is trying to assist and she's a little stumped as well. She suggested finding a forum of thinkScript experts so here I am.

I'm trying to write a study which I want to add as a column to a watchlist. The objective is to calculate the CAGR from a particular date that I can change. Here is the code:

Python:
``````input startDate = "2010-01-01";

def start = startDate;
def end = GetYYYYMMDD();
def days = DaysBetween(start, end);
def years = days / 365.0;
def lowPrice = low(start, start + 1);
def closePrice = close;

def cagr = if (closePrice / lowPrice > 0) then (closePrice / lowPrice)^(1/years) - 1 else 0;

def lastCAGR = if IsNaN(cagr[1]) then 0 else cagr[1];

def color = if lastCAGR >= 0 then Color.GREEN else Color.RED;

AddLabel(yes, "CAGR: " + Round(lastCAGR, 10), color = color);

def CalculateCAGR = lastCAGR;

RTD("tos.rtd", "LastCAGR", CalculateCAGR);``````

The error message in the editor is "Invalid statement: def at 10:1". That's the def cagr . . . line
My wife has tried rewriting this various ways but we're stuck! Any pointers would be so much appreciated. Thanks!

#### halcyonguy

##### Well-known member
VIP
Hello kind forum. I am trying to write my first thinkscript and got the code from ChatGPT after describing what I wanted. Yet pasting it into the thinkScript editor gives me an error I don't know how to fix. My wife is a software engineer who is trying to assist and she's a little stumped as well. She suggested finding a forum of thinkScript experts so here I am.

I'm trying to write a study which I want to add as a column to a watchlist. The objective is to calculate the CAGR from a particular date that I can change. Here is the code:

Python:
``````input startDate = "2010-01-01";

def start = startDate;
def end = GetYYYYMMDD();
def days = DaysBetween(start, end);
def years = days / 365.0;
def lowPrice = low(start, start + 1);
def closePrice = close;

def cagr = if (closePrice / lowPrice > 0) then (closePrice / lowPrice)^(1/years) - 1 else 0;

def lastCAGR = if IsNaN(cagr[1]) then 0 else cagr[1];

def color = if lastCAGR >= 0 then Color.GREEN else Color.RED;

AddLabel(yes, "CAGR: " + Round(lastCAGR, 10), color = color);

def CalculateCAGR = lastCAGR;

RTD("tos.rtd", "LastCAGR", CalculateCAGR);``````

The error message in the editor is "Invalid statement: def at 10:1". That's the def cagr . . . line
My wife has tried rewriting this various ways but we're stuck! Any pointers would be so much appreciated. Thanks!

i started typing my response on my cell after a quick glance....
i should have waited and loaded this code, there are several things wrong...

please make another post and explain what a cagr is.

here are some fixes, but there are too many things wrong to spend any more time on this before i understand the task.
thinkscript won't highlight every error at first. it may find one and highlight it red. after you fix that, another could pop up. then another and....

-----

this is wrong. dashed date text won't be recognized.
input startDate = "2010-01-01";

should be a number , in yyyymmdd format.
input startDate = 20100101;

and make sure it is a date that has data... not a weekend.

---------

this is wrong
def lowPrice = low(start, start + 1);

do you want to find the lowest of 2 values?
could use min(a,b)
to read a value on a specific date, will require an if then to compare dates then assign low to a variable.

--------

the color formula is wrong.
generally only numbers can be assigned with def. there is an exception with bracketed data. def x = { default a, b, c};

def color = if lastCAGR >= 0 then Color.GREEN else Color.RED;

have to put the color formula inside the label

AddLabel(yes, "CAGR: " + Round(lastCAGR, 10), (if lastCAGR >= 0 then Color.GREEN else Color.RED));

---------
the last line is not thinkscript.
rtd() is an excel function.

here is a link to a function in the online manual. click on 3 lines top left and search for others
https://tlc.thinkorswim.com/center/reference/thinkScript/Functions/Date---Time/GetYYYYMMDD

in a column, use this to change the color of the cell
https://tlc.thinkorswim.com/center/reference/thinkScript/Functions/Look---Feel/AssignBackgroundColor

^ isn't valid, use power()
https://tlc.thinkorswim.com/center/reference/thinkScript/Functions/Math---Trig/Power

next time, search this site for your topic. good chance someone already thought of it

https://www.investopedia.com/terms/c/cagr.asp

--------------------
oh, and hello and welcome.
as you will find out, chatgpt is not all it's hyped up to be. it may be able to create small code snippets , but the user should have knowledge of the code.

Last edited:

#### JoseB

##### New member
VIP
I wanted to see if Chat GPT would create a study that alerted me once the price closed above the daily high OR below the daily low on the 5 minute chart. I wanted an orange arrow to point at the candle that closed above the daily high, or below the daily low. I asked Chat GPT to only plot this arrow after 10am. Here's the script/code it created for me. I'm getting error messages for "input color = createColor(255, 165, 0);" that's on the 3rd line and for the "if" that starts the 7th line. Any idea why?

Code:
``````input startTime = 1015;
input endTime = 1600;
input color = createColor(255, 165, 0);

def dayHigh = high(period = "day");
def dayLow = low(period = "day");

def barTime = secondsFromTime(timeOfDay());

if (barTime >= secondsFromTime(startTime) and barTime <= secondsFromTime(endTime)) {
plot ArrowAbove = if close > dayHigh and barNumber() != 0 then dayHigh else double.nan;
ArrowAbove.SetPaintingStrategy(PaintingStrategy.ARROW_UP);
ArrowAbove.SetLineWeight(2);
ArrowAbove.SetDefaultColor(color);

plot ArrowBelow = if close < dayLow and barNumber() != 0 then dayLow else double.nan;
ArrowBelow.SetPaintingStrategy(PaintingStrategy.ARROW_DOWN);
ArrowBelow.SetLineWeight(2);
ArrowBelow.SetDefaultColor(color);
}``````

#### earnon

##### New member
i started typing my response on my cell after a quick glance....
i should have waited and loaded this code, there are several things wrong...

please make another post and explain what a cagr is.

here are some fixes, but there are too many things wrong to spend any more time on this before i understand the task.
thinkscript won't highlight every error at first. it may find one and highlight it red. after you fix that, another could pop up. then another and....

-----

this is wrong. dashed date text won't be recognized.
input startDate = "2010-01-01";

should be a number , in yyyymmdd format.
input startDate = 20100101;

and make sure it is a date that has data... not a weekend.

---------

this is wrong
def lowPrice = low(start, start + 1);

do you want to find the lowest of 2 values?
could use min(a,b)
to read a value on a specific date, will require an if then to compare dates then assign low to a variable.

--------

the color formula is wrong.
generally only numbers can be assigned with def. there is an exception with bracketed data. def x = { default a, b, c};

def color = if lastCAGR >= 0 then Color.GREEN else Color.RED;

have to put the color formula inside the label

AddLabel(yes, "CAGR: " + Round(lastCAGR, 10), (if lastCAGR >= 0 then Color.GREEN else Color.RED));

---------
the last line is not thinkscript.
rtd() is an excel function.

here is a link to a function in the online manual. click on 3 lines top left and search for others
https://tlc.thinkorswim.com/center/reference/thinkScript/Functions/Date---Time/GetYYYYMMDD

in a column, use this to change the color of the cell
https://tlc.thinkorswim.com/center/reference/thinkScript/Functions/Look---Feel/AssignBackgroundColor

^ isn't valid, use power()
https://tlc.thinkorswim.com/center/reference/thinkScript/Functions/Math---Trig/Power

next time, search this site for your topic. good chance someone already thought of it

https://www.investopedia.com/terms/c/cagr.asp

--------------------
oh, and hello and welcome.
as you will find out, chatgpt is not all it's hyped up to be. it may be able to create small code snippets , but the user should have knowledge of the code.

Thank you so, so much for taking the time to provide such great feedback! I knew that code it might be a .
i started typing my response on my cell after a quick glance....
i should have waited and loaded this code, there are several things wrong...

please make another post and explain what a cagr is.

here are some fixes, but there are too many things wrong to spend any more time on this before i understand the task.
thinkscript won't highlight every error at first. it may find one and highlight it red. after you fix that, another could pop up. then another and....

-----

this is wrong. dashed date text won't be recognized.
input startDate = "2010-01-01";

should be a number , in yyyymmdd format.
input startDate = 20100101;

and make sure it is a date that has data... not a weekend.

---------

this is wrong
def lowPrice = low(start, start + 1);

do you want to find the lowest of 2 values?
could use min(a,b)
to read a value on a specific date, will require an if then to compare dates then assign low to a variable.

--------

the color formula is wrong.
generally only numbers can be assigned with def. there is an exception with bracketed data. def x = { default a, b, c};

def color = if lastCAGR >= 0 then Color.GREEN else Color.RED;

have to put the color formula inside the label

AddLabel(yes, "CAGR: " + Round(lastCAGR, 10), (if lastCAGR >= 0 then Color.GREEN else Color.RED));

---------
the last line is not thinkscript.
rtd() is an excel function.

here is a link to a function in the online manual. click on 3 lines top left and search for others
https://tlc.thinkorswim.com/center/reference/thinkScript/Functions/Date---Time/GetYYYYMMDD

in a column, use this to change the color of the cell
https://tlc.thinkorswim.com/center/reference/thinkScript/Functions/Look---Feel/AssignBackgroundColor

^ isn't valid, use power()
https://tlc.thinkorswim.com/center/reference/thinkScript/Functions/Math---Trig/Power

next time, search this site for your topic. good chance someone already thought of it

https://www.investopedia.com/terms/c/cagr.asp

--------------------
oh, and hello and welcome.
as you will find out, chatgpt is not all it's hyped up to be. it may be able to create small code snippets , but the user should have knowledge of the code.

Thank you so, so very much for taking the time to dissect this! Your answers definitely point me to all the areas I need to study further. I admit, as a non-developer there are basic foundational principles I just don't have yet and your answer shows me what to dig further into. Thank you so much! I did try searching initially but probably didn't know what words to use and didn't turn up anything that looked similar. Will continue to improve! Thanks again.

#### jdnincorp10

##### New member
I appreciate any help, Im just trying to create a super simple script that counts 1 day back and finds any 1 minute candles that have a range of more than \$1.99 (for example, say there were 16 one minute candles with a range of more than \$1.99, then the result SHOULD show as "16"). But instead its only showing the result as "YES" in red, and thats only if I hover my mouse over it. If I move my mouse away, it just says "NO".

]Im super new to thinkscript and am hoping there is a veteran who can help me point out what im doing wrong, cause as far as i know, the syntax and everything should be fine right?

Last edited by a moderator:

#### halcyonguy

##### Well-known member
VIP
I appreciate any help, Im just trying to create a super simple script that counts 1 day back and finds any 1 minute candles that have a range of more than \$1.99 (for example, say there were 16 one minute candles with a range of more than \$1.99, then the result SHOULD show as "16"). But instead its only showing the result as "YES" in red, and thats only if I hover my mouse over it. If I move my mouse away, it just says "NO".

]Im super new to thinkscript and am hoping there is a veteran who can help me point out what im doing wrong, cause as far as i know, the syntax and everything should be fine right?

in the future, don't post images of code. (unless you are showing some red highlighted errors)
please post the code , as text, in a code window.
in a new post, click on </> in the header.

compare bar heights to, dollars or a percent

if height is > than the minimum, a cyan arrow is drawn.
counts the big ranges each day and display the count in a bubble on last bar.

Code:
``````# min_bar_ht_00

def na = double.nan;
def bn = barnumber();

def newday = getday() != getday()[1];
def dayend = getday() != getday()[-1];

def rng = (high - low);
def avg = average(close, 10);

input min_rng_dollar = 1.99;
input min_rng_percent = 1.3;

def minrng;
input range_type = { default dollar , percent};
switch (range_type) {
case dollar:
minrng = min_rng_dollar;
case percent:
minrng = avg * (min_rng_percent/100);
}

def rngx = (rng > minrng);

def rngxcnt = if bn == 1 then 0
else if newday and rngx then 1
else if newday then 0
else if rngx then rngxcnt[1] + 1
else rngxcnt[1];

plot z = if rngx then low*0.999 else na;
z.SetPaintingStrategy(PaintingStrategy.ARROW_UP);
z.SetDefaultColor(Color.cyan);
z.setlineweight(2);
z.hidebubble();

input rng_cnt = yes;
rngxcnt
, (if rngxcnt > 0 then color.yellow else color.gray), yes);

input test2 = no;
(100 * rng / close)
, color.yellow, no);
#``````

Last edited by a moderator:

#### TDTOS

##### Member
Is there a way to get A.I. to write custom code using thinkscript language?

#### halcyonguy

##### Well-known member
VIP
Is there a way to get A.I. to write custom code using thinkscript language?

from a few examples i have seen,
yes and no.
it seems to be able to create a program with some valid thinkscript functions.
but tends to include invalid functions also.
so, the output will probably not run as is, it will need fixing.
there is a saying, garbage in, garbage out. the more detailed the statement is, that is fed into AI, the better chances of something useful coming out.

#### songvicobac

##### New member

input price = close;
input length = 14;
input overbought = 70;
input oversold = 30;

def diff = price - price[1];
def up = if diff > 0 then diff else 0;
def down = if diff < 0 then -diff else 0;
def avgUp = ExpAverage(up, length);
def avgDown = ExpAverage(down, length);
def rsi = 100 - (100 / (1 + avgUp / avgDown));

plot rsiLine = rsi;
rsiLine.SetDefaultColor(GetColor(5));
rsiLine.SetLineWeight(2);

def bullishDivergence = Cross(rsi, oversold) and price > price[1];
def bearishDivergence = Cross(overbought, rsi) and price < price[1];

plot bullish = bullishDivergence;
bullish.SetPaintingStrategy(PaintingStrategy.BOOLEAN_ARROW_UP);
bullish.SetDefaultColor(GetColor(6));
bullish.SetLineWeight(3);

plot bearish = bearishDivergence;
bearish.SetPaintingStrategy(PaintingStrategy.BOOLEAN_ARROW_DOWN);
bearish.SetDefaultColor(GetColor(1));
bearish.SetLineWeight(3);

#### halcyonguy

##### Well-known member
VIP

input price = close;
input length = 14;
input overbought = 70;
input oversold = 30;

def diff = price - price[1];
def up = if diff > 0 then diff else 0;
def down = if diff < 0 then -diff else 0;
def avgUp = ExpAverage(up, length);
def avgDown = ExpAverage(down, length);
def rsi = 100 - (100 / (1 + avgUp / avgDown));

plot rsiLine = rsi;
rsiLine.SetDefaultColor(GetColor(5));
rsiLine.SetLineWeight(2);

def bullishDivergence = Cross(rsi, oversold) and price > price[1];
def bearishDivergence = Cross(overbought, rsi) and price < price[1];

plot bullish = bullishDivergence;
bullish.SetPaintingStrategy(PaintingStrategy.BOOLEAN_ARROW_UP);
bullish.SetDefaultColor(GetColor(6));
bullish.SetLineWeight(3);

plot bearish = bearishDivergence;
bearish.SetPaintingStrategy(PaintingStrategy.BOOLEAN_ARROW_DOWN);
bearish.SetDefaultColor(GetColor(1));
bearish.SetLineWeight(3);

cross() isn't a valid function

i changed it to be a lower study

Code:
``````# chat_rsi_diverg_00

# post15

declare lower;

def na = double.nan;

#songvicobac
# #15

input price = close;
input length = 14;
input overbought = 70;
input oversold = 30;

def diff = price - price[1];
def up = if diff > 0 then diff else 0;
def down = if diff < 0 then -diff else 0;
def avgUp = ExpAverage(up, length);
def avgDown = ExpAverage(down, length);
def rsi = 100 - (100 / (1 + avgUp / avgDown));

plot rsiLine = rsi;
rsiLine.SetDefaultColor(GetColor(5));
rsiLine.SetLineWeight(2);

def bullishDivergence = Crosses(rsi, oversold) and price > price[1];
def bearishDivergence = Crosses(overbought, rsi) and price < price[1];

#plot bullish = bullishDivergence;
#bullish.SetPaintingStrategy(PaintingStrategy.BOOLEAN_ARROW_UP);
plot bullish = if bullishDivergence then rsi else na;
bullish.SetPaintingStrategy(PaintingStrategy.ARROW_UP);
bullish.SetDefaultColor(GetColor(6));
bullish.SetLineWeight(3);

#plot bearish = bearishDivergence;
#bearish.SetPaintingStrategy(PaintingStrategy.BOOLEAN_ARROW_DOWN);

plot bearish = if bearishDivergence then rsi else na;
bearish.SetPaintingStrategy(PaintingStrategy.ARROW_DOWN);
bearish.SetDefaultColor(GetColor(1));
bearish.SetLineWeight(3);

#``````

crosses
https://tlc.thinkorswim.com/center/reference/thinkScript/Reserved-Words/crosses

87k+ Posts
235 Online

## The Market Trading Game Changer

Join 2,500+ subscribers inside the useThinkScript VIP Membership Club
• Exclusive indicators
• Proven strategies & setups
• Private Discord community
• Exclusive members-only content
• 1 full year of unlimited support

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?