How to build an Algo

This topic will take you on our journey in building an algo. It will start from the very beginning starting with why we wanted to build it, decisions we had to make, our big pivot mid-development and where we are today. What it won’t disclose is our specific proprietary model.

To begin, I am a PhD scientist with a lot experience in programming and data modeling high energy plasmas. I started this journey about 3 years ago. But it was mothballed because I got pneumonia 3 times in one year. Then when the pandemic happened and my businesses took a hit, I decided to refocus my efforts on building the algo. About three years ago, we got new neighbors. Turns out he is also a PhD scientist with extensive experience in programming and data modeling of the human heart. Together, we spent the last year building our algo.

3 Likes

Here are the topics I will cover in this thread.

Getting Started
- Background Requirements
- Programming languages
Trading Instruments
Types of Data Services
Types of Algorithms
Algorithm Design & Construction
Backtesting
Implementation
Live Trading

1 Like

Background Requirements

First off, a PhD is NOT required to build an algo. All that is required is having a trading idea. Possessing or willingness to learn programming skills is definitely required. The idea usually comes from trading experience and realizing a personal weakness (uncontrolled emotions, recency bias, etc) can be overcome using an algo.

Because of the many scientific, financial, and machine learning libraries available for Python, and their relative ease of use, it is the logical language to master. A second language is C++. It is definitely much more difficult to learn and implement C++ programs but if execution time is important C++ is the best option. I have heard of others using Java, VBA, and .NET. As an aside, I did write some VBA code for someone using the Alpaca data service. If someone is interested, I can email it to you.

If you are new to coding, there are many resources (most are free or very low cost classes) out there. It is out of the scope of this thread to cover them here.

In selecting a programming language(s), there are considerations with regards to the API provided by data service you select. For us, Rithmic is our provider for data and order execution, and their API was written in C++. In order to successfully interface with their API, our code had to be written in C++. However, all the data analysis is written in Python. More on this later…

1 Like

Thank you for starting this thread and sharing your knowledge with the community.

Matt Z
Optimus Futures