How to receive ThinkorSwim alert notifications via phone


Staff member
So I get this question a lot: how do I receive ThinkorSwim alerts via phone notification when my charting platform is not open?

To receive a push notification about an alert in ThinkorSwim, follow the instructions below:
  1. Download the ThinkorSwim mobile app from the AppStore or Google Play.
  2. Open the ThinkorSwim desktop platform and go to the Scan's page.
  3. Create a ThinkorSwim scanner with the condition of your choice.
  4. Select "Save as Watchlist"
  5. Select "Alert when scan results change..."
  6. Make sure the following option is enabled "Send push notifications to mobile devices."
ThinkorSwim scanner has a 3-5 min running interval. You'll be notified through your iPhone or Android device when a condition is met.

Now, let's get practical. Here is a walkthrough of the tutorial above.

Say I'm a busy person who can't have ThinkorSwim desktop app opened at work or that I'm always on the go and can't check on the market very often. But I don't want to miss out when the opportunity present itself.

I want to receive a push notification alert every time my Buy the Dip indicator gives a signal on the daily chart.

Step 1: Create a scanner for the indicator.

Here's the condition that will trigger the alert.


The thinkScript code for that would be:

BuyTheDip_Standard()."buythedip" crosses below BuyTheDip_Standard()."Zeroline"

Step 2: Select a watchlist for the scanner to scan in. I'm going to choose the S&P 500. If you have a custom watchlist, then you can pick that as well.


Step 3: Save your scanner as a watchlist and then select the following option: Alert when scan results change...



And that is it! From now on, an alert will be triggered right from my ThinkorSwim app via push notification whenever the Buy the Dip condition is met.

This method applies to almost every other indicator.

I hope that helps. Play around with it and let me know if you run into any issues.
In the ToS Studies and/or Strategies, we can create Alerts that will post to our Message Center.

We as a group need to Ask Support to include the Message Center as a Category in Setup - Notifications - Alert Triggered - Misc. - Message Center. So when our Studies or Strategies give us and Alert it will either Email and/or Text us our Alerts that post to our Message Center.

