Resources — Software and Data

Warning: Declaration of ElementorPro\Modules\Posts\Skins\Skin_Content_Base::register_controls(Elementor\Widget_Base $widget) should be compatible with Elementor\Controls_Stack::register_controls() in /home/customer/www/ on line 30

Development platform software


AmiBroker is a traditional trading system development platform.  It has been my first choice for many years. 

It has excellent capabilities for graphical display of price data and indicators, and chart-based technical indicators.

It has a powerful trading system language, afl.  The language is concise and the programs are efficient and execute quickly.  There are many functions and trading rules builtin, and nearly unlimited capability to extend to whatever custom indicators you want.  


Python is a general purpose programming language with strong support for machine learning.  It is available in two versions — Python 2 and Python 3.  There are some inconsistencies between the two versions, and Python is not backward compatible.  As recently as a few years ago, developers weighed which version to install and use depending on which libraries they needed and whether those libraries were available or not.  There is no longer any question.  All of the libraries we need for machine learning have been republished Python 3.  All Python distributions are capable of using the scikit-learn set of library functions you will need for machine learning.  If you plan to use Interactive Brokers through the Python API for IB, Python 3.3 or greater is required.

Python is open source and free for both personal and commercial use.  The scikit-learn libraries are open source and free. 

There are several vendors of Python.  Some include proprietary development environments.  Most offer extra features, for which they charge a fee.  Whichever distribution of Python you choose, I recommend that it supports Jupyter Notebooks. 

I strongly recommend using the Anaconda distribution of Python Version 3.  There are distributions for Windows, Mac, and LINUX.  All are free.  All include the Spyder IDE and Jupyter Notebook.  

Corey Schafer has posted many excellent tutorials.  These include installation of python using Anaconda, Jupyter notebooks, and virtual environments (useful for maintaining version-specific projects).


Norgate Data

Norgate Data is a distributor of end-of-day data for stocks, ETFs, and futures. Their data quality and customer service are outstanding.

Data is delivered automatically and stored on your local computer. The data can used directly by a number of analysis programs that have plugins to Norgate Data, exported to CSV or accessed via a Python library that provides data in both NumPy and Pandas-suited formats. The link between Norgate Data and these endpoints is smooth and transparent.

Interactive Brokers

IB is a brokerage.  As a service to traders, IB provides historical and real-time data through the Python API.  Visit the IB website >Education > Webinars for more information.  

Cheat Sheets

Cheat sheets are very concise handout-like publications that contain concise reminders of aspects of the subject.  They are usually one or two pages, and have no explanations.  Use them as references while you are programming.

Data Camp

Data Camp offers many courses — some free, some included with a subscription.  They offer several cheat sheets related to python and its libraries, including python basics, jupyter notebook, numpy, scipy, matplotlib, pandas, seaborn, bokeh, and scikit-learn.