Back to Blog
Trading

How We Build Our Trading Bot in the Open

13 strategies, a dual-LLM autopilot, a five-verdict critic, and a live dashboard — all running on paper capital with every safety rail we could think of.

Most trading bots are black boxes. You deposit money, cross your fingers, and hope the developer on the other end of a Telegram group is as good as they claim. We are building ours differently: in the open, on paper capital, with every decision logged and every safeguard documented. This is how it works.

The Strategy Lineup: 9 Crypto + 4 Prediction Markets

The bot runs nine crypto strategies simultaneously, each targeting a different edge in the market. They range from momentum-based swing trades to mean-reversion plays, volatility breakouts, and sentiment-driven entries sourced from social media and news aggregators. No single strategy carries the portfolio. Diversification is the first layer of risk management.

On top of crypto, we run four Polymarket strategies for prediction-market trading:

Every strategy has its own risk parameters, position limits, and performance tracking. The system treats each one as an independent actor competing for allocation.

Dual-LLM Autopilot: Claude Opus Meets Qwen

At the heart of the bot sits an LLM-powered autopilot. Every decision cycle, the system packages up the current market state — prices, sentiment scores, strategy signals, open positions, portfolio drawdown — and sends it to Claude Opus via the Claude Code CLI. Opus evaluates the situation and returns structured JSON: which trades to enter, which to exit, and why.

If Claude is unavailable, the system falls back to DashScope Qwen 3.5-plus, ensuring the bot never stalls waiting for an API response. The fallback chain is seamless; the bot logs which model made each decision so we can compare performance after the fact.

Competing Agentic Backends

We also run two competing agentic strategies side by side: one powered by Claude Opus and the other by GLM-5 via DashScope. Both receive identical market data. Both manage independent state files and make independent decisions. The goal is simple: let the models compete, measure who wins, and route more capital to the winner over time.

The Critic: Five Verdicts, Hard Veto Rules

Every trade proposed by the autopilot passes through a Critic system before execution. The Critic is a second LLM evaluation pass that returns one of five verdicts:

On top of the LLM-based Critic, we enforce hard-coded veto rules that no model can override:

The Critic exists because LLMs are overconfident. A model that scores 90% on reasoning benchmarks will still occasionally propose a leveraged long into a market crash. The hard rules are the seatbelts.

Live Dashboard & Autotune

Every two minutes, a cron job runs sync_dashboard.sh, which exports enriched position data — current prices, notional values, unrealized P&L — and pushes it to the live dashboard at hub.tacavar.com. The dashboard displays strategy-level performance cards, a sortable trades table, and aggregate portfolio metrics.

The autotune system is where it gets interesting. The bot continuously evaluates strategy parameters and proposes adjustments: tighter stops, wider take-profits, modified entry thresholds. Each recommendation appears on the dashboard with an Apply or Reject button. A human makes the final call.

Once applied, an autotune watchdog monitors the tuned strategy for 24 hours. If performance degrades after at least three trades, the watchdog automatically reverts to the previous configuration. It is self-healing parameter optimization with a human in the approval loop and a machine on the revert trigger.

Data Pipeline: Multi-Source Sentiment with Circuit Breakers

The data scraper runs a continuous loop pulling from CoinGecko, CryptoPanic, Twitter, and Reddit. Each source has independent circuit breakers. When Twitter's scrape success rate drops to 10% (which it does regularly), the circuit breaker trips and the bot falls back to the remaining sources without stalling the whole pipeline.

Sentiment scores are normalized and blended into a composite signal that feeds into both the strategy layer and the LLM autopilot's context window. The scraper also tracks Fear & Greed readings, funding rates, and on-chain metrics for the Critic's hard rules.

Solana Sniper Module

A dedicated module watches for new token launches on Pump.fun migrating to Raydium liquidity pools. It scores each launch on whale concentration, holder distribution, and liquidity depth. Any token where the top holder controls 20% or more of supply scores zero and is skipped entirely. In practice, this filters out almost everything — which is exactly the point. The sniper is designed to be extremely selective, running in paper mode alongside the rest of the portfolio.

Safety Architecture

The bot runs with dry_run=true hardcoded. It manages $10,000 in virtual capital. No real money touches the system until we have months of verified paper performance.

Beyond paper mode, the safety stack includes:

Human in the Loop: Telegram Interface

The bot is managed through a Telegram interface. Commands let us check portfolio status, view open positions, force-close trades, toggle strategies on and off, and query the LLM directly with /ask. Streaming responses from Qwen 3.5-plus mean we get real-time AI analysis without leaving the chat.

Telegram also serves as the escalation channel. When the Critic returns an escalate verdict, the alert lands in Telegram for human review before anything executes. The bot proposes; the human disposes.

Why Build in the Open?

There is no regulatory reason to disclose our architecture. We do it because black-box trading systems are a disservice to anyone evaluating them. If you cannot explain how a system makes decisions, you cannot trust it — and you certainly cannot debug it at 3 AM when markets are crashing.

Building in the open also forces discipline. When your architecture is public, you cannot cut corners on safety. Every hard-veto rule, every circuit breaker, every fallback chain exists because we know someone might read this and ask: "What happens when X fails?"

The answer should always be: "We thought about that."


The bot is live on paper capital. The dashboard is public. The strategies are running. We will keep writing about what we learn — the wins, the losses, and everything in between.