For several years already I have made weekly posts on a forum on things that keep me busy related to trading. It might be a good idea to do those posts here from now on. Anyway, for people on that forum the title of this post will be less cryptic than for others that don’t know me. Most of my programs are named after animals. I’ve gathered quite a collection already:
- Dolphin, my real-time risk management system
- Octopus, a trade logger
- Woodpecker, a real-time trading engine
- Yak, a simulator / backtester for asset allocation strategies
- Bison, a backtester for intraday strategies
- Swordfish, a dartboard for manual trading
- Aardvark, a trading strategy
- Kangaroo, a trading strategy
- Elephant, a data gathering tool
- Saint Bernard, a helpful dog that keeps track of running programs
There are others, like Donkey, Axolotl, Tarantula but those are largely defunct. Currently I’m working on Buffalo, which I thought was a fitting name for a new backtester/explorer for strategies based on cointegration. Most of my programs have the same look and feel (if they are gui programs) and that’s because I usually start developing a new project by issuing a single command:
./createProject.sh <project name>
This sets up a complete directory structure for the new project and fills it with relevant class files (I’m using java), and puts them under version control. Automatically I have a program that has the basics of a gui (that remembers its location and size) or headless application, command line handling, license processing, (remote) logging, configuration settings, splash screens, and help/about forms.
It’s pretty cool, because this is always tedious work which is now done with just this single line. The only thing I have to do afterwards is add an image for the splash screen, an icon and a function that returns a description of the projects purpose.
Normally after this my work really starts, but this time I’m working with an AI agent. So far the results of this collaboration have been mixed: the AI is often surprisingly good at making code, and sometimes it doesn’t seem to understand some basic programming structures. What I’ve learned so far is that if the AI doesn’t get it right in three or four times, don’t try to push it further. It will only add more bloat. Better to debug and fix the program yourself.
I like programming, it can be challenging but also very rewarding. In a sense it’s a pity the AI’s are on the rise because they take over so much of the work that I used to enjoy. So why use them? Because they also take over much more work that is boring. There seems to be no middle ground here: either you use the AI or you don’t. For this project I’ve chosen to use one. It feels like I’ve been promoted from programmer to project manager, because that’s what the work has been transformed into. I’ll let you know when or if I have demoted myself.