Tracks BTC daily prices and CPI, computes CPI-adjusted BTC series, and visualizes nominal vs real in a simple Streamlit app.
- Create a virtual environment (recommended) and install deps:
python -m venv .venv
. .venv/Scripts/Activate.ps1 # PowerShell
pip install -r requirements.txt
- Optional: set a custom DB path (by default uses
data/tracker.db):
$env:TRACKER_DB_PATH = "c:\\path\\to\\tracker.db"
Run ingestion scripts (first CPI, then BTC):
python -m src.ingest_cpi
python -m src.ingest_crypto
python -m src.ingest_news
Or via helper script on Windows PowerShell:
scripts\run_all.ps1
Compute CPI-adjusted series (defaults to BTC and earliest base date):
python -m src.compute --asset BTC --base-date 2015-01-01
Launch the dashboard:
streamlit run app/streamlit_app.py
Use the sidebar to ingest top cryptos and choose a timeframe. Export chart data as CSV.
- Click "Ingest/Refresh Top Cryptos" to fetch top N by market cap (CryptoCompare) and store daily prices.
- Choose timeframe (7D/30D/90D use hourly data when available; 1Y/2Y/MAX use daily).
- Select a single asset for a detail view with indicators (SMA20/50/200, RSI, MACD) and pattern insights (golden/death cross, 52w breakout, trend).
- Use the chat box to ask about trend, RSI, MACD, and levels — the local assistant replies based on on-chart indicators (no external LLM required).
- Select multiple assets to compare nominal prices on one chart.
Theme: The app uses a darker tech-themed palette with neon accents (config in .streamlit/config.toml). Optional dynamic globe background.
- Fetch hourly OHLCV for a symbol (last 60 days):
python -m src.ingest_intraday --symbol BTC --days 60
- In the app’s sidebar, use “Ingest Hourly (SYMBOL) — 60D” under the detail view to pull hourly for the selected asset.
- News:
python -m src.ingest_newsaggregates headlines from CoinDesk, CoinTelegraph, Decrypt, The Block, Bloomberg Crypto, Reuters, CNBC, Fortune, Yahoo Finance, Bankless, Messari (and more) into the local database. - Fear & Greed: The Market Overview shows a Fear & Greed gauge and 90D history (Alternative.me API).
- Social (X/Twitter): Set an env var to enable fetching recent tweets from your favorite creators.
$env:TWITTER_BEARER_TOKEN="<your_x_bearer_token>"
- Backgrounds (Sidebar → Background): Neon Grid (animated), Starfield, Matrix Rain.
- CPI series uses FRED
CPIAUCSL(seasonally adjusted, monthly). It is forward-filled to daily to match price dates. - CoinGecko daily prices are used; latest observation may be T-1 depending on their feed.
- All dates are treated as UTC and stored as
YYYY-MM-DD.
Bring up the terrestrial x cyberpunk portfolio showcase:
streamlit run app/portfolio_app.py
Update the links inside PROFILE["links"] in app/portfolio_app.py with your own handles to personalise the call-to-action buttons and sidebar shortcuts.