Holy Grail ADX Trading Setup for ThinkorSwim

rad14733

Well-known member
VIP
@svencool @BenTen has been generous enough to help to this point but it really is up to you to learn Thinkscript rather than ask question after question... You can't break anything by trying... Make an effort and we're more than willing to help you learn rather than just handing out code and answers... If you get stumped, we're here... It sounds like you're willing and that's a good thing... We had a spell when we were absolutely bombarded with new members flooding the forums with requests without so much as an inkling of desire to learn... Give it a go... ;) (y)
 

BenTen

Administrative
Staff member
Staff
VIP
Lifetime
@svencool

ADX(14) is higher than 30

ADX(14) in this period is higher than ADX(14) in the last period

You can easily build these conditions without coding. Use the scanner's conditional wizard.

Here is an example:

TMgk8f5.png
 

svencool

Member
@svencool





You can easily build these conditions without coding. Use the scanner's conditional wizard.

Here is an example:

TMgk8f5.png
I did just that and scanned all symbols with no results. So I got with the guys at TD Ameritrade traders desk and they couldn't figure it out either. The left side I would guess is referring to the ADX of today and the right side is referring to the ADX 1 bar previous? Sorry for asking a stupid question!
 

svencool

Member
@svencool @BenTen has been generous enough to help to this point but it really is up to you to learn Thinkscript rather than ask question after question... You can't break anything by trying... Make an effort and we're more than willing to help you learn rather than just handing out code and answers... If you get stumped, we're here... It sounds like you're willing and that's a good thing... We had a spell when we were absolutely bombarded with new members flooding the forums with requests without so much as an inkling of desire to learn... Give it a go... ;) (y)
I spent over an hour playing with that conditional wizard yesterday and got no results. Heck even the traders desk at TD Ameritrade left me in the same spot I was after they took over my computer and couldn't figure it out. I have a few other scans I would like to build but they make reference to previous days and weeks before. Just figured if I seen one example that would have given me somewhere to build off of. I've only been a new member a few days so I would hope you wouldn't hold previous people bad habits against me!
 

MerryDay

Administrative
Staff member
Staff
VIP
Lifetime
@svencool When testing a strategy, break it down into its individual parts and then add them one at a time to determine where the issue crops up.

So I tested
ADX() is greater than ADX() from 1 bars ago found 1000 stocks

Then I tested
ADX() is greater than 30 and
ADX() is greater than ADX() from 1 bars ago
That cut the results down to less than 400 stocks. The pool is getting smaller.

