6 Minute Read

Thinkorswim (TOS) Tutorial: Adding ATR and Expected Move to Chart corner

January 19, 2015

By | 22 Comments

Learn how to trade on Thinkorswim like a PRO! Try Tackle Trading FREE for 15 days.

Adding ATR and Expected Move to Chart corner on Thinkorswim

Last update: June 2021

In this Thinkorswim Tutorial (TOS), Coach Gino Poore teaches you how to add ATR and Expected Move to Chart corner.

Here is the data to copy and paste:

input ATRLength = 14;
def ATR = Round(AvgTrueRange(high, close, low, ATRLength), 2);
def iv = Round(close() * (imp_Volatility()/15.87), 3);
addLabel(yes,concat("ATR=", ATR), color.Yellow);
addLabel(yes,concat("ExpM=", iv), color.Yellow);

It will bring up a message from Thinkorswim.

Click the tab in the lower left corner that says “View in Thinkorswim” › Save the chart under Studies › Then save study set.

Tackle Trading Tutorials on Thinkorswim

Thinkorswim is the most popular trading platform in the entire market. Tackle Trading has all the resources you need to MASTER Thinkorswim like a PRO.

Thinkorswim Tutorials [Free Videos]

Tackle Trading: Financial Freedom is a Journey. Sign up now for a 15-day free trial.

Financial freedom is a journey

Sign up now and gain unfettered access to all of the quality content and powerful Scouting Reports that our Pro Members enjoy for 15-days absolutely free with no strings attached and let us show you what your trading has been missing.

Legal Disclaimer

Tackle Trading LLC (“Tackle Trading”) is providing this website and any related materials, including newsletters, blog posts, videos, social media postings and any other communications (collectively, the “Materials”) on an “as-is” basis. This means that although Tackle Trading strives to make the information accurate, thorough and current, neither Tackle Trading nor the author(s) of the Materials or the moderators guarantee or warrant the Materials or accept liability for any damage, loss or expense arising from the use of the Materials, whether based in tort, contract, or otherwise. Tackle Trading is providing the Materials for educational purposes only. We are not providing legal, accounting, or financial advisory services, and this is not a solicitation or recommendation to buy or sell any stocks, options, or other financial instruments or investments. Examples that address specific assets, stocks, options or other financial instrument transactions are for illustrative purposes only and are not intended to represent specific trades or transactions that we have conducted. In fact, for the purpose of illustration, we may use examples that are different from or contrary to transactions we have conducted or positions we hold. Furthermore, this website and any information or training herein are not intended as a solicitation for any future relationship, business or otherwise, between the users and the moderators. No express or implied warranties are being made with respect to these services and products. By using the Materials, each user agrees to indemnify and hold Tackle Trading harmless from all losses, expenses and costs, including reasonable attorneys’ fees, arising out of or resulting from user’s use of the Materials. In no event shall Tackle Trading or the author(s) or moderators be liable for any direct, special, consequential or incidental damages arising out of or related to the Materials. If this limitation on damages is not enforceable in some states, the total amount of Tackle Trading’s liability to the user or others shall not exceed the amount paid by the user for such Materials.

All investing and trading in the securities market involves a high degree of risk. Any decisions to place trades in the financial markets, including trading in stocks, options or other financial instruments, is a personal decision that should only be made after conducting thorough independent research, including a personal risk and financial assessment, and prior consultation with the user’s investment, legal, tax and accounting advisers, to determine whether such trading or investment is appropriate for that user.

