A public experiment in AI-assisted investing — and in figuring out what AI should actually do vs what it shouldn't.
| Metric | Value |
|---|---|
| Starting Capital | €5,000.00 |
| Current Balance | €4568.97 |
| Total Return | -8.62% |
| Days Active | 80 |
| Asset | Allocation | P/L |
|---|---|---|
| 📊 EQQQ | 41.9% (€2097.21) | +10.50% |
| 📊 ETH | 26.6% (€1332.11) | +15.37% |
| 📊 4GLD | 9.5% (€474.13) | +0.96% |
| 📊 XEON | 9.0% (€451.74) | +6.07% |
| 💵 CASH | 4.3% (€213.78) | — |
Day 80 Close: ETH +15.37%, 4GLD +0.96%.
A public experiment where an AI system manages €5,000 of simulated capital, making real investment decisions based on real market data.
This is NOT financial advice. Simulation for educational/entertainment purposes only.
The system has gone through two distinct phases:
Claude (Anthropic's AI) had full control. It analyzed markets, chose assets, decided position sizes, and executed trades — all autonomously. The AI agent ran 5x daily via cron, using tools (file editing, shell commands) to directly modify the portfolio.
Results: the AI made some good calls (ETH, gold) but also costly ones (a large inverse S&P 500 bet that went wrong). More importantly, the automation was fragile — the agent would timeout, exhaust its turn limit, or fail silently. When it worked, it consumed thousands of tokens per session on tasks that didn't require intelligence.
After analyzing the failures with Claude, we redesigned the architecture around a principle: if it doesn't require reasoning, don't use AI for it.
Now the system works like this:
- Deterministic scripts handle everything mechanical: fetching prices, computing signals (SMA, RSI, MACD, ATR), generating trade orders, applying trades to the portfolio, writing the daily log, git commits, and sending Telegram reports
- Claude does one thing: reads the pre-computed data and writes 2-3 sentences of market analysis. One turn, no tools, 45 seconds. If it fails, the system continues without it — nothing breaks
The quantitative signal pipeline (generate-quant-signals.js + execute-signals.js) replaced narrative-driven trading with systematic rules: trend following, momentum, mean reversion, and volatility filters with position sizing based on ATR.
Token consumption dropped ~80%. Reliability went from "fails weekly" to "never fails".
- Legal investments only — anything legal in Spain
- Real market data — actual prices and conditions
- Full transparency — all decisions and reasoning public
- No private data — nothing confidential published
- 📉 Balance reaches €0 (game over)
- 📅 One year passes (January 27, 2027)
- 🏆 Balance reaches €50,000 (10x victory!)
makemerich/
├── README.md # This file (auto-updated)
├── LEDGER.md # Daily log (reverse chronological)
├── STRATEGY.md # Investment rules and approach
├── RULES.md # Hard constraints (position limits, stops)
├── data/ # Portfolio state, prices, signals, trades
│ ├── portfolio.json # Current holdings
│ ├── .prices-latest.json
│ ├── .signals-latest.json
│ ├── .quant-signals-latest.json
│ ├── .trade-orders.json
│ └── trades/ # Monthly trade logs
└── scripts/
├── fetch-prices.js # Yahoo Finance + Coinbase
├── fetch-history.js # Historical OHLCV data
├── update-portfolio.js # Recalc at current prices
├── validate-rules.js # Check position limits, stops
├── generate-signals.js # Threshold-based alerts
├── generate-quant-signals.js # Technical analysis (SMA, RSI, MACD, ATR)
├── execute-signals.js # Generate binding trade orders
├── apply-trades.js # Apply orders to portfolio.json
├── generate-ledger-entry.js # Build LEDGER draft (data only)
├── append-ledger.js # Insert entry at top of LEDGER
├── update-readme.js # Update this file
└── daily-update.sh # Orchestrator (cron entry point)
Last updated: 2026-05-04 by Hustle