Then I tested
high is greater than SimpleMovingAvg("length" = 20)."SMA" and
low is less than SimpleMovingAvg("length" = 20)."SMA"
(this is a butt-ugly filter and I didn't expect it to work)
AND
ADX() is greater than 30 and
ADX() is greater than ADX() from 1 bars ago

Good news, your scan does definitely work. However, at any one moment, not many stocks will meet your exacting filters as you have currently defined them.
80twlXb.png

Here is a shared link: http://tos.mx/HHXjQET
HTH
 
Last edited:

MerryDay

Administrative
Staff member
Staff
VIP
Lifetime
@svencool
Ruby:
# I still say that your filter shown below is ugly
high is greater than SimpleMovingAvg("length" = 20)."SMA" and
low is less than SimpleMovingAvg("length" = 20)."SMA"

# Personally I would replace it with:
close crosses above SimpleMovingAvg("length" = 20)."SMA"

The way you have it written it can be straddling the SMA on its way up or down and your results definitely have some down dogs.
Using my crossing above code narrowed the selection even more. Only one stock met all your conditions. BUT!!!! That stock is on its way up. Just IMHO.
 
Last edited:

svencool

Member
ADX() is greater than ADX() from 1 bars ago

80twlXb.png

Here is a shared link: http://tos.mx/HHXjQET
HTH
Thank you MerryDay! Seeing that 1 line "ADX() is greater than ADX() from 1 bars ago" helped for me. When trying to build this yesterday I was messing with the Within 1 Bar instead of using the offset. I just wanted to see if I could do it LOL. Whether it pulls up meaningful stocks really wasn't the main objective. Was I seen some scan criteria that I had read and wanted to see if I could build a scan for it. I've got less than 3 weeks with TOS and have a ton to learn. But this was the only place that I've come across that seemed like people helped everyone dealing with tos....
 

MerryDay

Administrative
Staff member
Staff
VIP
Lifetime
@svencool this forum is sooooo amazing there is a wealth of information and equally amazing people who give so unselfishly of their time and knowledge. You have already delved into the scanner. Use the search function in the top right-hand corner to find other scanning setups in the various threads. By comparing how posters were modifying the various fields available, I was able to slowly able to discern each of their purposes.

The TOS platform has its quirks but I won't leave because I would lose this place to learn from. You are correct this forum stands out and is head&shoulders above any other TOS-related site.
 

svencool

Member
You have already delved into the scanner. Use the search function in the top right-hand corner to find other scanning setups in the various threads. By comparing how posters were modifying the various fields available, I was able to slowly able to discern each of their purposes.

The TOS platform has its quirks but I won't leave because I would lose this place to learn from. You are correct this forum stands out and is head&shoulders above any other TOS-related site.
That's a good Idea I've been playing with the scanner for a few hours today and have learned a few things as well. I usually build something and then I go look at it in the condition wizard but them click over to the thinkScript Editor just to see how it was put together. Just trying to learn the basics and I will use the search function like you suggested. Thank you for helping!!!!
 

Griffin

New member
Well if you want "ultimate ADX/DMI" vwp, pullback entry indicator: I wrote one . Spend friggin 2 month polishing it to perfection . It is quite silly though even though its very accurate on trending stocks (over 95% accurate). ITs not hard to find pullback entry on trending stock. the trick is to find stock which will be trending (and not reverse/chop shortly)
here it is https://tos.mx/7X1yazr : guranteed to give perfect entry signals on trending stocks!
Any tips on how to use your indicator? Entry points, meaning of the various indicators, arrows, dots, lines? Thanks!
 

MerryDay

Administrative
Staff member
Staff
VIP
Lifetime
aDNj4Fl.png

@Griffin As @skynetgen stated, you can use any or all of the signals successfully in her study as long as that stock ends up TRENDING.
However, unless you have a crystal ball to predict that it is actually going to trend, as @skynetgen stated, this has limited use. When used on a stock that does not end up trending, there is potential for loss. That is why she wrote her post in frustration. She spent months on it and it doesn't have much potential.

This is why it is important to read the complete thread to get an understanding of how indicators work.
 
Last edited:

tos_user

New member
VIP
Hi,

This is modified only small code from original post of skynetgen user which is in thread https://usethinkscript.com/threads/holy-grail-adx-trading-setup-for-thinkorswim.618/

In lower panel of the below image there are green and orange arrows. I NEED HELP TO KEEP ONLY GREEN ARROWS AND TO REMOVE ORANGE ARROWS FROM LOWER PANEL.
Idea is to use this green arrow with "Dapbull" CYAN arrow shown in the skynetgen users indicator to identify trend.

Can someone please take a look.

dfPnuYy.jpg


Here is the code:
Ruby:
# Test_ADX_Bull
declare lower;

#Hint ADXCutoff: ADX cutoff treshold
input ADXCutoff = 20;
input DMILength = 6;
input DIRangeFilter=10;
input MaFastLength=9;

#DMI, ADX plots
def averageType = AverageType.WILDERS;
def hiDiff = high - high[1];
def loDiff = low[1] - low;

def plusDM = if hiDiff > loDiff and hiDiff > 0 then hiDiff else 0;
def minusDM = if loDiff > hiDiff and loDiff > 0 then loDiff else 0;

def ATR = MovingAverage(averageType, TrueRange(high, close, low), DMILength);
def "DI+" = 100 * MovingAverage(averageType, plusDM, DMILength) / ATR;
def "DI-" = 100 * MovingAverage(averageType, minusDM, DMILength) / ATR;
def DX = if ("DI+" + "DI-" > 0) then 100 * AbsValue("DI+" - "DI-") / ("DI+" + "DI-") else 0;
plot ADX = MovingAverage(averageType, DX, DMILength);


#adx cross plots
#pivots
def prange=2; #pivot range
def adxbull = ADX > lowest(ADX,prange)[1];
def adxbear = ADX < highest(ADX,prange)[1];
ADX.AssignValueColor(if adxbull then Color.BLUE else if adxbear then Color.DARK_ORANGE else Color.GRAY);
def ptrend=adx;
def adxPH= if isnan(ptrend[-1]) then 0 else lowest(ptrend,prange)[1] > ptrend and lowest(ptrend,prange)[-prange]> ptrend ;
def adxPL= if isnan(ptrend[-1]) then 0 else highest(ptrend,prange)[1] < ptrend and highest(ptrend,prange)[-prange]< ptrend ;
plot padxcross = if adxPH or adxPL then ADX else Double.NaN;
padxcross.SetPaintingStrategy(PaintingStrategy.POINTS);
padxcross.SetLineWeight(4);
padxcross.AssignValueColor( if adxPH then Color.DARK_GREEN else Color.DARK_RED);

plot adx_bull = ADX > lowest(ADX,prange)[1] and ADX[1] < lowest(ADX,prange)[2];
adx_bull.SetPaintingStrategy( PaintingStrategy.ARROW_UP);
adx_bull.AssignValueColor(if adx_bull > 0 then Color.GREEN else Color.ORANGE);
 
Last edited by a moderator:

MerryDay

Administrative
Staff member
Staff
VIP
Lifetime
@TOSuser
Ruby:
# Test_ADX_Bull
declare lower;

#Hint ADXCutoff: ADX cutoff treshold
input ADXCutoff = 20;
input DMILength = 6;
input DIRangeFilter=10;
input MaFastLength=9;

#DMI, ADX plots
def averageType = AverageType.WILDERS;
def hiDiff = high - high[1];
def loDiff = low[1] - low;

def plusDM = if hiDiff > loDiff and hiDiff > 0 then hiDiff else 0;
def minusDM = if loDiff > hiDiff and loDiff > 0 then loDiff else 0;

def ATR = MovingAverage(averageType, TrueRange(high, close, low), DMILength);
def "DI+" = 100 * MovingAverage(averageType, plusDM, DMILength) / ATR;
def "DI-" = 100 * MovingAverage(averageType, minusDM, DMILength) / ATR;
def DX = if ("DI+" + "DI-" > 0) then 100 * AbsValue("DI+" - "DI-") / ("DI+" + "DI-") else 0;
plot ADX = MovingAverage(averageType, DX, DMILength);


#adx cross plots
#pivots
def prange=2; #pivot range
def adxbull = ADX > lowest(ADX,prange)[1];
def adxbear = ADX < highest(ADX,prange)[1];
ADX.AssignValueColor(if adxbull then Color.BLUE else if adxbear then Color.DARK_ORANGE else Color.GRAY);
def ptrend=adx;
def adxPH= if isnan(ptrend[-1]) then 0 else lowest(ptrend,prange)[1] > ptrend and lowest(ptrend,prange)[-prange]> ptrend ;
def adxPL= if isnan(ptrend[-1]) then 0 else highest(ptrend,prange)[1] < ptrend and highest(ptrend,prange)[-prange]< ptrend ;
plot padxcross = if adxPH or adxPL then ADX else Double.NaN;
padxcross.SetPaintingStrategy(PaintingStrategy.POINTS);
padxcross.SetLineWeight(4);
padxcross.AssignValueColor( if adxPH then Color.DARK_GREEN else Color.DARK_RED);

def adx_bull = ADX > lowest(ADX,prange)[1] and ADX[1] < lowest(ADX,prange)[2];
plot greenarrow = if adx_bull > 0 then adx else double.NaN;
greenarrow.SetPaintingStrategy( PaintingStrategy.ARROW_UP);
greenarrow.SetDefaultColor(Color.GREEN);
Screenshot (101).png
 

cabe1332

Active member
aDNj4Fl.png

@Griffin As @skynetgen stated, you can use any or all of the signals successfully in her study as long as that stock ends up TRENDING.
However, unless you have a crystal ball to predict that it is actually going to trend, as @skynetgen stated, this has limited use. When used on a stock that does not end up trending, there is potential for loss. That is why she wrote her post in frustration. She spent months on it and it doesn't have much potential.

This is why it is important to read the complete thread to get an understanding of how indicators work.
@MerryDay I agree with you. IMO, ADX/DMI is a good indicator for trend strength, not entry/exit. ADX shows the strength of the trend UP or DOWN trend. It is best for anyone interested to search youtube for how this indicator best use.

From the scripts and codes I've gathered here, I've combined a lower ADX/DMI indicator and added additional labels that I feel I needed. I find it works best with 15min and 1hr timeframe with DMILength = 6; MaFastLength=9; DIRangeFilter=10; ADXCutoff = 25;. Screenshot below. Let me know if you would like the ADX/DMI script/code, not the workspace, and I can post it here. Good luck! @cabe1332
 
Last edited by a moderator:

SeeMoreGreen

New member
VIP
@MerryDay I agree with you. IMO, ADX/DMI is a good indicator for trend strength, not entry/exit. ADX shows the strength of the trend UP or DOWN trend. It is best for anyone interested to search youtube for how this indicator best use.

From the scripts and codes I've gathered here, I've combined a lower ADX/DMI indicator and added additional labels that I feel I needed. I find it works best with 15min and 1hr timeframe with DMILength = 6; MaFastLength=9; DIRangeFilter=10; ADXCutoff = 25;. Screenshot below. Let me know if you would like the ADX/DMI script/code, not the workspace, and I can post it here. Good luck! @cabe1332

4J6o7Aw.png


Yueqspu.png
Seen this in another thread, that indicator would be a lifesaver. Trying to maximize my day trading setups
 

cabe1332

Active member
Seen this in another thread, that indicator would be a lifesaver. Trying to maximize my day trading setups
Hi All, below is the script I've put together coming/learning from this site. As a Trend Trader and holding pos longer are profitable. The quick scalp is a bit stressful and requires leverage, which I don't have at this time. The script provides conditions and a quick glance before you decide on pos entry or exit. For simplicity, the colored ADXCutoff dots. Please watch some youtube clips to better used ADX/DMI indicators. It is a lifesaver. Good luck! @cabe1332
Ruby:
# ADX_DMI indicator
# cabe1332
# 20210814

# ADX code start
declare lower;

# You can modify ADX setting below to you liking

input ADXCutoff = 25;
input DMILength = 6;
input MaFastLength=9;
input DIRangeFilter=10;


#DMI, ADX plots
def averageType = AverageType.WILDERS;
def hiDiff = high - high[1];
def loDiff = low[1] - low;

def plusDM = if hiDiff > loDiff and hiDiff > 0 then hiDiff else 0;
def minusDM = if loDiff > hiDiff and loDiff > 0 then loDiff else 0;

def ATR = MovingAverage(averageType, TrueRange(high, close, low), DMILength);
def "DI+" = 100 * MovingAverage(averageType, plusDM, DMILength) / ATR;
def "DI-" = 100 * MovingAverage(averageType, minusDM, DMILength) / ATR;
def DX = if ("DI+" + "DI-" > 0) then 100 * AbsValue("DI+" - "DI-") / ("DI+" + "DI-") else 0;
plot ADX = MovingAverage(averageType, DX, DMILength);

#DIline - small diff = sideways
def DIrange = AbsValue(AbsValue("DI+")-AbsValue("DI-"));
#dirange.setPaintingStrategy(paintingStrategy.HISTOGRAM);
def DIok=DIRange>DIRangeFilter;

#adx filters
plot adxavg = MovingAverage(AverageType.SIMPLE, ADX, DMILength);
def ADXOk = ADX > ADXCutoff;# and adx>adxavg;

def DMICutBull = ("DI-" < ADXCutoff and "DI+" > ADXCutoff) or ("DI+" > ADX and "DI-" < ADX) ;
def DMICutBear = ("DI+" < ADXCutoff and "DI-" > ADXCutoff) or ("DI+" < ADX and "DI-" > ADX);

def dxcrossBull = if IsNaN(dxcrossBull[1]) then "DI+" > "DI-" #for init -what it is on first bar
else if "DI+" crosses above "DI-" then 1
else if dxcrossBull[1] > 0 and "DI+" > "DI-" then 1
else 0;
#plot dxXBull=dxCrossBull;
def dxcrossBear = if IsNaN(dxcrossBear[1]) then "DI-" > "DI+"
else if "DI+" crosses below "DI-" then 1
else if dxcrossBear[1] > 0 and "DI+" < "DI-" then 1
else 0 ;
#plot dxXBear=dxCrossBear;
#==========Pivots
def pivotprice=close;

#pivots per sami. changed logic for watchlist so there is no [-1]
def engbull= close>high[1] and low<=low[1];
def engbear= close<low[1] and high>=high[1];
def pivotHigh=(low[2] >low[1] and low>low[1] and close>pivotprice[1]) or engbull ;
def pivotLow=(high[2] <high[1] and high<high[1] and close<pivotprice[1]) or engbear;

def lastPH= if isnan(close[1]) then low else if PivotHigh then low[1] else LastPH[1];
def lastPL= if isnan(close[1]) then high else if PivotLow then high[1] else LastPL[1];

def breakout=if close> lastPL and close[1]<= lastPL then 1 else 0 ;
def breakdown= if close< lastPH and close[1]>= lastPH then 1 else 0;
#=============================

def signalbull = if dxcrossBull and ADXOk and DIOk then 1 else 0;
def signalbear = if dxcrossBear and ADXOk and DIOk then 1 else 0;

# ignore the signal if prevsignal was same direction and had higher DI
def signal = if signalbull then 1 else if signalbear then -1 else 0;

def prevSignal = if IsNaN(prevSignal[1]) then signal[1]
else if (signal[1] <> signal) then signal[1]
else prevSignal[1];

def DAPEntry = if signalbull and !signalbull[1] and prevSignal <= 0 then 1
else if signalbear and !signalbear[1] and prevSignal >= 0 then -1
else 0;


# Entry based on mas
input ATRMult = 0.3;
def MAFast = ExpAverage(close, MaFastLength);

#vwap
def vwp = reference VWAP("time frame" = "DAY");
def ATRMod = ATRMult * ATR;

def uptrend = signalbull;
def downtrend = signalbear ;

def PivotEntry = if uptrend and pivothigh then 1
else if downtrend and pivotlow then -1
else 0 ;

def VWPPB = if uptrend and low <= vwp + ATRMod and close > vwp then 1
else if downtrend and high >= vwp - ATRMod and close < vwp then -1
else 0 ;
#significant cross
def sigcross = if MAFast crosses above vwp and uptrend then 1.5
else if MAFast crosses below vwp and downtrend then -1.5
else 0;

#=== combined entry signal
def entry =
if sigcross <> 0 then sigcross
else
if VWPPB > 0 and pivotEntry>0 then 2
else if VWPPB < 0 and pivotEntry<0 then- 2
else if pivotEntry>0 then 1
else if pivotEntry<0 then -1
else 0
;
#======study display

plot pDIPlus = "DI+";
plot pDIminus = "DI-";
pDIPlus.SetDefaultColor(Color.GREEN);
pDIminus.SetDefaultColor(Color.RED);
AddCloud(pDIPlus, pDIminus, Color.UPTICK);

#plot padxcutoff = ADXCutoff;
plot padxcutoff = if !isnan(close) then ADXCutoff else double.nan;
padxcutoff.assignValueColor(if (adx < adxCutoff) or (pDiminus > adxcutoff) or (pDiplus < adxCutoff) then color.light_red else Color.green);
padxcutoff.SetLineWeight(1);
padxcutoff.SetPaintingStrategy(PaintingStrategy.LINE_VS_POINTS);

#adx cross plots
#pivots
def prange=2; #pivot range
def adxbull = ADX > lowest(ADX,prange)[1];
def adxbear = ADX < highest(ADX,prange)[1];

ADX.AssignValueColor(if adxbull then Color.cyan else if adxbear then Color.orange else Color.GRAY);

def ptrend=adx;
def adxPH= if isnan(ptrend[-1]) then 0 else lowest(ptrend,prange)[1] > ptrend and lowest(ptrend,prange)[-prange]> ptrend ;
def adxPL= if isnan(ptrend[-1]) then 0 else highest(ptrend,prange)[1] < ptrend and highest(ptrend,prange)[-prange]< ptrend ;

# Trend Direction

def dmisprd = pdiPlus - pdiMinus;

AddLabel(yes, if DMICutBull then "Trend Status: UP | D+: " + round(pdiPlus,2) + " D-: " + round(pdiMinus,2) + " Spread: " + round(dmisprd,2) else "Trend Status: DOWN | D-: " + round(pdiMinus,2) + " D+: " + round(pdiPlus,2) + " Spread: " + round(dmisprd,2), if DMICutBull then color.green else color.red);


# ADX Dynamic Label
# Adds ADX value and context

input ADXLength = 6;
input ADXLower = 25;
input ADXMid = 40;
input ADXHigh = 75;
#input MALength = 10;
input MALength = 9;

def ADXlabel = reference ADX(ADXLength).ADX;
def MA = reference movAvgExponential(close,MALength);

# ADX Label
AddLabel(yes, if ADXlabel < ADXLower then " Strenght: " + Round(ADXlabel,2) + " SETTING UP - Watch/Wait " else if ADXlabel < ADXMid then " Strenght: " + Round(ADXlabel,2) + " CHOPPY - Watch/Wait " else if ADXlabel < ADXlabel[1] then " Strenght: " + Round(ADXlabel,2) + " TREND WEAKENING " else if ADXlabel > ADXlabel[1] and MA > MA[1] and ADXlabel < ADXHigh then " Strenght: " + Round(ADXlabel,2) + " UPTRENDING " else if ADXlabel > ADXlabel[1] and MA < MA[1] then " Strenght: " + Round(ADXlabel,2) + " DOWNTRENDING " else if ADXlabel > ADXHigh then " Strenght: " + Round(ADXlabel,2) + " HIGH/WAIT TO COOL OFF " else " ", if ADXlabel < ADXLower then Color.CYAN else if ADXlabel < ADXMid then Color.RED else if (ADXlabel < ADXlabel[1]) then Color.YELLOW else if ADXlabel > ADXlabel[1] and MA > MA[1] and ADXlabel < ADXHigh then Color.GREEN else if ADXlabel > ADXlabel[1] and MA < MA[1] then Color.RED else if ADXlabel > ADXHigh then Color.MAGENTA else Color.light_gray);

# end of ADX
 
Last edited by a moderator:

cabe1332

Active member
@MerryDay I agree with you. IMO, ADX/DMI is a good indicator for trend strength, not entry/exit. ADX shows the strength of the trend UP or DOWN trend. It is best for anyone interested to search youtube for how this indicator best use.

From the scripts and codes I've gathered here, I've combined a lower ADX/DMI indicator and added additional labels that I feel I needed. I find it works best with 15min and 1hr timeframe with DMILength = 6; MaFastLength=9; DIRangeFilter=10; ADXCutoff = 25;. Screenshot below. Let me know if you would like the ADX/DMI script/code, not the workspace, and I can post it here. Good luck! @cabe1332
Hi All, I am also sharing the ADX Dynamic watchlist column script. This will provide you real-time ADX Strenght value of the trend for each stock on your watchlist. The colored strength value easily identifies the following trend GREEN = UP, RED = DOWN or CHOPPY, YELLOW = WEAKENING, CYAN = SETTING UP, and MAGENTA = HIGH/WAIT TO COOL OFF. I hope you will find the share useful. Please do let me know how it works out for you. Not asking much, a thank you will bring a smile or two. Good luck! @cabe1332

# ADX Dynamic Watchlist Column
# cabe1332

# code start
input ADXLength = 6;
input ADXLower = 25;
input ADXMid = 40;
input ADXHigh = 75;
#input MALength = 10;
input MALength = 9;

def ADXlabel = reference ADX(ADXLength).ADX;
def MA = reference movAvgExponential(close,MALength);

plot data = round(ADXlabel,1);
data.assignValueColor(if ADXlabel < ADXLower then Color.CYAN else if ADXlabel < ADXMid then Color.RED else if (ADXlabel < ADXlabel[1]) then Color.YELLOW else if ADXlabel > ADXlabel[1] and MA > MA[1] and ADXlabel < ADXHigh then Color.GREEN else if ADXlabel > ADXlabel[1] and MA < MA[1] then Color.RED else if ADXlabel > ADXHigh then Color.MAGENTA else Color.light_gray);

# code end
 
Last edited by a moderator:

novadolla

New member
Well if you want "ultimate ADX/DMI" vwp, pullback entry indicator: I wrote one . Spend friggin 2 month polishing it to perfection . It is quite silly though even though its very accurate on trending stocks (over 95% accurate). ITs not hard to find pullback entry on trending stock. the trick is to find stock which will be trending (and not reverse/chop shortly)
here it is https://tos.mx/7X1yazr : guranteed to give perfect entry signals on trending stocks!
WOW! this is a gem!
 

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

Thread starter Similar threads Forum Replies Date
B ADX DMI Indicator For ThinkOrSwim Indicators 38
T Hammond B3's ADX for ThinkorSwim Indicators 17
horserider ADX Trend label for ThinkorSwim Indicators 27

Similar threads

Not the exact question you're looking for?

Start a new thread and receive assistance from our community.

87k+ Posts
344 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.
Top