Schwab Websites Taken Down April 23—Denial of Service Attack

Updated: Nov 8th, 2015 | Vance Harwood

Originally posted April 23, 2013

Around 3:40 ET I noticed that Schwab’s web presence was completely gone.  StreetSmart Edge servers were not available, and was nowhere to be found.   Signing onto Schwab later there was the following message:


A Message From Schwab

APRIL 23, 2013 — Shortly before the stock market closed today, we experienced an exceptionally high volume of website traffic which we believe was related to a denial-of-service attack. At all times, phone access to Schwab service professionals (800-435-4000) was available, although for a brief time immediately before market close call volumes were high. Web access was largely restored in approximately one hour and forty minutes. We deeply apologize to our valued clients for the inconvenience.



A denial of service (DoS) attack usually involves overloading servers with excess traffic.   My browsers weren’t even getting DNS addresses when I attempted to contact Schwab websites.


I doubt we’ll ever hear any specifics of this attack, but it would be interesting to know the sophistication of the attack, and the defenses Schwab had in place.

Schwab Puts StreetSmart Edge® in the Cloud

Updated: Mar 9th, 2017 | Vance Harwood

Faced with the explosion of different computing devices, Schwab has provided a relatively platform insensitive way for Schwab customers to use its flagship StreetSmart Edge® (SSE) package (review).  It uses session virtualization to shift the heavy memory and CPU requirements of SSE from your machine to theirs.  The only thing left for your computer to do is to refresh your display information and pass keystrokes / mouse inputs back to the Schwab server.

In the past client / server software architectures implemented the same basic idea, putting a small custom application on the local computer and moving most of the heavy lifting to a centralized server.  However, the proliferation of devices and operating systems with all their version permutations makes porting/supporting even a small custom client a daunting task.

Browser based solutions theoretically remove the need for a custom client, being based on internet standards like HTML.  However every browser and virtually every version of every browser implements these standards differently.   Last month’s visitors to my blog  used 21 different browsers to access the site, and on average there were 6 different version of each browser used.   The chart below shows my statistics on browsers (click to enlarge).


In addition to the proliferation issue, browsers are not good at adjusting to major differences in the display capabilities of your system—which might range from a small smartphone to a monster multiple monitor setup.   The net result is that browsers are not ideal platforms for implementing advance trading platforms—however this is the approach that Fidelity is betting on with their offering.

Schwab’s approach uses Citrix’s session virtualization client to completely avoid putting their stock / trader specific software on your machine.  Instead you run a general purpose Citrix client that connects you to the Schwab server running StreetSmart Edge.

SSE in the cloud addressed a big performance problem that I’ve been having on my Windows 7 based machine.  The downloaded version of SSE runs fine on my Vista based machine (see here for an updated review on the functionality), but was very slow on my reasonably powerful (Dual core 3.2 Ghz, 6 Gb RAM) system running Windows 7.  Option chain updates in particular were excruciatingly slow.

With all the heavy computation moved to the Schwab server and no need to download large amounts of data to my machine I experienced a dramatic performance improvement in SSE.  I’m still not seeing blazing performance, but it’s comfortably fast—I can stay focused on the task at hand, rather than impatiently waiting for an update.   It also added the ability for me to run SSE on my netbook when I’m on the road.

If you’re using SSE and having performance problems with the downloaded version I suggest you give Schwab a call at 800-435-4000 and sign up for the cloud version.  So far Schwab has been keeping the features of the download and cloud versions of SSE well synchronized.  In the past I had issues with SSE running on Chrome, but now it works well with Internet Explorer and Chrome.

Schwab officially supports Windows and Mac based systems with SSE on the cloud.  At least one user has been able to run on an iPad Air tablet (using Safari to launch the Citrix client).

With the current cloud version (1.26.605) there are a few rough spots:

  • SSE file operations are different.  SSE is running on a remote machine, but typically you want to save/retrieve your files on your local machine.  On Windows when you initially try to save/retrieve a file you will initially be pointed to a folder that exists on the Schwab server that you don’t have read access to.  Click on the computer symbol on the left of the dialog to connect to your computer.  This takes a while and you’ll may get an “An online application is attempting to access files on your computer” message, with a choice of whether to allow or block it.  You get this message because the cloud SSE is trying to communicate with your computer’s file system.  If you allow it you can save your files locally, but you won’t get any help putting things in a directory.  Initially you are put right at the C:\ drive level.
  • System alerts beeps might not work correctly

