Quarantine incoming

I hate to write about COVID-19 again, but it’s probably one of the most important things to happen in my lifetime at this point, so I might as well go on about it. Hopefully I’ll be able to look back on these posts in a few years and … reminisce?

Bitcoin has lost around fifty percent of its value in the past few days. Equities markets are in free fall as well. Not even the NYSE’s circuit breakers nor a 1.5 trillion dollar promise from the Fed this morning could stop it. I think I’m handling it extremely calmly. I expected an end to this bull run for some time, so I’ve been sitting on some cash, in my IRA, and have been taking a large position in GBTC. I must admit BTC’s fall has me a bit taken.

Two hour chart for BTC. A year of gains wiped out in a day.

Right now I’m not changing any plans, as far as investing goes. I’ll continue my DCA targets, including buying some BTC tomorrow for the cold wallets, as well as my daily buy orders for the few stocks I’m scaling into. More GBTC on Monday as well. Thankfully, I decided to allocate some short term savings to my upcoming bills, so rent, car note and credit card payments will be good for the next month.

Beyond that, who knows. My wife has some security with her Federal job, and I can work from home, but I don’t think my boss can stay in business much longer. We’ve had too many clients get bought out in the last few months, and it’s been a while since we signed a new account. It’s time to update my resume and find something to do.

One of my clients is a pediatric dental office, and they said they’re running out of face masks, and are unable to procure more. Can you imagine? Doing dentistry without a face mask? I don’t know who that’s worse for, the hygienists or the patients.

Watching all this unfold on Twitter has been crazy. Trump’s failure will likely go down in history next to Nero’s fiddling, and it appears that he’s sick as well. Last night he caused chaos by announcing a travel ban to the EU, but then had to issue corrections to he speech in the hours after.

There’s still a segment of the population that is in denial about this. I’ve got a small sample size to go on, but most of the people that I’ve interacted with lately are ho-hum about this thing right now. My wife, my youngest, and myself have all been nursing various symptoms over the past week, runny noses, sneezing, coughing, low fever, you name it. I’d say it was just a cold if I wasn’t naive. All I can do right now is make them wash their hands everytime we get in our out of the car and keep them away from old people.

I had to run errands today. After I went to do a job at the aforementioned dentist, (no patients, thankfully), I stopped by the grocery store to stock up again. I’ve spent about six hundred over the last two or three weeks, stocking up. After I got home I had to run to the tire store to fix a flat. I took my youngest, home sick, to give my wife a break for a few hours. We picked up her sister and went to the playground to let them blow off some steam, and the library to stock up on books. I feel slightly guilty about it, but I have to choose my battles. It’s not time to lock down yet, and when it is, it’s going to be hard enough.

My university, and most of the others around the state, have extended Spring Break another week and will be going to all online classes. The local school divisions haven’t done anything other than cancel sporting activities. The governor has declared a State of Emergency. There are several confirmed cases in the region, but I don’t think we’ll be seeing the brunt of it for another week.

My wife and I seem to be in a detached state of inevitability about things. It’s like we’ve prepared for a hurricane that’s bearing down on us, but even that metaphor falls flat. the next couple weeks will be very, very difficult for a lot of people. I don’t know how bad it will get for us; I imagine the financial repercussions will be more severe than any health issues. I just hope we don’t lose anyone we know.

Estimating GBTC price from BTC after-hours activity

Grayscale Bitcoin Trust (GBTC) is the name of a publicly traded OTC investment product listed on the public OTC markets. It’s a way for US investors to take a position in Bitcoin through brokerage and retirement accounts like IRAs. A lot of OG crypto-types scoff at the prospect of purchasing such an asset, since you don’t actually control the BTC or the private keys, but for some this is an attractive option, or an only one. I’ve been personally taking positions in GBTC over the past 3 or so years through my retirement IRA. One of the most underlooked qualities of GBTC through an IRA is that all transactions are tax-free. I can take profits in my IRA at any time without worrying about tax liability, which is not something I can say for my actual crypto holdings.

Two of the downsides of GBTC is that Grayscale takes a two percent management fee. This isn’t a big deal to me because of the expected gains in a bull run. The other is that there is a premium on GBTC over the underlying asset value. Each share of GBTC represents .00096884 Bitcoin, but the GBTC’s price is usually 30-10% higher than the value of the underlying asset.

One of the main differences between the equities and crypto markets is the fact that crypto is 24/7. Often, during times when BTC has made a big price movement, I’ve wondered what the corresponding change in the price of GBTC would be (and in my portfolio!) So, I have written a small Python package to calculate this that I call GBTC Estimator.

I have it setup to get public BTC prices from Gemini (via the excellent CCXT package). Right now it’s using IEX’s daily GBTC data (and required an IEX API key), so it only has access to daily OHLCV (open, high, low, close, volume) data. We take the close price of GBTC, and divide it by the price of BTC at the same time (4PM EST) to come up with the actual BTC per share. This number is then used with the current BTC price to come up with the estimated GBTC value.

This current version is run from the command line and returns the estimated price as well as the difference from the last close in dollars and percentage. I have plans to put this up as a website that updates automatically, but first I think I’m going to do some backtesting to see how accurate this is. I think there may be some arbitrage opportunities to be found here. I’ve already started refactoring and will have more updates to follow.