moonmath
Bullshit Crypto Price Projections, Now in Your CLI!
This is a re-implementation of Moon Math that runs locally as a CLI
program. It's written in Go using the Bubble Tea library, and uses
Coindesk to source price data.
Installation
Go to the Releases page
and download the archive for your operating system and architecture. (For the
uninitiated, "Darwin" means macOS.)
Configuration
By default, the program will use Bitcoin along with various goals and bases of
comparison. With the --asset
flag, another asset supported by Coindesk can be
chosen. These can even be chained, e.g. --asset BTC --asset ETH
, to show
projections for multiple assets simultaneously.
The builtin default config only has special
goals a handful of the most popular assets. With the --config-file
flag,
however, one can specify a YAML file that overrides these defaults and adds
goals for other assets.
Check out coindesk/assets.go for a full list of
supported assets. Keep in mind these have not been exhaustively tested, and
it's likely that many will fail with the default configuration settings.
"Theory"
Given a pair of quotes taken at the start and end of some period,
$$ (t_s, p_s), (t_e, p_e) $$
we can derive the total gain for that period, and its length in days.
$$ g = p_e / p_s $$
$$ d = t_e - t_s $$
Combining these, we can calculate the compounding daily periodic rate (CDPR).
$$ r = g^{1/d} $$
We can use this rate to project the price $ p_f $ at some $ x $ days in the
future.
$$ p_f = p_e r^x $$
If we instead make $ p_f $ a target price, we can solve this equation for $ x $,
telling us how many days it will take to reach that target.
$$ x = {{log(p_f) - log(p_e)} \over log(r)} $$
Future Improvements
- Add more default configurations for various assets.
- Allow projection by date, e.g. use the CDPR to calculate what the price
would be on a particular date.
- Log errors to a file.