TradingHub este o platformă self-hosted care rulează 8 boți Freqtrade plus câțiva boți algo nativi în Django pe Binance, toți în mod dry-run, coordonați de ceea ce eu numesc un plan de control AI. Problema pe care am vrut să o rezolv nu era „să fac bani" — era „pot orchestra zeci de semnale de trading, modele ML și opinii LLM într-un singur pipeline de decizie auditabil, fără să risc vreodată capital real?" Deci tot ce citești aici este paper-trading. Niciun ban real nu a atins acest sistem, iar nimic din acest articol nu este sfat financiar.
Constrângerea asta a modelat fiecare decizie de design. Paper-trading înseamnă că pot fi imprudent cu experimentele și riguros cu infrastructura, exact compromisul pe care îl vrea un builder solo când învață un domeniu la fel de nemilos ca trading-ul algoritmic.
Forma sistemului
La bază sunt boții. Opt instanțe Freqtrade rulează în dry-run pe Binance, iar lângă ele stau boți nativi în Django care implementează strategiile clasice: DCA, grid, trend-following și o strategie RSI. Fiecare produce semnale. Niciunul nu acționează pe cont propriu.
Deasupra boților se află Alpha Engine, orchestratorul care decide dacă se întâmplă efectiv ceva. Preia semnale ponderate din fiecare sursă și rulează un calcul de consens, apoi împinge rezultatul prin 6 porți de siguranță și un motor de risc cu 11 verificări înainte ca vreun ordin (simulat) să fie permis. Porțile și verificările sunt partea plictisitoare, dar de rezistență, a întregului proiect. Un semnal poate fi sigur, popular printre boți, și tot să fie respins pentru că regulile de poziționare, drawdown sau corelație spun nu. Stratificarea asta — generezi liber, aprobi conservator — este ideea centrală.
Straturile LLM
Asta e partea cu care m-am distrat cel mai mult și în care am cea mai puțină încredere, o combinație sănătoasă.
Peste stiva numerică am adăugat câteva straturi LLM, toate rulând prin Gemini via OpenRouter. Primul este un agent de analiză simplu, cu acces la 19 tools — poate extrage date de piață, citi starea boților și raționa despre condiții. Al doilea este cel despre care mă întreabă lumea: o dezbatere bull/bear cu 8 agenți. Jumătate dintre agenți argumentează pentru o poziție, jumătate împotrivă, iar dezacordul în sine devine semnal. O poziție pe care și taurii, și urșii o detestă e ușor de evitat.
Mai există și un panel de 5 personaje-investitori — agenți promptați să raționeze precum Buffett, Burry, Wood, Dalio și Simons — care emite propriile opinii ponderate, plus o buclă de „evoluție a genomului" care mutează parametrii strategiilor în timp. Vreau să fiu sincer despre ce este asta: un experiment care testează dacă dezacordul structurat între LLM-uri produce intrări mai bine calibrate decât părerea încrezătoare a unui singur model. Nu am cifre de performanță verificate pe care să le revendic. Ce pot spune e că formatul de dezbatere scoate la suprafață raționamente pe care altfel le-aș rata, iar pentru că totul e paper-trading, o decizie LLM proastă nu costă nimic în afară de putere de calcul.
ML pe CPU, intenționat
Stiva de semnale ML este deliberat prietenoasă cu CPU-ul. GARCH (prin librăria arch) se ocupă de modelarea volatilității, XGBoost face predicțiile cu gradient boosting, FinBERT rulează analiză de sentiment pe text din știri și social, iar un Isolation Forest urmărește anomaliile și evenimentele de lichidare. Fiecare dintre ele rulează confortabil fără GPU.
A fost o constrângere, nu un accident. Am vrut ca tot ansamblul să poată face deploy pe un VPS ieftin, fără GPU, așa că am evitat arhitecturile care cer acceleratoare. Mențiunea cinstită: mai sunt două modele în codebase — un Temporal Fusion Transformer și un agent de reinforcement learning (stable-baselines3 + gymnasium) — care nu sunt antrenate încă. Scheletul există; ponderile nu. Deci când spun „stivă ML", imaginează-ți un nucleu funcțional CPU-first cu două sloturi aspiraționale încă goale.
Planul de control
Ce o face platformă, nu script, este orchestrarea. Peste 60 de task-uri programate în Celery Beat țin sistemul în mișcare: aduc date, rulează modele, reîmprospătează dezbaterile, recalculează riscul. Un ErrorLog plus o logică de self-healing prinde și reîncearcă eșecurile, iar alertele pe Telegram mă anunță când e nevoie de un om. Există și o buclă de autoresearch alimentată de 242 de specificații de strategie în markdown — note de cercetare pe care un proces de evoluție le citește, testează și iterează, cu o „arenă" Claude-vs-Codex care compară abordările. Se sprijină mult pe același flux asistat de AI pe care îl folosesc în toate proiectele mele.
Frontend-ul este un dashboard React/shadcn — 34 de pagini — cu actualizări live prin WebSocket pentru monitorizare, performanță, dezbateri și o integrare cu piața de predicții Polymarket. Este o unealtă single-user, self-hosted, nu un produs multi-tenant.
Stiva
- Backend: Python 3.12, Django 5.1 + DRF + Channels, Celery + django-celery-beat.
- ML: scikit-learn, statsmodels,
arch(GARCH), XGBoost, LightGBM,transformers(FinBERT), stable-baselines3 + gymnasium (RL, neantrenat). - Frontend: React 18 + Vite + TypeScript + Tailwind + shadcn/ui + TanStack Query + lightweight-charts.
- Infra: PostgreSQL 16, Redis, Nginx, Docker Compose (16 containere), CI cu GitHub Actions.
- API-uri: Freqtrade, OpenRouter (Gemini), Polymarket, web3, opțional Interactive Brokers.
O lecție despre secrete
Un lucru pe care merită să-l semnalez sincer: în timpul unei revizuiri am descoperit că un README expusese la un moment dat o credențială de admin. Nu o reproduc aici, iar concluzia e cea evidentă — documentația este cod, iar o credențială lipită într-un ghid de setup este o credențială scursă. Dacă construiești tooling self-hosted, scanează-ți documentele la fel cum îți scanezi sursa. E o greșeală ușor de făcut când mergi repede, în solo, și ușor de prevenit cu un scanner de secrete în pre-commit.
Unde a ajuns și ce urmează
TradingHub este un MVP. Este deployat live în sensul că rulează continuu în mod paper, cu un Docker Compose de producție, tooling de certbot și backup, și CI — dar „live" aici nu înseamnă niciodată ordine reale. Documentele de stare a sistemului sunt datate la începutul lui 2026 și le țin la zi pentru că orchestrarea e suficient de complexă încât altfel aș pierde firul.
Ce pot verifica: arhitectura, stiva, stratificarea porți/risc și nucleul ML CPU-first. Ce nu pot verifica și nu voi revendica: performanța reală de trading, PnL-ul sau cât din funcționalitatea LLM și ML-neantrenat este cu adevărat operațională versus aspirațională. Modelele TFT și RL sunt pasul evident următor — antrenarea lor e diferența dintre un pipeline deștept și unul complet.
Dacă există un fir comun în acest proiect, este chiar procesul de build asistat de AI. Am scris despre abordarea asta în cum livrez 11 produse solo cu un flux de dezvoltare asistat de AI, iar TradingHub este unul dintre cele 11 produse pe care le construiesc ca fondator solo. Dacă vrei să vezi restul a ceea ce lucrez, aruncă o privire la proiectele mele.
Încă o dată, pentru că e important: acesta este un sandbox de paper-trading. Nimic de aici nu este sfat financiar.