📖 АРХИТЕКТУРА
Как устроен CryptoБур
Открытый AI-эксперимент. Документация для технических людей которым интересно "как это работает" и для инвесторов которым важна добросовестность стека.
🧠 Multi-agent pipeline
Каждые 3 минуты worker запускает анализ N тикеров параллельно. Pipeline: 4 аналитика → дебат Bull/Bear → Risk Manager.
- 📊 Technical Analyst — RSI14, SMA20/50, MACD, Bollinger, ATR. Чистая математика, без LLM. 7 сигналов с весами 0.5-1.8.
- 📰 News Analyst — читает свежие новости (за 48ч) из D1, отдаёт LLM для классификации (bullish/bearish/neutral) с обоснованием.
- 🌍 Macro Analyst — VIX для акций или BTC dominance для крипты. Детерминированные пороги.
- 🏢 Fundamental (stocks) или ⛓️ On-Chain (crypto) — P/E + EPS или rank + volume + 7d momentum.
- 🐂 Bull Researcher — DeepSeek V4 Pro с reasoning_effort=high. Получает все 4 отчёта, историческую калибровку (per-role accuracy), top-3 семантически похожих прошлых ситуаций через Vectorize. Возвращает JSON {thesis, strength, args, counters} плюс chain-of-thought который сохраняется для будущей UI-панели «как Bull думал».
- 🐻 Bear Researcher — Groq Llama 3.3 70B (другая семья моделей, чтобы дебат был honest heterogeneous, а не self-consistency). Строит SELL-тезис.
- ⚖️ Risk Manager — детерминированный, без LLM. Считает composite score (0.6 * debate_delta + 0.4 * analyst_score), накладывает vol penalty (через ATR), выносит BUY/SELL/HOLD с уверенностью 0..1 и размером позиции 0..5% эквити.
💾 Память (Vectorize + D1)
Каждая новость и каждое решение AI embed-ится в @cf/baai/bge-small-en-v1.5 (384 dim) и кладётся в Cloudflare Vectorize index cryptobur-memory. Перед каждым debate Bull/Bear делают query "похожие сетапы по этому тикеру" и получают top-3 прошлых случая в промпт. Так система не теряет историю.
Все решения пишутся в decisions D1 table. Раз в сутки Reflector cron берёт решения 7-дневной давности, сверяет с реальной ценой через Yahoo Finance, и обновляет per-role accuracy (бычьи сигналы Technical верны в N% случаев на крипте). Это вшивается в следующий промпт как "историческая калибровка".
📡 Источники данных
- Цены / индикаторы: Yahoo Finance v8 chart (OHLC).
- Новости: Finnhub /news (general + crypto), RSS — CoinDesk, CoinTelegraph, Yahoo Finance, Google News; Reddit /r/wallstreetbets, /r/CryptoCurrency, /r/stocks, /r/investing.
- Sentiment: DeepSeek V4 Flash batch scorer (RU summary). Groq Llama 3.3 как fallback при rate-limit.
- Fundamentals: Finnhub /stock/metric (P/E, EPS, market cap).
- On-chain: CoinGecko / CoinPaprika fallback / Binance ticker.
- Macro: Yahoo ^VIX для акций, CoinPaprika /global для крипты.
🏗 Инфраструктура
- Cloudflare Pages — статический сайт (Next.js export).
- Cloudflare Workers — backend cron worker
cryptobur-api, запускает 5 crons (news ingest, sentiment, coverage analyze, embed+trade, daily reflector). - Cloudflare D1 — Postgres-like SQLite на edge. 14 таблиц: news, decisions, coverage, calibration, embeddings_log, alpaca_orders, portfolio_snapshots, sim_*, user_alpaca_orders, user_portfolio_snapshots, worker_user_exchanges, ingest_runs.
- Cloudflare Vectorize — semantic memory.
- Cloudflare Workers AI — embeddings + fallback Llama 3.1 8B.
- DeepSeek API — primary LLM (V4 Pro для Bull, V4 Flash для аналитиков и Bear-fallback). Automatic prompt caching снижает стоимость на повторных запросах.
- Cloudflare Tunnel — exposes local Ollama (Qwen 3.5 9B) на GPU как last-resort fallback при выпадении всех cloud-tier.
- Supabase — Auth (Google OAuth) + user profiles + encrypted user_exchanges.
- Alpaca / Binance / Bybit — брокеры через abstract Broker interface.
🔒 Безопасность
- API-ключи бирж шифруются AES-256-GCM на сервере перед записью в Supabase. Master-key хранится только в Worker Secret store, в БД его нет.
- Двойная защита: master switch (ai_trading_enabled) + per-exchange enabled. Оба обязательны.
- Согласие на торговлю фиксируется с timestamp (audit trail).
- Все cron POST endpoints требуют Bearer CRON_SECRET.
- Rate limits: 30 req/min/IP на public reads, 10 cache-misses/5min/IP на /api/decision.
- Не-custodial: мы не держим деньги. Только зашифрованный ключ который AI использует для размещения ордеров. Withdrawals у ключа должны быть выключены пользователем.
🤝 Что в работе
- OKX / Tinkoff брокеры.
- Backtest на 5 годах истории с LLM-debate per bar (тяжёлая задача).
- Schwab brokerage integration (ждём одобрения API).
- Public dev API.
- iOS / Android (через PWA).
📊 Метрики (live)
- /learning — per-role accuracy
- /track-record — overall daily report accuracy
- /portfolio/demo — live AI portfolio equity
- /backtest — попробуй любой тикер