Live — Paper Trading (BTC/USDC)

SEMANTICSIGNAL LLM

An autonomous AI trading agent that reads charts, remembers outcomes, and learns from every trade — powered by multimodal AI, ChromaDB vector memory, and a multi-stage reasoning pipeline.

An experimental, local-first research loop combining chart vision, semantic trade memory, deterministic risk limits and public source code.
▶ Watch It Trade Live 📖 Read Full Story & Tech ⭐ Source Code ☕ Buy Me a Coffee
50+
Technical Indicators
24/7
Autonomous Trading
6
Pipeline Stages per Cycle
$0
Sentiment API Cost

⚙ How It Works

Every 4 hours, the bot executes a full analysis pipeline — from raw market data to a reasoned trading decision with SL/TP levels.

[17:00:00] [INFO] [AnalysisEngine] ── Starting 4h Market Cycle: BTC/USDC ──

# 1. Market Data Pipeline (CCXT)
✔ Fetched 999 OHLCV candles, 50-level order book, funding rate & 24h volume

# 2. Technical Calculator (Numba JIT)
✔ Computed 50+ technical indicators & dozens of deterministic chart patterns (RSI, MACD, ADX, ATR)

# 3. RAG Engine & Social Sentiment
✔ Ingested RSS news feeds & Reddit community sentiment (zero API cost)

# 4. Multimodal AI Analysis
✔ Visual Full HD candlestick chart analysis + Bull vs. Bear reasoning prompt + explicit invalidation step

# 5. Risk Governance & Execution
✔ Signal: BUY | Position: 1-3% (confidence-scaled) | SL: 2x ATR (profile-scaled) | TP: min 1.5 R:R at structure

# 6. Reflection & Memory (ChromaDB)
✔ Outcome embedded as 768D vector experience; semantic rule base updated

[17:00:14] [INFO] [TradingStrategy] Cycle complete. Decision logged to SQLite audit trail.
🔎

Read the Market

CCXT pulls 999 candles, a 50-level order book, funding rate and 24h volume from the exchange. Numba JIT computes 50+ indicators and dozens of deterministic chart patterns in milliseconds — the bot sees both the raw numbers and their technical context.

🗣️

Reason About It

The multimodal AI receives the Full HD chart image plus the indicator stack plus fresh news and Reddit sentiment. Its prompt asks it to state a bull case, a bear case and what would invalidate the proposed trade; deterministic risk checks remain outside the model.

🛡️

Decide Safely

Every signal runs a guard chain: symbol whitelist, position cap, R:R gate. Stop-loss scales with ATR volatility, take-profit targets minimum 1.5 R:R. The decision, reasoning, and risk parameters are all logged to the audit trail.

🧬

Learn From It

When a trade closes, its outcome is embedded as a 768D vector in ChromaDB. The reflection engine periodically synthesizes new rules from what worked and what didn't — flagging surprising outcomes so luck isn't confused with skill. Next cycle, the bot remembers.

🧠 Core Features

Not just another trading bot. This one reasons, debates, remembers, and improves.

🤖

AI Chart Reading

The multimodal AI reads candlestick charts visually AND numerically — interpreting 50+ indicators simultaneously and spotting patterns a human would miss.

A Full HD chart image with SMA, RSI and volume overlay is sent to the model alongside the raw indicator values. It sees the shape of the wicks, the volume context, the pattern structure — the same picture a human trader sees. And it's not taken on faith: every numeric claim is cross-checked against computed values.

⚔️

Bull vs Bear Internal Debate

Before every decision, the LLM argues BOTH sides. Bull case optimistic, Bear case pessimistic. Then it decides. More balanced, less emotional.

This is one model prompt with two requested perspectives, not an independent multi-agent debate. The system records the reasoning and applies deterministic execution checks, but it does not currently enforce a deterministic expected-value gate or evaluate missed opportunities as realized losses.

🧠

Long-Term Memory

Every closed trade is embedded as a vector in a semantic database. On the next cycle, the bot queries its own brain: "Have I seen this pattern before? What happened?"

Trade experiences, semantic rules, blocked trades, and confidence statistics live in four ChromaDB collections, embedded with BAAI/bge-base-en-v1.5 at 768 dimensions. Before each decision the brain retrieves the top-5 most similar past trades plus the rules matched to current conditions — scored by similarity, evidence quality, and timeframe freshness. The bot literally reviews its own history before acting.

