Article Β· August 2026 Β· By @qrak

How the Bot Reads Charts: From Candles to Conviction

What actually happens inside a 4-hour analysis cycle β€” from raw exchange data to a reasoned decision with stop-loss and take-profit levels.


The Input: More Than Candles

Most trading bots reduce the market to a handful of indicator values. Semantic Signal starts with a wider picture. Every 4-hour cycle, CCXT pulls 999 candles, a 50-level order book, the funding rate, and 24-hour volume from the exchange.

The order book matters: it shows counterparty orders, funding rate traps, and liquidity squeezes β€” dynamics you can't see in a line chart. The bot trains on real market microstructure, not just abstract lines.

50+ Indicators in Milliseconds

The indicator engine is written in NumPy and Numba. Every calculation compiles to machine code on first call and caches the result, so 50+ home-grown indicators and dozens of deterministic chart patterns run in microseconds on a standard CPU β€” with zero external technical-analysis dependencies.

This matters for the LLM step: the model receives a numeric stack it can trust, because every value was computed deterministically and can be cross-checked.

The Chart Image: Seeing Like a Human Trader

Plotly renders a Full HD (1080p) candlestick chart with SMA, RSI, and volume overlays. That image is sent to Google Gemini alongside the raw indicator values.

Why an image at all? Because geometry carries information: the shape of a wick, a volume spike at support, a wedge breakout β€” patterns a human trader sees at a glance but that are awkward to express as floats. The LLM reads both channels: the picture and the numbers, and every numeric claim it makes is checked against the computed values. Nothing is taken on faith.

Fresh Context: News and Community Sentiment

Before reasoning, the cycle ingests up to 5 top articles from live news feeds (CoinDesk, CoinTelegraph, Decrypt) plus Reddit community sentiment β€” all scraped directly via RSS, with no paid API keys. Fundamentals come from CoinGecko and DeFiLlama, plus the Alternative.me Fear & Greed index.

One honest detail: X/Twitter was tried and dropped. Without paid authentication it isn't reliably scrapable, so the bot runs on Reddit + RSS rather than pretending otherwise.

The Debate: Bull vs Bear

Gemini argues the bull case, then the bear case, then evaluates expected value against the bot's own trade history:

EV = (Win Rate Γ— Average Win) βˆ’ ((1 βˆ’ Win Rate) Γ— Average Loss) βˆ’ Fees

If EV is negative, or the risk-to-reward ratio is under 1.5 R:R, the signal is rejected outright β€” this is deterministic math that overrides the LLM, not a suggestion.

The Falsification Check

Before any signal is accepted, the LLM must write an explicit price invalidation trigger: the exact condition under which the trade is wrong. If the model cannot defend its call against its own invalidation test, the signal is rejected. A missed +EV opportunity is treated as mathematically identical to a realized loss β€” the bot is penalized for not trading when it should.

The final output is a decision with reasoning, risk parameters, and stop-loss/take-profit levels β€” all logged to the audit trail, all visible on the live dashboard.

Watch a real cycle end-to-end β€” the dashboard streams every prompt and decision.

πŸ“Š Live DashboardNext: Vector Memory β†’
Risk notice: This is an experimental open-source project, not financial advice. Results are simulated unless stated otherwise. Trading crypto carries substantial risk. See the full risk disclaimer.