How I Lost 20% in 20 minutes.

Andrew Siah
8 min readJan 29, 2022

The perils of greed, impatience and not doing my due research.

Before we Begin

I am not providing personalized investment advice, and I am not a qualified licensed investment advisor. The content is for informational purposes only, and you should not construe any such information or other material as legal, tax, investment, financial, or other advice. Seek a duly licensed professional for investment advice. Furthermore, I am in no way affiliated with Hummingbot. Thus, all I write is non-representative of Hummingbot’s view. By applying any of the information herein your trades, you agree that you are fully responsible for the results of your application.

The Prelude

I was a young happy miner in Hummingbot’s Campaigns. I was one month into researching and testing out Hummingbot. Prior to this, I was just testing it out with less than $100 to make sure all was well and that I understood things well, and it was well. I was mining stable and known pairs, limiting myself to Binance. And I was seeing a 4–5% return on my investment per week. I started to eye the ranking board, and one of the ways I saw was to go big on my capital.

And so I did, I upped my capital 100x to $10,000 and started putting $2000 to $3000 into my previous pairs. Even after the diminishing returns from more capital cashing on the same amount of rewards, I was still looking at a net of 3–4% per week, which is great. (5% of $100 is just $5; whereas 3% of $10,000 is $300). And 3–4%/week (~400% APY) is still a lot more than any liquidity pool yields available out there, which were around ~200–300%.

My Greed and Impatience

I started to plan on ways to up my % ROI to 5% and above. Staring at the yield board on Hummingbot, a few pairs at the top with high yield called out to me. And I started mining them with $50 to test the waters. It was heavily rewarding. With these new pairs, I was observing a 7–8% of reward per week. My bot’s configuration were set to pretty low spreads, standing right in front of the order books, as there are commonly no trades on these pairs. And even if there were trades, my rewards more than make up for my trading losses by many folds.

This was it. I’ve solved money. I’ve found the infinite money printing glitch.

I was constantly checking the hourly rewards on my dashboard, and I was making $0.3 per minute. Dear Lord, this sure is a high point in my life. This beats all the other high points: all the championships, and scholarships, and job offers, and sunsets, and sunrises. I went to sleep grinning, acknowledging that I was making money even as I was sleeping. I sure am a modern genius investor, and Benjamin Graham and John Templeton were there, welcoming me with open arms into the hall of money printers. Soon, I shall enquire on r/fatfire on which country club I should join to spend my dough.

The Fall

I woke up on a Thursday morning to this.

My $1500 bot — running my low spread strategy — bought in at ~0.04700, sold at ~0.04300. Then bought again at ~0.04600, and sold at ~0.03900. I ended up losing ~$300 (~20%), in this short roller coaster ride.

You might be thinking, “Hah greedy fool, you should have set higher spreads and adjust_spreads_to_volatility to mitigate your losses”. Here’s the irony, with ups and downs of 10%, unless I set spreads to >10%, I won’t be evading those pumps and dumps much. And on adjusting spreads based on volatility? These were taker orders which happened in 0.1s, no amount of lagging volatility reaction was going to save me.

This incident erased all my rewards for the past 2 weeks and sent me back to 0. I shook with trauma, shutting my bots for a week to reevaluate whether all my time for the past month was wasted. I finally understood why those who went before me were giving up.

Not Giving Up (and Learning from my Mistakes)

Sadly — or thankfully — I’m a stubborn man. I don’t like giving up, and I really hate losing. Might be due to the South-East Asian Kiasu upbringing.

Kiasu (Hokkien): To describe a person who is overly competitive due to fear of losing.

I sat down and reevaluated my strategy. Days went by, reading and experimenting to make sure I understand what all the parameters in each strategy does, reading through all the documentation and code on Github. Then going on to test each pair again and again before gradually using live trading again.

Since then, I am now looking at 7–8% ROI per week. And this weathers most of the pumps and dumps that happen. So I’m a pretty happy camper. I wrote a piece that discusses a few of the ways in which I jacked up my ROI, you can check it out here.

