Open Source • Paper Trading by Default • Python 3.13

Freqtrade, 3Commas, Cryptohopper — None of Them See What This Bot Sees

An autonomous crypto trading agent with multimodal 1080p chart vision, 768D vector trade memory, self-written rules, and deterministic expected value gates.

The Technical Scoreboard

CapabilityFreqtrade3CommasCryptohopperSemantic Signal (Mine)
Chart Vision (reads image)✔ (Gemini Flash)
Semantic Trade Memory✔ (ChromaDB 768D)
Bull/Bear Self-Debate✔ (Single-Prompt)
EV + Falsification Gates✔ (Deterministic Math)
Hardened CCXT Executor✔ (llm_trader_executor)
Self-Maintaining Codebase✔ (8-Agent System)
Zero-Cost News & Sentiment✔ (RSS + Reddit RAG)
👁️

Multimodal Chart Vision

Renders 1080p Plotly candlestick charts directly to Gemini Flash. The model reads visual geometry (support wicks, volume spikes, wedge breakouts) rather than flat indicator floats.

🧠

768D Vector Memory

Every closed trade is embedded into ChromaDB (BAAI/bge-base-en-v1.5). Queries top-5 similar past trade setups and applies the Surprise Ratio metric to filter out market noise.

⚔️

EV & Falsification Gates

Calculates Kelly Criterion position sizes based on historical win rates and forces the LLM to write an explicit price invalidation trigger before any signal is accepted.

🛡️

Decoupled Execution

Separates reasoning from live execution. The main engine outputs atomic JSON decisions to llm_trader_executor, protecting exchange-side OCO stop-losses from API latency.

Built in a Wrocław Apartment After Warehouse Shifts

In December 2025, I was working 8-hour warehouse shifts in Poland. Tired of subscription "AI bots" that were just simple moving average crossovers, I spent 7 months building a cognitive trading engine with 1,270+ automated tests.

Read the Full 7-Month Development History →

From the Blog

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