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

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