If All of us do this I'm sure we just mite get them to consider it. It at least can not hurt to try. I know I would love to be Texted when a Study or Strategy sends and Alert. Thanks All Craig
@StockT8er You can receive text messages for ThinkorSwim alerts only when the stock price crosses above or below a set level. It doesn't work for scan results. Still worth a feature request, though ;)
Would it be hard to add audible and SMS alerts to studies. The one that gave me the idea was a simple one, PPS (person's pivot study.) I guess you could even make a snippet that could be tailored to other studies ( yes?? No???)

Last edited:
From last couple of weeks the text alert is changed for TD scan alerts. It really annoying to have extra message which is difficult to read.

Anyone know how to remove the extra message from text alert. Does anyone facing below issue?

Current Message format:
"TDA: Alert: New symbol:/ ES was added to the BullScan5M
To stop market & thinkorswim alerts like this, reply Stop10. TO stop all, reply Stop."

Previous message format:
"New symbol:/ ES was added to the BullScan5M"
@rad14733 Thank you for the info. Let me check that.
The issue was more related with the text alert so for workaround tried alerts through email which is more readable than confusing new text message alerts.
I want to set up a scan that uses the daily time frame. I’d like alerts to hit intraday but the only functions I’m seeing are price-open or close. What function would I use to make this happen? Thanks
@Iceburgh The timeframe can be selected in the scan panel when creating the conditions... As for price, we are limited to the prices available to us within the Conditional Wizard... Even if we hand-code the entire scan script we are still constrained by those limits... Do you have any scan code completed as yet...??? If so, post it for review...
I was just trying to set up in condition wizard. I want to scan for when the daily candle crosses a standard Deviation in ttm lrc.
Work up what you can and we'll review it to see what else might be required... Learning to code for yourself is an expectation here...
seems like a pretty simple question that would be easy to answer if you knew what your doing.

Yes, but learning is an expectation here... Just handing out code on request doesn't accomplish anything other than waste a lot more of other peoples time than the person wanting... You get to sit back and wait while someone else does all the work... Does that sound fair to you because it doesn't to me... We're trying to instill in members that they need to learn because that's an expectation... We're not here to make other people rich for free... Don't expect members to feel sorry for you because you don't want to make an effort... If you have made an effort, post what you have...

The problem here is that, unfortunately, @BenTen has a tough time saying what needs to be said - but I don't... This ain't my first rodeo and I've seen far too many forums devolve into a ****-show of people not making any effort and then members who can help get burned out and stop coming by and contributing... Trust me, it happens far too often... And I'm sure it has already happened here...

Whining because someone says what you need to hear instead of what you want to hear is not an admirable trait... I'm not mad by any means, I'm just upfront and honest... Sometimes you just have to say it the way it is... If someone's feelings get hurt then what was said was most likely true...

All that said, "you" doesn't necessarily mean you, it goes for anyone asking more than trying...
I created 4 scanner conditions as below that appear to be similar if not the same but found that the scanner results are not consistent, some sending notifications more frequently or reliably than others. I was curious if there are factors to consider that are not too obvious to the end-users such as scanning intervals, some priorities are set on the server side, or nuances in the studies/functions.
  • built-in study RSI_Scan to trigger when RSI is greater than 70
  • built-in study RSICrossover to trigger when RSI crosses above 70
  • custom study RSI() >=70
  • custom study RSI() crosses above 70
When I modified the built-in RSI study slighty to send alerts using "crosses above" function and added to my charts (not scanner), none of the above triggered as often as the modified study in chart. My goal is to send push notifications and email to my phone when certain indicator conditions are met. Thank you for any suggestions.
Last edited:
Do alerts work on watchlist's custom column?

I have the code below I grabbed from some post here, and I added it to a custom column of a watchlist.
It shows VWAP in green or in red depending if the price is above or below the VWAP. That works fine.

But it doesn't trigger the alert (two last lines in the script)

Any ideas?

# EMA and VWAP cross. Modified 2 ToS studies and added  labels for crosses. By Horserider 7/21/2019
# Redid label and added cross arrows.

input timeFrame = {default DAY, WEEK, MONTH};
def cap = getAggregationPeriod();

def errorInAggregation =
    timeFrame == timeFrame.DAY and cap >= AggregationPeriod.WEEK or
    timeFrame == timeFrame.WEEK and cap >= AggregationPeriod.MONTH;

assert(!errorInAggregation, "timeFrame should be not less than current chart aggregation period");

def yyyyMmDd = getYyyyMmDd();
def periodIndx;

switch (timeFrame) {

case DAY:
    periodIndx = yyyyMmDd;

case WEEK:
    periodIndx = Floor((daysFromDate(first(yyyyMmDd)) + getDayOfWeek(first(yyyyMmDd))) / 7);

case MONTH:
    periodIndx = roundDown(yyyyMmDd / 100, 0);

def isPeriodRolled = compoundValue(1, periodIndx != periodIndx[1], yes);

def volumeSum;
def volumeVwapSum;
def volumeVwap2Sum;

if (isPeriodRolled) {

    volumeSum = volume;
    volumeVwapSum = volume * vwap;
    volumeVwap2Sum = volume * Sqr(vwap);

} else {

    volumeSum = compoundValue(1, volumeSum[1] + volume, volume);
    volumeVwapSum = compoundValue(1, volumeVwapSum[1] + volume * vwap, volume * vwap);
    volumeVwap2Sum = compoundValue(1, volumeVwap2Sum[1] + volume * Sqr(vwap), volume * Sqr(vwap));


def price = volumeVwapSum / volumeSum;
def VWAP = price;

input price2 = close;
input length = 8;
input displace = 0;

def AvgExp = ExpAverage(price2[-displace], length);

AddLabel(yes, "VWAP Cross", if avgexp > vwap then Color.GREEN else color.RED);

input showBreakoutSignals = no;
plot UpSignal = avgexp crosses above vwap;
plot DownSignal = avgexp crosses below vwap;



Alert(UpSignal, "Buy", Alert.Bar, Sound.Ding);
Alert(DownSignal, "Sell",, Sound.Ding);
@kkrac No, we cannot trigger alerts from within Custom Watchlist Columns... The Alert() code will be ignored... There is no fix for this...

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
300 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.