22 Replies to “Thinkorswim (TOS) Tutorial: Adding ATR and Expected Move to Chart corner”

  1. Arturo Medrano says:

    Thanks Gino, very useful labels!

    I have a question. Where does the 15.87 dividing implied volatility come from?


  2. Thank you again Gino. Is there any way to show us how to put in the $AH13-$ARL03M into our think or swim platforms?

    1. Jack Teoh says:

      Scott , I believe the symbol you are talking about is $ARHI3M-$ARLO3M

  3. Thanks again. Really opens up the visual real Estate.

    One quick question. How do you put the volume on the price chart instead of at the bottom?

    1. Volume …thats in the settings under style tab then settings> then bottom right check box that says overlap volume

  4. I have a question. Where does the 15.87 dividing implied volatility come from?
    It is square root of the # of trading days. Volatility formulas and expected move based on option pricing… Fun math!

  5. Sundar says:

    Thanks for the tip on moving up the ATR. Saves screen space and allows me to add other studies at the bottom.

  6. AaronCrowley says:

    Thx. Not sure if this is correct or not, but the ATR that is listed in the yellow box at the top of my page is different than the ATR on the graph bar on the bottom of my page. A whole number difference. Is this right?

  7. Khurshed Birdie says:

    Thanks Coach G, this helps on my small laptop.

  8. RichardAshton says:

    Thanks, freeze up space on my laptop an makes it easier to read

  9. Frank says:

    This is nice Gino. Here’s script to add IV on the right hand corner as well.

    Here is the data below to copy and paste:

    declare upper;
    input period = AggregationPeriod.DAY ;
    #hint period: time period to use for aggregating implied volatility.
    input length =252 ;
    #hint length: #bars to use in implied volatility calculation.
    def ivGapHi = if isnan(imp_volatility(period=period)) then 99999999999 else imp_volatility(period=period);
    def ivGapLo = if isnan(imp_volatility(period=period)) then -99999999999 else imp_volatility(period=period);
    def periodHigh = highest( ivGapLo,length=length);
    def periodLow = lowest( ivGapHi, length=length);
    def ivRange = periodHigh – periodLow ;
    def ivp = round( 100*(imp_volatility(period=period) – periodLow)/ivRange, 0);

    AddLabel(1, Concat(“IV% “, ivp), if ivp > 80
    then Color.Green
    else if ivp 50
    then Color.Yellow
    else color.Red);

  10. Frank says:

    Sorry, I meant it will add it to upper left hand corner on your charts.

  11. Micheal Pacheco says:

    There seems to have been lots of confusion in Master Trader classes about why this MA doesn’t match the chart’s MA. The difference is that this is simple while the chart’s default is Wilders.

    Here’s an edit I came up with which will set this to use the Wilders algorithm.

    input ATRLength = 14;
    def ATR = Round(MovingAverage(AverageType.WILDERS, TrueRange(high, close, low), ATRLength),2);
    def iv = Round(close() * (imp_volatility() / 15.87), 3);
    AddLabel(yes, Concat(“ATR=”, ATR), Color.YELLOW);
    AddLabel(yes, Concat(” ExpM=”, iv), Color.YELLOW);

  12. ChristopherHall says:

    I’m trying to code the Expected Move for any symbol beginning on Monday AM for the week. The results I see with your code is totally different from the weekly expected move shown in TOS.
    What am I doing wrong?


  13. scotts says:

    Is it possible to create a similar button for Float?

    1. Do you use a ‘Float’ indicator, or are you referring to the Short Float that a company carries regarding short interest?

      1. scotts says:

        I asked about this as the only chart indicator I see is FloatPL; not certain what that is providing. I would really like to see Float alongside ATR.

      2. scotts says:

        Float, as in the number of outstanding/available shares

      3. I dont’ know if TOS can do this….there might be a way to create a custom script, but pulling data that’s not in the chart data to list on the chart isn’t something I’m aware of how to do.

  14. scotts says:

    If needed, here’s an example chart I use: https://goo.gl/6DLttQ

    1. I like the chart setup Scotts….adding float to the chart will require a custom script, and even at that I’m not sure it’s possible to do….try contacting TOS directly on this one…

      1. scotts says:

        Thanks @Tim.

Comments are closed.

Chart Modal

Tackle Trading