Thinkorswim Condition Wizard 49

Build Custom Scans, Alerts and Chart Studies Using Thinkorswim Condition Wizard

Wouldn’t you love to be able to create highly complex scans, alerts and chart studies? Frustrated from spending endless hours trying to learn how to write code? In this video, I show you how to use the Thinkorswim Condition Wizard to build highly complex alerts, scans and Condition Wizardchart studies. We start by showing a very basic example but we cover every detail so you won’t get lost. Then we progress to more complex solutions through a series of 5 examples. Each example is taken directly from posts to our Q&A forum. These are real world examples, posed by real traders just like you.

Lean More:

Would you like to learn how to master the custom scan tools on Thinkorswim?

Click here: Thinkorswim Scans Beginner to Advanced


Examples included in this video:

  • Identifying stocks where the TTM_Wave C is light blue
  • Stocks above simple moving average the previous 3 bars
  • Three consecutive bars of 2% or more gain
  • Unusual option volume
  • MACD crossover below the zero line

Want to learn more?

Once you master these techniques, be sure to view our advanced Strategies video: Thinkorswim AutotTade Almost . This video explains how to use the Thinkorswim Condition Wizard to build chart strategies and conditional orders for automated trade execution. Also included are code templates. Which make it very easy to copy code from the Thinkorswim Condition Wizard and paste it into your own custom chart strategy.

For a complete understanding of Thinkorswim Chart Strategies be sure to view all our videos in this topic:

*Thinkorswim is a chart analysis platform offered by TD Ameritrade:

TD Ameritrade provides financial services including the trading of Stocks, Futures, Options and Forex.


Please be sure to share this page with your friends and colleagues. Leaving comments below is the best way to help make the content of this site even better.

Watch the video, Thinkorswim Condition Wizard below:

About Pete Hahn

For those trying to contact me about our professional services you will find all those details here: Any questions not related to our professional services or premium indicators should be directed to the comment section of the applicable video or you may post a question in our Q&A Forum:

Questions? Comments? Post a review?

49 thoughts on “Thinkorswim Condition Wizard

  • Oliver Vallejo

    Hello Pete,
    I have a question regarding my custom watchlist. I would like an SMS alert sent every time this this triggers. let me know if this is possible.

    “MovAvgExponential(“length” = 200).”AvgExp” is less than close and MovAvgExponential(“length” = 200).”AvgExp” from 1 bars ago is less than close from 1 bars ago and MovAvgExponential(“length” = 200).”AvgExp” from 2 bars ago is less than close from 2 bars ago”

  • krahsloop

    Thanks so much for this lesson, I learned a lot about the versatility of thinkscript in different areas of ToS! I created my own custom watchlist alert using the condition wizard, and am trying to figure out how to assign a color and/or label to the “1” value (versus 0 because it’s an on or off condition). I’ve tried borrowing from other bits of code with labels and colors but can’t figure out how to define/reference the on or off (0 or 1) condition so as to apply a label/color. Any insight is much appreciated! Here is the code for the alert:

    MACDHistogramCrossover(“crossing type” = “Negative to Positive”) is true within 10 bars and RSI().”RSI” is less than or equal to 50 within 10 bars and close crosses above MovAvgExponential(“length” = 20).”AvgExp” within 3 bars

  • 12decopas

    I want to scan while in premarket, all symbols that premark price are %20 higher than Previous Day Close.

    Afterhours_change, and gap_up studies doesn’t fit those criterias.
    So, I tried to simply reuse the code for study “Previous Day Close” as this



    input percent_change = 20.00;
    def pdc = PreviousDayClose();
    def precio = high(“period” = AggregationPeriod.DAY, “priceType” = PriceType.LAST);

    input aggregationPeriod = AggregationPeriod.DAY;
    input length = 1;
    input displace = -1;
    input showOnlyLastPeriod = no;
    def PrevDayClose;
    if showOnlyLastPeriod and !IsNaN(close(period = aggregationPeriod)[-1]) {
    PrevDayClose = Double.NaN;
    } else {
    PrevDayClose = Highest(close(period = aggregationPeriod)[-displace], length);

    plot scan = precio >= (((percent_change)/100)+1)*pdc;


    But error arraises “Seconday period not allowed: DAY”
    And if change that period by removing it, doesn’t work as spected.

    I imagine that this simple scanner has to be ready made but I couldn’t find it.

    Any help to achive my goals ?

    Thank you!

    • Pete Hahn Post author

      This request is entirely unrelated to the context of this video so it will be removed. Secondary aggregation periods are not supported in the Study Filters of custom scans and there is no way to work around this limitation.

  • Георги Караиванов

    There is no ASK or BID like on the clip, how to keep track what is the lowest price of the day and what is the current market price?

    • Pete Hahn Post author

      Lowest price of the day is “low” when set to the daily time frame. Current price is always “close” regardless of time frame. I don’t recall using the Ask or Bid in this video. Can you tell me where in the video you found that?

      • Георги Караиванов

        20:15 but it is for alerts, i guess it is different for condition.

        So basically if i undaunted correct to make scan that can show me if the lowest price of stock is above specific price and below currant market price i have to: plot scan = low > 10 and close < 11;

        One recommendation, add edit 😛

        Thx Pete, i just tried it and it worked!

        Happy new year and all the best to everyone 😉

    • Георги Караиванов

      I just need a scan that can show me if the lowest price of stock is above specific price and below currant market price :/

      • Pete Hahn Post author

        That is actually much easier to build then any of the examples provided in the video. Just keep practicing using the examples I provided and you will learn how to do the simply scans as well.