Review of StreetSmart Edge

Updated: May 30th, 2017 | Vance Harwood


Streetsmart Edge (SSE) can be launched/downloaded from the  Schwab website.  Schwab has made StreetSmart Edge available to all account holders.  A call to their helpline (800-435-9050) is required to set it up.   If you want to run SSE on an underpowered computer, are having performance problems, or want to run on a Mac check out the cloud version of SSE, see this post for more information.

Before I get to my complaints here are some things that I like:

  • Accessing / trading options is very nicely done.  Option chains come up collapsed down to expiration dates, which you can then open up.  Copying options to a watch list is conveniently accomplished with copy and paste commands.  Current positions are shown in the option chains—a nice feature.
  • Option chains allow an adjustable number of strikes from 1 to 100 or all.  It’s very nice to not have to deal with huge lists of options when my interests are relatively close to the money.
  • General availability of midprice quotes, halfway between the ask / bid price.  This is an essential capability for any serious option trading and very useful for lower volume securities.
  • The “Trade-All in One” tool significantly improves Schwab’s capability for multi-sided option trades (e.g, spreads, calendars, buy-writes, butterflies, condors)
    • Once you select your trade the options appear at the top (see snapshot below).  You can then further customize the options you want (e.g., strikes, expirations)—this avoids significant frustration if you have a different opinion than the tool on what the strikes for say a strangle should be…
    • You can add additional tabs to the tool.   I use this for displaying alternate option strategies, or the plain options chains with all the Greeks
    • The midpoint price, the max gain/loss, current underlying price are all right there


  • The scrolling / time windowing capabilities located at the bottom of charts are excellent
  • SSE’s ability to export data, including option Greeks from a watch list to a spreadsheet is useful
  • Very good coverage of option strategies, including calendars and ratio spreads.  All the Greeks available for the options in the strategy
  • ETF/ETN intra-day indicative values are available (effectively NAV).   To obtain these add a “$” and the beginning, and “.IV” at the end of the symbol (e.g., $SPY.IV).   These are helpful in getting good price execution on orders.
  • Charts include the ability to add option IVs as a study.  This is a big help in looking at typical IV run-ups before earnings reports.
  • Options chains for VIX options use the VIX future price for the same expiration as the effective underlying.  This is necessary for the computed Greeks to be correct.

Some complaints:

  • In the age of Google it is embarrassing how Schwab requires you to enter a ticker symbol exactly right before it will recognize it.  You must have symbology, ticker, capitalization, date, and strike price exactly right before it is recognized.  You’d think they could figure out that “VIX” was “$VIX”, “spy” was SPY, “c” was “C”, and that 61 was 61.00.
  • Email not supported for alerts—really?!
  • SSE wants everything in upper case.   If you type in symbols in lower case it capitalizes them.  OK so far.   However, if you try to enter in capital letters, matching what is on your displays it very unhelpfully lower cases those letters so that the symbol is not recognized.   My favorites are indexes like $VIX or intra-day indicative values (e.g., $VXX.IV) where you have to hold down the shift key for the “$” and then use lowercase for the rest. This is so wrong.  Just capitalize everything, OK?
  • In IRAs option spreads are not allowed for cash settled index options (e.g., SPX, VIX)
  • The charts have a lot of nice features, but they have a “frequency centric” approach.  You must pick the frequency (e.g., 1 minute or daily) and then the chart then picks the duration (e.g., 5 days or 254 days).   This is bass ackwards—I want to pick the duration and then have the package provide the maximum frequency it will deign to provide—the higher the better.
  • Slow initial startup time.   Even with a fast computer, the package takes a long time to startup.   Switching layouts, or loading the layout from the central Schwab server extracts additional time.  They have added a “quick launch” option on the settings, but it doesn’t seem to make much difference.
  • The default on the colored “link” symbol in the upper right of many tools ties all the windows to the same ticker.   Generally, if I open multiple tools I”m comparing things so having them all sync’d to the same symbol is counterproductive.  To work around this I have to manually change the link to the “unlinked”, broken chain symbol—I think unlinked should be the default.    The link feature is nice if you want to click through your watch list and have a chart displayed for the highlighted symbol.

