By the end of 2017 I had become hooked on the idea of trading crypto currencies and I knew I wanted to be actively involved with the markets. The issue, however, was I would not be able to manually place orders due to my work schedule. An army of bots was my only option and fortunately I have the skill set needed to pull it off, so I dug my heels in and started studying.
Come early 2018, having read, watched, and listened to all I could about automated trading I felt it was time to try my hand at the craft. I wanted to start simple, not too deep into technical analysis, so a market maker seemed like a good place to start. For those who don’t know a market maker is an entity who simultaneously buys and sells an asset at as set distance or “spread” apart. The primary purpose of this entity is to maintain the bid and ask price of an asset. At the time GDAX did not have any fees for limit orders which meant I could take advantage of moves as small as a 10th of a penny.
I imminently started coding away whenever I had free time, classes and the like would take back seat to what I thought would be my incredible money-making machine. The final few keystrokes fell on Martin Luther King Day weekend of 2018 as I sat in an airport on the way to visit family. After a long day of travel, I finally retired to my bedroom plugged in my laptop and gave my bot (that I finished writing in an airport) command of 100% of my account. Needless to say, I was playing with fire. I watched it make its first couple of buys and sells then went to bed. When I woke up the next morning “+$2.50” was printed in the console of my application and all the sell orders that were placed the previous night had been filled. It took it a second to register but then it all hit me like a ton of bricks; I just made money while sleeping. My overjoyed analytical brain immediately started calculating how much I would make averaging $2.50/six-hours, and how much more capital I would need until I could quit school and make a living off this bot. What I would latter learn was the success was not do to my work but the overwhelming uptrend of the market that was fading but still present at this time. I would soon learn my lesson.
No more than a few days went by after I deployed my bot to a remote server did the market begin its death spiral. I feel my bot gave me more warning then most as I could tell things were staring to act different. Instead of stretching my funds down then whipping right back up my sell orders began to get left way behind and I would have to cancel them and let the bot start all over again taking a loss on the initial buy orders, hoping the bot would make them up later on. This cycle continued for about a month before I was down 25% and threw in the towel. I was determined to make this work but knew I was doing something all wrong.
Having tucked my tail between my legs I went back to research. I paid more attention to risk management, and better development methods including the all-important unit testing. I decided it was best to scrap the original bot as it was plagued with bugs and the code was nearly unreadable. Unit testing made the development quick, accurate, clean and exciting. The unit test provided we with the closest thing to documentation that I had for my own projects and completing the tests inwrote gave me a clear and measurable goal. This is not only how I believe one should develop but it is super rewarding. As for the risk management I decided on what I dubbed the “Down to Zero” approach, which is where the blog got its name. What this meant is that the size of and distance between my buy orders would be such that I could continue to buy if the price was above zero and below a certain mark of my choosing. Above the specified mark would require a rebalance to ensure the bot could buy down from that mark to zero.
After about a month and a half of rework the time came to go live. I fired this thing up with way more confidence in both my technology and myself. Things worked beautifully. During the high volatility portions of 2018, I was able to trade nearly 10x my accounts value in volume and scrape up all the pennies along the way while constantly buying and reselling. At its peak I had this running on up to four currencies at a time, the most successful of which was ZRX. Upon its listing I was one of the many traders/algos holding the $0.01 spread until smaller sizes could be traded.
This was quite a lot of fun, but fate would have it, all good things must come to an end. Recently year GDAX, now Coinbase Pro removed the edge I had been exploiting for so long, limit orders do now have fees. Fortunately, always being ready for the next step I had already begun the blog and started development on what I now call Overlord, an automated technical analysis-based system used for testing and deploying bots across various exchanges. My down time in trading was no more than few weeks as one system gave way to another much like turning the page in a good book.
Thank you again for your support. I am deep in the weeds of development so I hope this can tide everyone over for now. I will be coming out with some more dev updates for the public repos as well as a quarterly report of every trade I took from April till the end of June. Stay tuned and until next time!