Think or Swim on Ubuntu 20.04 / Focal Fossa

It will be interesting to see what happens with Think or Swim and Charles Schwab in the coming years as the two merge. Retail brokerages are slowing consolidating and going by the wayside as Robinhood / options become all the rage.

I use Interactive Brokers for all my trading because I believe hands down they have the best API for all my needs. However, I use TOS in all my chart analysis and developing my algorithmic strategies.

I have written about installing Think or Swim on previous versions of Linux, so I thought I would update to Focal Fossa cause once again TOS directions didn’t work.

Start with some java:

1. install sudo apt install openjdk-8-jre

2. Download the installer

3. cd /Downloads && sudo chmod +x thinkorswim_installer.sh

4. install sh ./thinkorswim_installer.sh

m The installer should start the application for you. The TOS small box will pop up and say that it is installing updates. This seems to take a long time, like 5 minutes? So go do something else for a few. Then you should get a login screen after a while.

Note: If you find any discrepancies or tips please leave them in the comments. I will do my best to post them, as this blog post and the other Ubuntu / TOS get a lot of hits, there are people out there that need hits.

I’m in need of some marketing help…

TLDR: Failed web developer/front end developer, ISO of an internet marketer to work with a profitable stock trading signal algorithm. I need some advice, please.

A few years ago I developed a volatility/correlation algorithm for RIA here in Denver and deployed across a $150 million portfolio. That year the advisory firm won a Lipper fund award for a portfolio that employed this algorithm. (U.S. Balanced/Multi-asset (All Styles) Ranked # 1 ROR 17.45%). I know super exciting right… I like it’s kind like a dunnie.

I left the firm and have taken my algorithm and applied it across all the stocks in the S&P 500. I have made the terrible mistake of thinking that I could be an algorithmic writer/code writer, web developer, and internet marketer. I have failed miserably at the last two. There just isn’t enough time in the day.

So now I have a ghost site, actually, it should be called a zombie because it has a mind of its own. (excluding this blog site) I still have scripts that continue to maintain the algorithm and update it every day, although I haven’t looked at them in months, it keeps churning out trades. I have been too focused on my day job as an algorithm coder / CIO for a small family office.

Here are few highlights of the site:

The winners, page is a list of stocks that the algorithm picked and as you can see are basically winning. Breakouts & Breakdowns is updated daily with new trades. I just remember I even have an FAQ on the how the algorithm works, well not the secret sauce just a basic idea. There is a lot of potential in the algorithm as the sum product of all the equities I track can be analyzed into another technical indicator to see the market as whole, I call it the Happy/Panic meter.

Yes, I do understand that at the time of this blog post that Apple stock has not been adjusted for the split and some stocks might have a 100% gain because well that day I didn’t the correct quote. You can also see that each page has its own individual page, with charts, etc.. So please keep that in mind that I haven’t updated certain parts of the website, but the algorithm is as robust as ever.

Basically, I’m either looking for a business partner that would handle the marketing/front-end design and or personality of the website. (we could move it to another site) Would also be happy to discuss a host of other options, such as API access, trading machines/trading bots (click around the site, I have some experience in building trading machines), or white label services. I also can build portfolios for RIA and FA, I have some great ones already on the website.

So go ahead kick the tires, click around the website. Ask me some questions… throw out some ideas… because I running out of them. Chad @ this domain .com

Financial internship.

This position is ideal for someone looking to gain exposure to quantitative “quant” trading.  Waystone Capital is seeking an Intern with knowledge of the financial markets, python (or PHP) development skills, and aspiring to become a data scientist.   The Intern will work on projects that provide broad exposure to quant trading and the hedge fund trade.  This is an internship and an understanding of the financial markets is required.

Responsibilities

  1. Assist with the build out of the firm’s back-test environment;
  2. Analyze large sums of back test data and run numerous linear regression models as requested by the Partner / Lead Developer;
  3. Working with the Partner / Lead Developer to analyze and onboard new asset to the firm’s algorithm trading platform, and thereafter optimizing the algorithm for each new asset class. 
  4. Work with the team to explore using the algorithm with public securities.

Minimum Requirements

  1. Finance background.
  2. Python or PHP coding experience is the primary requirement for this position. 
  3. Ability to work with others including peer code review and focusing on project deadlines and goals.
  4. Ability to work confidently and passionately until the desired outcome is achieved.
  5. Solid verbal and written communication skills.
  6. At times the intern will work with no guidance and will have to solve the problems on their own; the applicant must be an independent thinker. 
  7. The internship shall be remote.

Education and Experience

  1. Preferably working towards a Bachelor in Finance or Business Administration.
  2. Experience with developing in Python and other object-oriented programming languages.

Industry

  1. Investment Management 


Algorithm – Financial Trading FAQ

I get a lot of questions about Financial Trading algos, building black boxes, which is the best trading API, the list goes on. Not to sound to pretentious, but I try to help people, even when I possible, but I don’t always have time. So I’m just post some of the questions here in random order.

what is the preferred language for algorithmic trading? I wanted to use Java but I am not sure if that is the best language.

I used to use PHP. Now I use Python. I think Python is a good reasonable solution. If you are on Wall Street doing High Frequency trading you would probably use C# or C++ as it is supposedly the fastest.


Also, have you heard of finnhub.io and alpaca? If yes, which one in your opinion has a better API? I trade Futures, stocks and options. I don’t think either of those can do what I need.


Do you build trading algorithms for futures, stocks, options?

Based on my blog post I think the answer would be yes.

Hey, I read your blog on which api is the best and I have been doing research on TD Ameritrade for 2 days now and I have not made much progress. I am new to this and also was wondering If Interactive brokers is free to use for stocks and options?

You can start paper trading, this would allow you access to API paper trading account without putting money into the account. I think you have to $2000k to get really started. From my recollection, (but not perfect) but you can open an account, with no money and use the API and paper trading account. When you are ready to get started, I think 2000k is the min and they charge $10 service fee every month.

I would not recommend TD ameritrade and I think you have validated with your research. IB is for the most part free, well documented, python SDK and plenty of support groups. (Stocks, Options, Futures)

I need to up date this but here is starting point… https://github.com/chadhumphrey/stock_options_api

Hi I read a comment in which you mentioned that you wrote your own python code for options trading. That is currently my goal. I am very new to programming and am seeking some help in setting up my own backtesting environment. Would you mind helping me a little? I have access to historical stock data for as well as historical options data. All my options strategies are based on the underlying price and time. My stock data for one symbol is in one CSV file, while I have hundreds of CSV file each for a different option strike with different strike prices. How can I translate my simple option strategies into a python backtesting environment? For example, once XXXX reaches $XXX, buy a call that is +XX dollars ITM that expires in XX days?
I’ve been fairly successful in stock,options and futures trading and have done manual backtests looking at historical charts and such but python backtesting will bring me to a whole new level at a much faster rate.
Any tips or suggestions will be really appreciated.

I have written 3 algos (options, stocks, futures) For stock and futures I do use backtesting data. As for options I’m far to lazy and cheap to find option historical data. So I have developed my own strategy and write my code. Then I just paper test it on Interactive Brokers. Basically, forward testings and since my options algo can find trades in thousands of stocks I feel like I’m getting some good data to analyze. http://thebennyshow.us-east-1.elasticbeanstalk.com/spreads It’s still a work in progress, but this algo ran while I was at my day job. I would argue that with options you can save a lot of time just forward testing. Hope that helps…
not sure if you saw this as well… https://www.strategic-options.com/insight/2020/05/17/update-2020-the-best-and-worst-stock-futures-and-option-trading-apis/
Sorry I can’t write your algorithm for you, but will happy to do so if you want to pay me. 🙂

Many years ago I could have gone the NinjaTrader route, but I was to cheap. So I learned to code. Now I don’t have any problems that I can’t fix. 😉

Hello,
Interested in developing algorithms that will ingest data/analyze and make trades with options. Are these services something you provide?
Regards…….

Update 2020: The Best and Worst Stock, Futures and Option Trading APIs

My original post is still here, I get a lot questions, so I thought I would update with my current findings.

When picking an API the $64,000 question is  does Charles Schwab (TD Ameritrade) or Morgan Stanley (Etrade) really want to deal with building an out API for their customers once the mergers happen? Meaning is there enough revenue generated from API trading to keep 10 annoying coders with at least 2 dev ops bros who believe they know everything and of course an annoying project manager.  I personally believe these firms kind of see the API as dead weight, with only a few customers and the trend is more getting day traders like Robinhood has?  Keep in mind brokerages generally don’t have the trade fees they used to have.

Td Ameritrade

The TD Ameritrade API is courtesy not a guaranteed feature. (This was told to me by a customer service rep) They don’t necessarily provide support if you send them a question at [email protected] If it’s an easy question they might respond, if it’s a difficult one then they won’t. Reddit / stackoverflow is too fond of TD API. Otherwise their documentation generally is terrible. I currently only use TD API for live option quotes, because I like they can give the entire option chain so I can analyze it on “my  local”. It generally is the worst API that I have ever used. Since it’s more of a courtesy I I  On the flip side I Think or Swim is awesome.

Etrade API

I have poked around the new eTrade API, it appear to be very easy to use. I think they are using standard REST API methods etc. Meaning they are probably using a framework such as api-platform to build it. From what little I can see it seems like it is rather too easy to use and well documented.

Interactive Brokers

Interactive Brokers is what I trade options and futures with, their code has a learning curve, it is not terribly nice and sometimes you just have to wonder about serious WTF. Once you get past that and consider it is really the only game in town, it works just fine. I’m trading futures 24 hours a day, with no problems. IB really focuses on their API and has a dedicated staff, support etc.

etc…

I have not had time to test out Alpaca. I don’t get paid to write these reviews (I wish I did) So since I’m a practitioner, I don’t have an incentive to test out Alpaca or any other API at this time. Although IB is a pain in the butt, it’s working just fine for me.

I ran across this website the other day… Any wants to join forces or pay to front run Robinhood, shoot me an email.  This is some low hanging fruit.

Recommended Books for building trading algorithms

Notice I didn’t write 10 books you have to read to make millions of dollars in the market.That just seems a little click-bait/Buzz Feedy. Unfortunately, from a data scientist/ SEO perspective that would have been the more profitable. 

As we all suffer through this quatrine I just put together a list of books that I have read that I believe have shaped my understanding of markets and have molded my investment philosophy. I think bigger picture books such a The Big Short and Black Swan are far more important than technical books.

Creating algorithms and or trading strategies is something that I believe starts with the creative process, maybe just staring at charts for hours or losing a lot of money. I’m lucky, I’m a self taught coder and I can implement my strategies without getting caught up in whether my code is object oriented and if I have the correct classes etc. I always say that the code is the easy part, it’s finding a good strategy that is hard part.

So these are some books that I have enjoyed and maybe you will too as well. If you have any recommendation, please leave them in the comments as I’m always looking for something to read / listen to. 

Books that shaped my investment philosophy or possible continue to shape my philosophy strategy.

The Creature from Jekyll Island: A Second Look at the Federal Reserve by G. Edward Griffin
The Warren Buffet Way by Robert G. Hagstrom, jr.
How Technical Analysis Works by Bruce m. Kamich
The Black Swan By Nassim Nicholas Taleb
Beating The Street By Peter Lynch
The Big Short by Micheal Lewis
Flash Boys by Micheal Lewis
Confession of an Economic Hit Man by John Perkins
A mathematician plays the stock market by John Allen Paulos

Here are some other books, that I have read that but am not giving an a full endorsement. I especially disliked “Random Walk”, but that seems to be Wall Street favorite.

A Random Walk Down Wall Street: The Time-Tested Strategy for Successful Investing by Burton G. Malkiel
AntiFragile By Nassim Nicholas Taleb
Skin In the Game By Nassim Nicholas Taleb

Malcolm Gladwell and Freaknomics books are good audio books and generally pretty easy to consume quickly:
The Tipping Point by Malcolm Gladwell
Blink by Malcolm Gladwell
Outliers by Malcolm Gladwell
What the Dog Saw: and Other Adventures by Malcolm Gladwell
Boomerang by Micheal Lewis
Freakonomics by Steven D. Leviit and Stephan J Dubner

The Intelligent Investor: The Definitive Book on Value Investing by Benjamin Graham

Academic / Text Books
Option Volatility & pricing by Sheldon Natenberg
The Complete Guide to Option Pricing Formulas By Espen Gaarden Haug (This book is great for the formulas)

High-Frequency Trading by Irene Aldridge (Probably outdated and really that good.)

Simple guide to build TWS API on AWS EC2 instance

Currently, I’m running 2 different Interactive Brokers Trader Work Station (TWS), my own propriety python trading algorithm on an AWS EC2 instance. This is very simple instructions to get you one started, it is not the cure all.

  1. Build an AWS EC2 instance / 18.04 Ubuntu
  2. SSH into the instance
  3. Insert the following code as required

Cover the basics:

Sudo mkdir code && 
cd code && 
sudo apt-get update -y &&
sudo apt-get clean -y &&
sudo apt-get autoremove -y && 
sudo apt-get install mysql-server -y && 
sudo apt-get update -y &&
sudo apt install python3-pip -y && pip3 install pandas matplotlib seaborn plotly pymysql sklearn 

The are two ways to VNC into your EC2 instance. The RealVNC method is little more complicated and it is an enterprise solution.

  1. https://help.realvnc.com/hc/en-us/articles/360003474572-How-do-I-get-started-with-VNC-Connect-on-Linux-
  2. xhost +local:Name_of_your_computer
  3. sudo apt install ./VNC-Server-6.6.0-Linux-x64.deb
  4. tar -xzf vncsetup-helper.tar.gz
  5. sudo ./vncsetup.sh
  6. sudo reboot

If you want a simple VNC method follow this bloggers instructions.

Interactive Brokers

  1. follow instructions: http://interactivebrokers.github.io/
  2. sudu unzip twsapi_macunix.979.01.zip -d /home/user/
  3. cd IBJts/source/pythonclient/
  4. sudo apt-get install python3-setuptools && sudo python3 setup.py install
  5. Download TWS https://www.interactivebrokers.com/en/index.php?f=16040 follow instructions on the screen. (if you want to use IB gateway, which is not as sexy but works fine you can get it here)
  6. git clone your repo