So don’t give up. You can definitely tweak Hummingbot until it becomes an infinite money machine. All that said, here’s what I learned and started applying from this incident.

What I Learned: (My Current Due Diligence)

Ever since the incident. I sat down and jotted down a list of steps I would religiously take before I started going big on each pair. They are,

  1. Research the market pair.

Objective: Understanding the trading behavior behind the coin.

Do thorough due diligence into each pair you’re planning to mine. Look at the charts for the past 4–8 weeks. Answer these few questions.

  • What is the average volatility of this pair? Use the Average True Range Indicator.
  • Were there incidents of extreme volatility that go beyond the average?
  • How often do these extreme volatilities happen?
  • How will your bot react to these extreme volatilities? Do they act as mine did, buying high and selling low? Or are they prepared to react properly?

2. Test run the pair on paper

Objective: To understand the characteristics and volatility of the pair.

I paper trade each pair I intend to mine for at least 2–3 days, constantly tweaking the parameters to make sure I get to the lowest tolerable spreads. Ideally, we want to make profitable trades (a positive trading profit and loss). But keeping it to as close to $0 would be good enough, assuming we get rewards on the side.

3. Test run with a small amount of real money live.

Objective: To get a picture of the rewards ROI per $ in bot and cover edge cases.

I then test run it now with a small amount of real money on the pair. Testing it live and on paper trade is different because real trade takes into account the latency it takes to send orders to exchange and possible errors that might happen with our bot in extreme conditions.

Also, psychologically, we react very differently when it’s paper trading vs live trading. Ideally, your bot should go through at least one of the extreme volatilities above with minimal damage.

Check through the profitability page on Hummingbot’s dashboard.

If your total P&L is negative, go back to step 2 and restrategize, then come back to step 3 and try again. Keep doing that until it’s positive consistently.

4. Bring in the big guns.

Objective: Putting paper into the infinite money printer.

If you’ve run all the above steps well, and you’re significantly confident that your bot will be able to return a good ROI for you, then it’s time to bring in the big guns and maximize your rewards.

5. Pro Tip: Calculating actual ROI%

Listen, before we laugh our way to bed again, we do have to remember that each pair has a constant amount of reward, so every single dollar you add to the pool will have diminishing returns. For example, imagine a pair that is is giving out $100 rewards a day. The below example doesn’t take into account spreads and trading PnL.

Example A:
There are $1000 trading in the pool, so every $ in the pool fetches $0.10 of rewards equally ($100/$1000). If $200 of the $1000 is yours, then you’re getting $20 of rewards a day.

Example B:

Now, you bring in another $2000 into the bot, the pool becomes $3000, and every $ fetches $0.033 now ($100/$3000). Since you own $2200 of the $3000, you earned $73.33. Sweet!

Not exactly.

In Example A, your ROI% is 10% ($20 reward / $200 capital).

In Example B, your ROI% is 3.33% ($73.33 reward / $2200 capital)

In Example A, you’re beating all the passive liquidity pools out there in Uniswap by a long mile, but that is no longer true in Example B. Of course, the example above doesn’t take into account your bot’s spreads (Check out this awesome piece by Hummingbot on how the rewards are calculated).

Also, it doesn’t take into account your trading PnL, so if you’re trading profitably, well… Wait, why are you even reading this if you’re algo-trading profitably? DM me please, I have so many questions.

DM me to give me your secret.

Outcome

Nowadays, I’m looking at a consistent ~7–8% ROI per week. I experience these drawdowns less, and even then, I tend to have a net profit beyond the above losses. Losses like the above sure goes a long way in educating us and teaching us how to be better traders. My greed and impatience were whacked.

Granted, I’m sure there are still a lot more lessons in trading-land, but I sure hope this money printer doesn’t jam in the near future. May Hummingbot live long and prosper.

If you liked this piece!

Give me some claps!

Furthermore, I would love feedback and suggestion on more pieces that I can write on. Also, you can read more of my other pieces on how I mitigate inventory risk.

--

--