🎯

Adaptive Risk Management

ATR-scaled stop-loss and take-profit, portfolio-percentage position sizing, and risk profiles that adapt automatically to market conditions and its own track record.

Three risk modes — aggressive, conservative, neutral — switch automatically based on win rate, average P&L, and market trend strength (ADX). Position size scales with confidence: fallback sizes of 1% / 2% / 3% of capital for LOW / MEDIUM / HIGH conviction. Stop-loss distance scales with volatility (ATR), take-profit targets minimum 1.5 R:R at structure, and friction from position-size clamping is measured and reported rather than silently ignored.

📰

Zero-Cost Market Intelligence

RSS news feeds and Reddit community context are read directly without separate sentiment-data API keys. The selected LLM provider may still have its own usage costs.

Every 4-hour cycle ingests up to 5 top articles, scored for relevance before they reach the model. Fundamentals come from CoinGecko and DeFiLlama, plus the Alternative.me Fear & Greed index. X/Twitter was tried and dropped — without paid auth it isn't reliably scrapable, so the bot honestly runs on Reddit + RSS rather than pretending otherwise.

🛡️

Safety-First Execution

Position caps, symbol whitelist, and validated SL/TP levels are enforced before every order. Paper trading by default.

Every signal passes a pre-execution guard chain: symbol whitelist → maximum position size. If governance or risk validation can't decide safely, the system fails closed — no order, no exceptions. Soft exits trigger at candle close, hard exits check against live ticker prices at 15-minute intervals. Real exchange execution is being built as a dedicated executor service — a separate component that places and manages live orders under the same guard chain, with capital simulated until the pipeline proves itself.

📊

Full Transparency

Live WebSocket dashboard with candlestick charts, decision graphs, and the latest prompt, reasoning, and response.

The FastAPI dashboard streams brain activity, position state, performance statistics, news, market data, and the memory bank across ten tabs. It exposes the latest full prompt and LLM response plus an admin console for configuration, force-analysis, and log streaming.

🔍

Real Market Awareness

Trains on real order book dynamics — counterparty orders, funding rate traps, liquidity squeezes. Not just abstract lines on a chart.

The system prompt teaches the LLM how real markets behave: where counterparty orders sit, how funding rates trap leveraged positions, how liquidity squeezes play out. A post-mortem is written after every closed trade and stored with the experience — so the bot learns market behavior from its own results, not from theory.

🏆 What This Project Combines

A local-first, open-source research loop — not a claim that every other bot lacks these capabilities.

Open-source projects solve different parts of the problem: Freqtrade focuses on execution and backtesting; TradingAgents explores multi-agent market research; Vibe-Trading combines vision and agent workflows. Semantic Signal combines chart vision, local trade memory and deterministic risk limits in one experimental research loop.

Comparable open-source projects

  • • Freqtrade: mature open-source execution and backtesting
  • • TradingAgents: multi-agent market research and debate
  • • Vibe-Trading: vision, memory and agent workflows
  • • Different scopes and architectures; no profitability ranking is implied

Semantic Signal LLM

  • ✔ Multimodal AI receives a 1920×1080 candlestick chart alongside market data
  • ✔ ChromaDB stores closed-trade experiences and retrieves relevant lessons by similarity
  • ✔ Bull/Bear reasoning prompt and an explicit invalidation step
  • ✔ ATR-scaled SL/TP, position caps, adaptive risk profiles
  • ✔ Reddit and RSS context without separate sentiment-data API keys
  • ✔ Live dashboard exposes the latest prompt, response and decision
  • ✔ MIT-licensed source code, simulated capital by default and documented AI-assisted development roles

Experimental research software. It does not claim superior returns or replace established execution platforms. Read the source and risk disclaimer before using any trading software.

🧭 LLM Trading Needs Careful Validation

Research systems, backtests, testnets and live execution all answer different questions. This project is still testnet-only.

⚙️

Model choice is not proof of returns

Classical ML, rule-based systems and LLM-driven systems each need validation under their own assumptions. A model label alone does not establish profitability.

📜

No shortcut from research to real capital

Backtests, paper trading, exchange testnets and live trading differ in fills, slippage, liquidity and operational risk. This project does not treat a research result as proof it will trade safely with real capital.

🚫