Some tips:

  • To activate the bracket capabilities go to account details, positions tab, select a symbol, push the actions button and then look for the “add brackets” choice
  • Default share / contract quantities can be set on a per symbol basis by going to general settings, trading tab, and then look for order quantity button
  • Typically I’m using multiple computers in the course of a day so I use the save as / load from Schwab server capability located under “file” on the main window.  This keeps my layout consistent between computers.   This should be a default choice for the user—local or server based layout at startup.  Schwab now allows up to 5 different setups to be saved on their server.
  • If you find yourself frequently flipping between different tools (e.g., watch lists and charts), consider putting them on different tabs.  This avoids a lot of tool finding and you can flip contexts with a single mouse click. These tabs can be put on different displays if you have them.
  • If you are running an older version  I recommend you upgrade.  You don’t have to remove your current version of Street Smart Edge, you can download the new version from the Schwab site and install the newer version.  I haven’t lost any settings.  Your current version shows up in the upper right-hand corner of the application.

Wish List

  • Ability to save multiple leg option orders for later reuse.  For example, if you want to monitor the mid-price of a call spread.
  • Greek calculations for options are using time to expiration in coarse 1-day increments.  This leads to significant errors when the time to expiration gets down to less than a week.  Using more precise time until expiration (e.g, 30 minutes) would give more accurate Greeks during the day.
  • Option charts using mid price (halfway between bid and ask) at some reasonable frequency, like 15 minutes, instead of relying on trade data which is infrequent for most options that are offered
  • Charts for options that have expired
  • Stop loss orders (both market and limit) that have a time delay parameter option that delays any action for a specified number of minutes.  This would reduce the chances that a position is blown out by a flash crash.

Performance notes

Summary of Defects (in my opinion)

  • SPX options that expire on Friday morning are not recognized as such until Monday morning!  If you have a calendar call spread that’s short the just expired option this is ugly.  If you have enough margin you can work around this by rolling up to a much higher strike.
  • Charts setups don’t remember that mode has been set to bar format.  They always go back to candlesticks on new charts
  • Uncapitalizing letters that are typed in as capital
  • If you enter a duplicate symbol in a watchlist your input is ignored—without explanation
  • Stock splits are not adjusted for in  .IV charts

Free option charts

Updated: Mar 10th, 2017 | Vance Harwood

I have only found one site that offers completely free option charts for stocks, Exchange Traded Products, and indexes:  BigCharts.  I provide more information about it below.

OptionZoom provides free option charts, but apparently only for large cap stocks.

Recently Schwab (StreetSmart Pro)  and Fidelity (Active Trader Pro and standard web site) have started offering option charts to customers, but they require you to at least setup an account with them.  Neither of these use the “standard” option symbols, but rather use their own proprietary Fidelity or Schwab symbology.  Fidelity’s option charts allow export of trade information as .csv files, even for intraday intervals—a very nice feature.


BigCharts uses their own custom option symbols.  To get the BigCharts option symbol to use, enter in the underlying symbol (e.g, INTC) towards the top of the screen and click one of the chart buttons.  Then click on the option chain link above the quote information to show the available options.  Click on the “quote” link in the option chain to get a chart.   Once you get a chart you’ll probably want to click on the Advanced on Interactive Chart button towards the top to get more control over the chart.

BigCharts avoids the huge issue of charts not being available after the options expire.  But it looks like it still suffers from the problem that intra-day information becomes unavailable soon after the options expire.  They need to allow a range of dates to be displayed, not just assume that you want everything referenced back in time from today’s date.

Wish List

What I would really like options charting packages to do would be to chart bid/ask values if actual trade values are not available.   Since many options are lightly traded their charts are deserts of information.  Bid / ask history would be much better than nothing.