Open source • Python 3.13 • simulated capital by default

Most trading bots do arithmetic. This one reads the chart, remembers its trades, and has to defend every call.

Semantic Signal renders a 1920×1080 candlestick chart for a multimodal model, keeps a 768-dimensional memory of every closed trade, and puts one deterministic expected-value gate between the model's opinion and any order.

trading
simulated capital (paper)
live executor
exchange testnet only — no real funds
test suite
1,549 tests · 1,532 passing · 17 skipped
providers
Google AI, DeepSeek, OpenRouter, local — switchable

How it compares — including the rows where I lose

Feature-by-feature against three mature products. ✔ / ✘ only where I could check their public documentation; a question mark means I could not verify it and would rather show a gap than a guess. Freqtrade, 3Commas and Cryptohopper have been in production for years and run thousands of accounts — the rows near the bottom say so.

CapabilityFreqtrade3CommasCryptohopperThis project
Chart vision — an image goes to the model, not floats??✔ 1920×1080 PNG per cycle
Semantic memory of its own closed trades✔ ChromaDB, 768D
Bull case / bear case before deciding??✔ one prompt, two roles
Deterministic expected-value gate before entry??✔ math overrides the model
Free news / community context (no paid API keys)??✔ RSS + Reddit
Automated order execution✔ separate executor service
Trading with real money today✘ testnet only
Years in production, thousands of users✘ started Dec 2025
Hosted for you — nothing to install or babysit✘ you run it yourself
Proven, audited profitability✘ neither do I — nobody can promise this

Comparison reflects the vendors' public documentation as of September 2026, not their paid marketing material. If a ✔ or ✘ is wrong, mail [email protected]and it gets fixed.

chart_vision

An image, not just indicator floats

A Plotly candlestick chart at 1920×1080 with SMA, RSI, CMF and OBV goes to the multimodal model alongside the numeric stack. Wick geometry, volume spikes and wedges are read off the picture — but every number the model cites is checked against the computed values.

vector_memory

768D memory of its own mistakes

Every closed trade is embedded with BAAI/bge-base-en-v1.5 into ChromaDB. Before each decision the bot retrieves the top-5 most similar past setups, each tagged with aSurprise Ratio so a lucky win does not become a rule.

ev_gate

Deterministic math beats the model

Expected value is computed from the bot's own closed-trade history. If the math says the trade is not worth taking, the signal is rejected — the model does not get a vote. Position size comes from the same history, not from a confidence score.

executor

Reasoning and execution are separate processes

The engine emits one atomic JSON decision; a second service does CCXT order placement, leverage and exchange-side stops, and writes a verdict journal the engine reads back. The bot confirms what happened to its own order instead of assuming it.

Built in a Wrocław apartment after warehouse shifts

In December 2025 I was working 8-hour warehouse shifts in Poland and testing "AI trading bot" templates in the evenings. Nine months later the project has 1,549 automated tests, an 8-agent development system that maintains the codebase, and a live executor running against an exchange testnet — not a cent of real money, by design.

Read the full development history →

From the blog

Where every number on this page comes from

Nothing here is a screenshot from a course. All of it lives ingithub.com/qrak/LLM_trader:

chart image 1920x1080    src/analyzer/pattern_engine/chart_generator.py
999 candles, 50 lvls     config/config.ini · src/analyzer/data_fetcher.py
trade memory 768D        src/trading/vector_memory.py (BAAI/bge-base-en-v1.5)
EV gate, pre-entry       src/trading/position_management.py
dev agents x8            .ai/ (supervisor + 7 specialists)
tests 1,549            python -m pytest tests -q   -> 1,532 passed, 17 skipped

⚠️ Risk disclaimer: Semantic Signal is an experimental, open-source software project — not financial advice, not a money machine. It trades simulated capital by default, it has lost money on paper during development, and trading cryptocurrencies carries substantial risk of loss. Read the full disclaimer.