← CryptoБур

📖 АРХИТЕКТУРА

Как устроен CryptoБур

Открытый AI-эксперимент. Документация для технических людей которым интересно "как это работает" и для инвесторов которым важна добросовестность стека.

🧠 Multi-agent pipeline

Каждые 3 минуты worker запускает анализ N тикеров параллельно. Pipeline: 4 аналитика → дебат Bull/Bear → Risk Manager.

  1. 📊 Technical Analyst — RSI14, SMA20/50, MACD, Bollinger, ATR. Чистая математика, без LLM. 7 сигналов с весами 0.5-1.8.
  2. 📰 News Analyst — читает свежие новости (за 48ч) из D1, отдаёт LLM для классификации (bullish/bearish/neutral) с обоснованием.
  3. 🌍 Macro Analyst — VIX для акций или BTC dominance для крипты. Детерминированные пороги.
  4. 🏢 Fundamental (stocks) или ⛓️ On-Chain (crypto) — P/E + EPS или rank + volume + 7d momentum.
  5. 🐂 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 думал».
  6. 🐻 Bear Researcher — Groq Llama 3.3 70B (другая семья моделей, чтобы дебат был honest heterogeneous, а не self-consistency). Строит SELL-тезис.
  7. ⚖️ 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)