No profitability claim

This project has no audited live-profitability record and makes no return promise. Its public source, dashboard and decision records are evidence to inspect, not a substitute for independent validation.

🎟️

Research in the open

You are not buying a finished product. The repository and dashboard show an experimental project being developed in public, including its limits and corrections.

🪞 Not a Money Machine. Honest Limitations.

Every bot has flaws. Here are ours — stated plainly, before you ask. And here's what we're doing about each one.

Where It Struggles Today

  • ✘ 4-hour cycles. LLM analysis takes time — no HFT, no scalping. It's a swing trader, not a sniper.
  • ✘ Paper trading today. Real capital is the next step — and it will behave differently than simulation.
  • ✘ No X/Twitter sentiment. Reddit + RSS only. A noisy crowd on X is invisible to it.
  • ✘ LLMs are fallible. The model can be wrong — the falsification check catches a lot, not everything.
  • ✘ Losses are part of the process. It trades probabilities, not certainties. Some trades lose. That's trading.
  • ✘ Not financial advice. No guarantees, no promises of returns. Anyone claiming a bot prints money is selling you something.

How Each Flaw Is Being Mitigated

  • ✔ Quality over speed. Deeper analysis beats faster analysis. Longer timeframes = fewer, better decisions.
  • ✔ Paper → real, step by step. Position caps, ATR-scaled risk, and validated stop/target levels are built for the transition to live capital — and a dedicated executor service for live exchange orders is under active development.
  • ✔ More sources in progress. Additional sentiment channels are on the roadmap — without paying for API keys.
  • ✔ Self-correction loop. Every wrong call is embedded into memory and reviewed — the same mistake gets harder to repeat.
  • ✔ Risk-first design. EV framework, falsification checks, and 1,380+ tests exist precisely because losses are expected.
  • ✔ Transparency instead of promises. Every trade, prompt, and decision is public — judge it yourself.

The honest pitch: this is an experiment in autonomous AI trading — running in the open, with its flaws visible, and improving every cycle. If you want a money printer, this isn't it. If you want to watch a genuinely novel system learn to trade, this is the most interesting one you'll find.

🛠 Tech Stack

🐍

Python 3.13

asyncio, dependency injection, modular architecture

⚡

FastAPI + uvicorn

REST API, WebSocket streaming, middleware pipeline

🤖

Multimodal AI

Chart reading, technical reasoning, trade debates

🔢

Pure Python + Numba JIT

50+ home-grown indicators, 0 external TA dependencies

🧬

ChromaDB

Vector embeddings, semantic trade memory, full-text search

📊

Vis.js + ApexCharts

Decision graphs, candlestick charts, live KPI cards

🌐

Cloudflare

Tunnel, CDN, Page Rules, zero-downtime deploys

🧪

pytest + ruff

1,380+ automated tests, zero lint errors, CI-ready

Ready to Watch the Brain Trade?

Live dashboard with real-time charts, decision graphs, and full trading transparency. No signup. Just watch the system that's being scaled to real trades.

▶ Open Live Dashboard ☕ Buy Me a Coffee

👨‍💻 About the Developer

🏭

Piotr Kurnicki (@qrak)

Open to Work — Backend / AI roles (Wrocław or remote)

Self-taught backend developer with deep AI/LLM expertise. Currently working in warehouse logistics while building autonomous AI systems after hours. My strength: I go deep rather than wide — every line of this codebase I wrote, tested, and understand.

Previously worked with enterprise SAP environments at BSH Sprzęt Gospodarstwa Domowego, where I gained enterprise software experience and learned to navigate complex business processes. Now I build AI agents that trade crypto autonomously — and right now I'm building the trade executor: the dedicated service that carries this system from paper trading to live exchange orders.

📍 Wrocław, Poland
🌍 Remote-ready
🗣 Polish (native) + English (technical)
🐍 Python 3.13, FastAPI, asyncio
🤖 LLMs, prompt engineering, ChromaDB
🛠 DI patterns, pytest, ruff, Cloudflare

Interested in: Backend Python/FastAPI, AI engineering, LLM infrastructure — ideally a role where I can apply both my AI knowledge and backend skills. No university degree, but I bring something better: a project with 1,380+ automated tests, zero lint errors, and a live dashboard you can inspect right now.

☕ Buy Me a Coffee GitHub [email protected]