Invester

Invester is a side-project still in development to assist me (and whoever else wants to) pick interesting stocks to invest in. It uses various methods, from basic Moving Average to state-of-the-art machine learning algorithms.

Invester

The TL;DR

Invester is a side-project still in development to assist me (and whoever else wants to) pick interesting stocks to invest in. It uses various methods, from basic Moving Average to state-of-the-art machine learning algorithms.

You can find the MVP here.

The Story

Invester is a project I wrote over the course of a few months in my spare time. I’ve been interested in the stock market for as long as I remember, due to its impact on the world, the trends, and so on. In my curious and scientific mind, I was always trying to find the secret pattern for predicting prices.

I’ve since learned there is no magical formula (or at least I really doubt it), however, it definitely is possible to beat the market, even by just a few percentages is all I care about.

So after I started casually trading, I spent a lot of time examining stocks one by one. It soon became clear a lot of the tasks I could do, I could automatise too, and that’s how I decided to build this project.

The Development

I decided to write it all in Julia.It’s a beautiful language, really fast and good for scientific purposes, and although it is also designed to be a general purpose language, I’ve found many limitations regarding that.

There were several steps to making this project: building the base architecture, getting APIs to work, structuring a framework to train models, managing a database, and getting altogether on a server, with the web interface.

Machine Learning

I have created a framework to test “portfolio” bots, which can simulate trading and therefore test on historic data. I currently have three different models: a very basic Moving Average based model, a simple ML approach which engineered features, and a CNN approach, which takes raw and engineered input in, and takes advantage of the CNN ability to use temporally correlated data.

Currently, I am attempting to train a reinforcement learning agent to use the CNN output to make decision.