Monday, March 2, 2015

Playing with AlgoCanvas

Some time ago I discovered an interesting data analysis (and trading) platform called AlgoCanvas. AlgoCanvas is a product of a Finnish startup called Streamr, which actually did quite well in the recent Slush startup competiton (they got to the top 20).

Basically the idea is to allow the user to come up with trading algorithms easily by simply connecting different modules with "cables" and eventually routing the output to (for example) a chart/plot. I've found however that it's also a very useful data munging tool for data pre-processing and analysis. One picture is worth n words, so here's a screenshot (click for full size image):


Here I took the bid and ask prices for AAPL during one day and sent it to the Chart on the right. Then I took the cumulative dollar value trades (price * quantity * sign... basically the order flow), discarded the hidden orders and sent it to the Chart on a different axis. Pretty simple!

Getting the order flow took a bit too many modules (Multiply, Not and Sum modules), but it was pretty quick to do. It might make sense to have a custom "Function" module which would have user defined inputs and outputs and a simple mathematical expression between... anyway, the product is still in beta and developing fast, so maybe that will be implemented eventually. Mind you, there is a custom "JavaModule", but since I don't really know Java, it's pretty useless for me... anyway, I've heard a Python module is coming too!

Also, if you have a trading algorithm in mind, you can run a full backtest... and this is with event time data, bid and ask prices, trades etc... basically full order book data with all orders sent to the order book (not just trades as in my example above). Pretty impressive when compared to e.g. Quantopian's 1 min bars...