Strix devlog #5

2018/09/05

4 minute read

** summary **

Current status

It’s been quite a while since I wrote a devlog, and quite a lot has happened in the project in between. I’ll try to merge the stuff from the commit logs and stuff I posted on mastodon to give an overview. I’ve been coding the scanner for most of the month. We consolidated the scanner into categories, with some constraints on the combinator based on categories, so that you don’t have 2 scanners of the same category combined. Also you don’t want bullish/bearish scanner combinations. There are 70 scanners and it’s hell to have to change anything on the scanner interface. I’ve partially solved this problem by extending the scanners from an abstract class, but for a feature called parameter customization I still have to go over almost all scanners and add their default parameters. I’ve also encountered a lot of performance issues with scanner performance calculations. Doing the calculation based on last years data took quite a while when I was using the scan results from the database, so I decided to truncate the scan results kept in the database to a months worth of data, and do all scanner runs on a years worth of data online during the scanner performance calculations. Less DB roundtrips increased the performance. There was also an issue that ran into a sort of N select problem, where the DB was queried in each iteration of the loop. I fixed this by using an IN query to get all the stuff I needed before going into the loop.

I had started using mongo for raw data such as OHLCV data and scanner results, but I decided to get everything into MySQL as complex queries on mongo are a pain. So I got rid of mongo for all modules in the project.

I have a couple of ideas for parameter recommendations for indicators based on the indicators values. I actually wanted to brute-force my way though some parameter combos to find the best scoring combo for that symbol and indicator but that leads to an unmanagable number of scans. Now I will try to recommend RSI/Stoch overbought/oversold parameters based on the number that actually was used as the turning point in the charts.

There was progress on the web client as well. I setup a nice continous integration server that deploys all pushed commits and I also setup my router with DynDNS and port forwarding so that the team can use the test environment. I repurposed my workstation as a Proxmox host (something I had already done before) and I’m using my laptop as my workstation now. This kind of sucks because it’s a weak weak machine. I don’t really want to spend money on a new work station right now, as I have received my EAD and I’m planning to start working somewhere after I get this project live. So back to the web client, we have the main page almost setup, but since nobody in the team is a designer or has any background related to design it doesn’t look professional to me. This could be just a bias, I’m not sure. I put out the idea of paying someone to design it, but it wasn’t received well - probably because we can’t visualize what we want and cannot really tell the designer what he should do. The pricing page, login and registration pages exists and are functional, but not really tested. Testing and product management is a weak point in the team.

So, product management for this project is actually quite simple: I expect wireframes, use cases, and some testing from our PM. He has no experience, but I just can’t understand why somebody can’t simple research all this stuff and do it. I have to step in at almost every step, and this is slowing us down and demotivating me, as I don’t want to do this - that’s the point of having a product manager.

I’ve set a tight deadline to go live, per Parkinson’s law I want to keep everybody on their toes, but my current status on this is yellow, that’s why I’m also working on a B plan. The opportunity cost is just too high now that I have the EAD.