Artic: AI-Powered Multi-Agent Trading Platform
Deploy intelligent trading agents across any market — managed from a single hub.
1. Executive Summary
Artic abstracts the complexity of quantitative trading into a deployable, configurable agent. Where traditional bots require manual strategy selection and parameter tuning, Artic's LLM oversight layer continuously evaluates market regime, selects the optimal strategy from a library of 23 signal algorithms across 5 categories, and adapts on a configurable schedule — without human intervention.
The platform is designed around three core principles:
Artic ships 23 signal algorithms + 4 utility functions (risk sizing, session filters), persists state in PostgreSQL, and uses push-based telemetry from agents to hub.
2. Problem Statement
The Gap Between AI and Execution
Algorithmic trading has long been the domain of institutional players with the engineering resources to build, maintain, and monitor complex systems. Retail traders and independent quants face a fragmented landscape: strategy research tools exist in isolation from execution infrastructure, LLM-based market analysis remains disconnected from live trading systems, and deploying multiple concurrent strategies requires managing sprawling, brittle codebases.
Specifically, the market lacks a platform that:
- Connects LLM intelligence directly to a live execution engine without manual intermediary steps.
- Enables concurrent multi-agent, multi-strategy deployment from a single control surface.
- Provides full observability — trade logs, LLM reasoning, position state — without requiring infrastructure expertise.
- Allows strategy research and live execution to share the same runtime environment.
Existing solutions — centralised copy-trading platforms, isolated strategy bots, and LLM-wrapped price feeds — address fragments of this problem. None orchestrate the full lifecycle from intelligent strategy selection through to live execution and monitoring at the agent level.
3. The Artic Solution
One Hub. Many Agents.
Artic introduces a hub-and-agent model where a central server (the Hub) maintains authority over all deployed agents. Each agent is an isolated Docker container — running locally or on a remote VM — with its own configuration, market scope, and strategy assignment. The Hub handles registration, lifecycle management, persistent state, and all client communication.
Users interact through whichever interface suits their workflow — a terminal UI, a web dashboard, a CLI, or a Telegram bot. All interfaces communicate with the Hub via a REST + WebSocket API. No interface has direct access to agents, ensuring a consistent, auditable control plane.
Communication between agents and the Hub is push-based. Agents POST status updates to the Hub every tick, push trade records on position open/close, and batch log entries every 10 ticks. The Hub never polls agents — all telemetry flows inward.
The LLM as Market Intelligence
At the core of each agent sits an LLM planning loop. On initialisation, the agent ingests historical OHLCV data and live price feeds, then prompts the configured LLM to assess market regime and select the most appropriate strategy from the active library. This evaluation recurs on a user-defined schedule — allowing the agent to shift strategy as market conditions evolve.
The LLM does not execute trades. Its role is advisory and supervisory: it reads structured market data, reasons about conditions, and outputs a strategy identifier with configuration parameters. The execution engine computes a signal via the selected strategy and acts on it within the risk parameters set at agent configuration time.
Every strategy in the library returns a normalised signal (a float between −1 and +1, where positive = bullish, negative = bearish, zero = neutral) paired with a diagnostic detail string. This uniform contract lets the engine treat all 23 algorithms identically regardless of their internal complexity.
Paper Trading & Safe Experimentation
Paper trading is the default mode. It uses identical strategy logic, LLM decision-making, and position tracking as live mode — but routes all order execution through a simulation layer. This allows users to validate strategy behaviour, observe LLM decision-making, and gain confidence before deploying real capital.
4. System Architecture
Artic is structured across six primary components. Each is independently deployable and communicates through well-defined interfaces:
| Component | Stack | Role |
|---|---|---|
| Hub | Python / FastAPI | Agent lifecycle, auth, market cache, REST + WebSocket API |
| Agent (App) | Python / FastAPI | Per-symbol trading engine, runs inside Docker container |
| LLM Planner | Multi-provider | Market regime analysis, strategy selection, position supervision |
| Market Feeds | Pyth + TwelveData | Real-time price oracle + OHLCV historical candles |
| Database | PostgreSQL | Trade history, agent configs, user settings, position snapshots |
| Clients | TUI / CLI / Web / Telegram | All control surfaces talk to Hub API — no direct agent access |
Database
The Hub persists all state in PostgreSQL via SQLAlchemy async with Alembic migrations. The schema includes 9 models across core tables: users, agents, trades, log_entries, market_cache, user_secrets, agent_secret_overrides, and onchain_decisions. Log entries are append-only and bulk-inserted every 10 ticks for write efficiency.
Authentication
Artic uses a dual-method authenticationsystem. The Hub's auth dependency tries JWT first, then falls back to API key:
JWT Auth (TUI, Web Dashboard)
Users authenticate via POST /auth/login with email + password. Hub verifies bcrypt hash, issues a JWT access token (15-minute expiry) + refresh token. Clients include the token as Authorization: Bearer header.
API Key Auth (CLI, Telegram)
Users generate a key via POST /api/keys. Hub stores a SHA-256 hash in users.api_key_hash and returns the raw key once (artic_ prefix). Clients include the key as X-API-Key header. Lost key = regenerate.
Internal Auth (Agent → Hub)
Agent containers authenticate to /internal/* endpoints with X-Internal-Secret header. The secret is injected as a Docker environment variable at spawn time and matches the Hub's INTERNAL_SECRET.
Agent Registry & Communication
The Hub maintains an agent registry — a live record of all running, paused, and completed agents. Communication is entirely push-based: agents push state to the Hub, the Hub never polls.
| Endpoint | Auth | Frequency |
|---|---|---|
| POST /internal/agents/{id}/status | X-Internal-Secret | Every tick |
| POST /internal/trades | X-Internal-Secret | On position open / close |
| POST /internal/logs | X-Internal-Secret | Every 10 ticks (batched) |
If an agent container crashes, trade history is preserved in full in PostgreSQL; only the live in-memory position state is lost.
5. Strategy Engine
23 Signal Algorithms
The strategy library is Artic's core quantitative layer. Algorithms are organised into five functional categories, each targeting a different market regime or signal type. The LLM planner selects among these based on its analysis of current conditions:
| Category | Count | Algorithms |
|---|---|---|
| Momentum | 10 | simple_momentum, dual_momentum, breakout, donchian_channel, ma_crossover, ema_crossover, macd_signal, adx_filter, supertrend, ichimoku_signal |
| Mean Reversion | 5 | z_score, bollinger_reversion, rsi_signal, stochastic_signal, range_sr |
| Volatility | 3 | atr_breakout, bollinger_squeeze, keltner_bollinger |
| Volume / Order Flow | 3 | vwap_deviation, obv_trend, funding_bias_stub |
| Statistical | 2 | linear_regression_channel, kalman_fair_value |
In addition to signal algorithms, the library exports 4 utility functions: kelly_size and vol_scaling_mult for risk sizing, plus session_filter and day_of_week_filter for time-based filtering — 27 total exports.
Signal Contract
Every strategy exposes a standard interface. It accepts price history and/or OHLCV candle data as input and returns a tuple:
def strategy(prices, candles, **params) → (signal: float, detail: str)
signal > 0 → bullish | signal < 0 → bearish | signal = 0 → neutral
signal range: [−1, +1] | detail: diagnostic string for logging
The execution engine and the risk layer consume these outputs uniformly, regardless of which strategy is active. The dispatcher in signals.py routes a strategy name to the correct algorithm function.
LLM Strategy Selection Flow
Context Assembly
Agent gathers price history, OHLCV candles, and a structured market summary including recent returns, volatility, and volume metrics.
LLM Evaluation
Structured context is sent to the configured LLM provider. The model reasons about market regime and selects the most appropriate strategy.
Strategy Output
LLM returns a strategy identifier, lookback period, entry threshold, and max_loss_pct. These parameters configure the selected algorithm.
Signal Computation
compute_strategy_signal() dispatches to the selected algorithm. The engine receives a normalised signal and decides: OPEN_LONG, OPEN_SHORT, CLOSE, or HOLD.
Re-evaluation
At a user-defined interval, the loop restarts. The LLM re-evaluates conditions and may switch strategies, adjust parameters, or modify stop-loss / take-profit levels.
6. Risk Management
Every Artic agent operates within a risk framework configured at deployment time via the risk_params JSONB column on the agents table.
Implemented Controls
Stop-Loss
Supports both percentage-based (fixed sl_pct) and price-based (dynamic, ATR-derived) stop-loss. Checked every tick — position closes immediately when hit.
Take-Profit
Percentage-based (fixed tp_pct) or price-based with configurable risk-reward ratio. The LLM's max_loss_pct serves as fallback when no explicit SL is set.
LLM Supervisor
A secondary LLM check runs every N seconds on open positions. It can KEEP the position, CLOSE it, or ADJUST_TP_SL dynamically based on evolving conditions.
Paper Trading Default
All agents initialise in paper trading mode. Live execution requires explicit user opt-in with funded exchange credentials.
Drawdown stops and a remote kill switch are on the development roadmap but are not yet implemented in the current codebase. Risk management currently relies on per-position SL/TP and LLM supervisor checks.
7. Supported Markets & Integrations
Artic's integration layer is designed to be executor-agnostic. Any market or exchange that exposes a compatible order interface can be added as an executor module.
| Provider | Purpose | Status |
|---|---|---|
| OpenAI / Anthropic / DeepSeek / Gemini | LLM providers — strategy selection, regime analysis | Live |
| Pyth Network (Hermes) | Real-time on-chain price feeds | Live |
| TwelveData | OHLCV historical candles (cached via Hub, 60s staleness) | Live |
| CoinMarketCap | Token metadata and market data | Live |
| HashKey Global | Perpetual futures execution — primary mainnet integration | In Progress |
HashKey Global serves as the primary live execution target. Its perpetuals API provides order placement, position management, funding rate data, and balance queries — mapping directly to Artic's BaseExecutor interface. The sandbox environment is used for integration testing prior to mainnet deployment.
8. Product Roadmap
| Phase | Milestone | Status |
|---|---|---|
| Q1 | Core Agent Framework — single-agent deployment, full strategy library (23 algos), LLM oversight loop, paper trading, TUI + CLI clients | Live |
| Q2 | Multi-Agent & Mainnet — multi-agent orchestration from a single hub, VM deployment, live execution on HashKey Global perps, web dashboard + Telegram bot | In Progress |
| Q3 | Strategy Marketplace — user-created strategies listed and sold on-platform, performance attribution, revenue sharing for authors | Planned |
| Q4 | Multi-Sector Expansion — futures, equities, options, prediction markets. Sector-specific LLM prompting and strategy libraries | Planned |
The Strategy Marketplace (Q3) transforms Artic from a personal trading tool into a collaborative ecosystem where quantitative researchers distribute and monetise their work. The multi-sector expansion (Q4) extends the addressable market beyond crypto derivatives into traditional finance instruments.
9. Risk Disclaimer
Paper trading simulations do not involve real money and do not guarantee future performance of any strategy. Past backtesting results and simulated outcomes are not indicative of future results. Cryptocurrency and derivatives markets are highly volatile. Users who choose to deploy Artic agents in live trading mode do so at their own risk and are solely responsible for any financial outcomes.
Artic does not custody user funds. Private keys, wallet credentials, and exchange API keys remain under the sole control of the user at all times. The Artic team assumes no liability for losses arising from the use of this software.
Risk management currently relies on per-position stop-loss and take-profit levels with LLM supervisor checks. Additional risk controls including drawdown stops and remote kill switches are under active development.
This document does not constitute an offering of securities, tokens, or any regulated financial instrument. Artic has no token at this time. Nothing in this document should be construed as a solicitation to invest.
Artic · AI Trading Agent Orchestration Platform
