Stay tuned: Full source code and detailed documentation are on the way! Follow https://x.com/Sayantan317 for updates.
AI-powered trading chat interface with real-time market analysis
Trade Copilot is a trading assistant that combines institutional-grade market analysis with cutting-edge AI. Built on the Model Context Protocol (MCP), it provides real-time order flow analysis, options monitoring, and technical analysis through a clean, professional chat interface.
mindmap
root((Trade Copilot<br/>))
Trading Memory
get_current_bias
check_consistency
store_trading_decision
force_reset
Technical Analysis
volume_profile
technical_analysis
technical_zones
orb_analysis
fvg_analysis
Order Flow
equity_order_flow
pattern_detection
options_order_flow
options_monitoring
Options Intelligence
open_interest_analysis
institutional_positioning
gamma_exposure
- Real-time Order Flow Analysis - Track institutional vs retail sentiment
- Options Flow Monitoring - Detect sweeps, blocks, and unusual activity
- Volume Profile Analysis - Identify key support/resistance levels (POC, VAH, VAL)
- Technical Analysis Suite - ORB, FVG, technical zones, and indicators
- Parallel Tool Execution - Sub-30 second comprehensive market analysis
- AWS Bedrock - Claude Sonnet 4, Claude 3.5 Sonnet, Claude Haiku
- Anthropic API - Direct Claude API integration
- Runtime Switching - Change providers/models without restart
- Optimized Prompts - Military-precision system prompts for speed and accuracy
- MCP Protocol - Native integration with market data servers
- Go-based Data Broker - Sub-10ms latency for real-time data
- Concurrent Processing - Parallel tool execution for maximum speed
- Professional Interface - Rich terminal UI with formatted responses
- Python 3.11+
- AWS credentials (for Bedrock)
- Anthropic API key (for Claude API)
- Market data API keys
# Clone the repository
git clone https://github.com/your-org/trade-copilot.git
cd trade-copilot
# Install dependencies
pip install -r requirements.txt
# Or for development
pip install -r requirements-dev.txt
# Copy environment file
cp .env.example .env
# Edit configuration
nano config/config.yaml# config/config.yaml
llm_providers:
bedrock:
region: "us-east-1"
models:
claude_sonnet_4: "bedrock.anthropic.claude-sonnet-4-20250514"
claude_sonnet_35: "anthropic.claude-3-5-sonnet-20241022-v2:0"
claude_haiku: "anthropic.claude-3-haiku-20240307-v1:0"
claude_api:
models:
claude_sonnet_4: "claude-3-5-sonnet-20250514"
claude_sonnet_35: "claude-3-5-sonnet-20241022"
claude_haiku: "claude-3-haiku-20240307"
# Default settings
default_provider: "bedrock"
default_model: "claude_sonnet_4"mcp_servers:
market_data:
command: "python"
args: ["-m", "mcp_market_data_server"]
env:
TWELVE_DATA_API_KEY: "${TWELVE_DATA_API_KEY}"
order_flow:
command: "python"
args: ["-m", "mcp_order_flow_server"]
env:
GRPC_BROKER_URL: "localhost:9090"
options_flow:
command: "python"
args: ["-m", "mcp_options_order_flow_server"]
env:
GRPC_BROKER_URL: "localhost:9090"# Start chat interface
trade-copilot chat
# Use specific provider/model
trade-copilot chat --provider claude_api --model claude_sonnet_4
# In chat interface
help # Show help
status # System status
clear # Clear history
switch bedrock claude_sonnet_4 # Switch provider
exit # End sessionQuery: "Analyze SPY order flow for the last 10 minutes"
Expected Tools Called:
ββ analyze_order_flow_tool(ticker="SPY", minutes=10)
ββ financial_volume_profile(ticker="SPY", timeframe="1m")
ββ financial_technical_analysis(ticker="SPY", timeframes=["1m", "5m"])
Sample Response:
**SIGNAL:** BUY CALLS
**CONVICTION:** 78/100 (3 confirming signals)
**ENTRY:** $472.25
**STOP:** $469.80 (2% risk)
**TARGET:** $477.15 (2:1 R/R)
**TIMEFRAME:** 15 minutes validity
**EVIDENCE:**
- Order flow: 68% institutional buying pressure, large block at 472.00
- Volume profile: POC at 471.95 acting as support, 89% buy volume above POC
- Technical: Clean break above 5min EMA with increasing momentumQuery: "Show me NVDA options unusual activity and sweeps"
Expected Tools Called:
ββ get_options_flow(ticker="NVDA", history_minutes=30)
ββ configure_options_monitoring_tool(ticker="NVDA", min_premium=50000)
ββ analyze_order_flow_tool(ticker="NVDA", minutes=15)
Sample Response:
**SIGNAL:** WAIT - Mixed signals
**CONVICTION:** 45/100 (conflicting data)
**ANALYSIS:**
- Options: $2.3M in call sweeps at 520 strike (2x normal), but also 1.2M put volume
- Unusual activity: 400% increase in 525C volume, premium suggesting 3% move expected
- Underlying flow: Retail buying pressure (78%), institutions net selling
**INVALIDATION:** Clear above 522.50 = bullish confirmationQuery: "Check QQQ opening range breakout and volume profile"
Expected Tools Called:
ββ financial_orb_analysis(ticker="QQQ", orb_minutes=30)
ββ financial_volume_profile(ticker="QQQ", timeframe="5m")
ββ financial_technical_zones(ticker="QQQ")
ββ financial_technical_analysis(ticker="QQQ")
Sample Response:
**SIGNAL:** BUY CALLS
**CONVICTION:** 82/100 (4 confirming signals)
**ENTRY:** $398.75 (ORB high + 0.05)
**STOP:** $396.90 (ORB low - 0.10)
**TARGET:** $402.45 (1.2x ORB range)
**EVIDENCE:**
- ORB: Clean breakout above 30min range (396.95-398.70), volume 2.1x average
- Volume profile: 73% volume above POC (397.85), strong buying interest
- Technical zones: Breaking resistance cluster at 398.60-398.80
- ADX: 28.4 showing strong trend, RSI healthy at 58.7Query: "Compare tech vs financials order flow - XLK vs XLF"
Expected Tools Called:
ββ analyze_order_flow_tool(ticker="XLK", minutes=20)
ββ analyze_order_flow_tool(ticker="XLF", minutes=20)
ββ financial_volume_profile(ticker="XLK")
ββ financial_volume_profile(ticker="XLF")
ββ sector_comparison_analysis(tickers=["XLK", "XLF"])
Sample Response:
**SECTOR ROTATION DETECTED:**
**XLK (Tech):** 72% institutional selling, volume 1.8x average
**XLF (Financials):** 81% institutional buying, volume 2.3x average
**ROTATION SIGNAL:** Tech β Financials rotation confirmed
**TRADE IDEA:** Long XLF, Short XLK (pairs trade)βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β CLIENT INTERACTION β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β User Query: "Analyze SPY order flow and options activity" β
β β β
β βΌ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β TRADE COPILOT CORE β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β CHAT INTERFACE (Rich Terminal) β β
β β β’ Input validation and parsing β β
β β β’ Real-time response streaming β β
β β β’ Conversation history persistence (SQLite) β β
β β β’ Model switching commands β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β LLM PROVIDER MANAGER β β
β β βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββββββ β β
β β β AWS Bedrock β β Claude API β β Model Switching β β β
β β β (boto3) β β (anthropic-sdk)β β (Runtime) β β β
β β β β β β β β β β
β β β β’ Claude-3.5 β β β’ Claude-3.5 β β β’ Provider select β β β
β β β β’ Claude Haiku β β β’ Claude Haiku β β β’ Model switching β β β
β β β β’ Auto-scaling β β β’ Direct API β β β’ Config hot-reload β β β
β β βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββββββ β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β MCP TOOL MANAGER β β
β β β’ Tool discovery and registration β β
β β β’ Parallel tool execution (15+ concurrent) β β
β β β’ Error handling and retry logic β β
β β β’ Tool result aggregation and formatting β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
PARALLEL TOOL EXECUTION
β
βββββββββββββββββββββββββββΌββββββββββββββββββββββββββ
βΌ βΌ βΌ
βββββββββββββββββββββββββββ βββββββββββββββββββββββββββ βββββββββββββββββββββββββββ
β MCP MARKET DATA β β MCP ORDER FLOW β β MCP OPTIONS FLOW β
β SERVER β β SERVER β β SERVER β
βββββββββββββββββββββββββββ€ βββββββββββββββββββββββββββ€ βββββββββββββββββββββββββββ€
β TOOLS: β β TOOLS: β β TOOLS: β
β β’ financial_technical_ β β β’ analyze_order_flow_ β β β’ get_options_flow β
β analysis β β tool β β β’ configure_options_ β
β β’ financial_volume_ β β β’ get_level_2_data β β monitoring_tool β
β profile β β β’ get_trade_prints β β β’ get_unusual_activity β
β β’ financial_technical_ β β β’ detect_patterns β β β’ analyze_sweep_blocks β
β zones β β β β β
β β’ financial_orb_ β β DATA SOURCES: β β DATA SOURCES: β
β analysis β β β’ Real-time quotes β β β’ Options chains β
β β’ financial_fvg_ β β β’ Level 2 book data β β β’ Unusual activity β
β analysis β β β’ Trade patterns β β β’ Greeks calculations β
β β β β’ Volume analysis β β β’ Flow direction β
β DATA SOURCES: β β β β β
β β’ Twelve Data API β β βββββββββββββββββββββββ β β βββββββββββββββββββββββ β
β β’ Technical indicators β β β gRPC CLIENT β β β β gRPC CLIENT β β
β β’ Volume calculations β β β localhost:9090 β β β β localhost:9090 β β
β β’ Multi-timeframe β β βββββββββββββββββββββββ β β βββββββββββββββββββββββ β
βββββββββββββββββββββββββββ βββββββββββββββββββββββββββ βββββββββββββββββββββββββββ
β β
gRPC CONNECTION (sub-10ms latency) β
β β
βΌ βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β MCP TRADING DATA BROKER (Go) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β CORE SERVICES β β
β β βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββββββββββββββ β β
β β β Order Flow β β Options Flow β β Market Data Cache β β β
β β β Aggregator β β Processor β β β β β
β β β β β β β β’ Real-time price feeds β β β
β β β β’ Pattern β β β’ Sweep/Block β β β’ Historical OHLCV β β β
β β β detection β β detection β β β’ Level 2 order book β β β
β β β β’ Institutional β β β’ Unusual β β β’ Trade tape analysis β β β
β β β vs retail β β activity β β β’ Volume profile cache β β β
β β β β’ Volume β β β’ Greeks β β β β β
β β β analysis β β calculation β β β β β
β β βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββββββββββββββ β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β WEBSOCKET CLIENT POOL β β
β β βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββββββββββββββ β β
β β β 3P WS β β Market WS β β Health Monitor β β β
β β β Client β β Client β β β β β
β β β β β β β β’ Connection monitoring β β β
β β β β’ Real-time β β β’ Level 2 data β β β’ Auto-reconnection β β β
β β β options data β β β’ Trade prints β β β’ Latency tracking β β β
β β β β’ Order flow β β β’ Quote stream β β β’ Error logging β β β
β β β β’ Auto-retry β β β’ Volume feeds β β β’ Performance metrics β β β
β β β β’ 60s timeout β β β β β β β
β β β monitoring β β β β β β β
β β βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββββββββββββββ β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
EXTERNAL DATA INGESTION
β
βββββββββββββββββββββββββββΌββββββββββββββββββββββββββ
βΌ βΌ βΌ
βββββββββββββββββββββββββββ βββββββββββββββββββββββββββ βββββββββββββββββββββββββββ
β 3P API β β TWELVE DATA API β β POLYGON/OTHER APIs β
βββββββββββββββββββββββββββ€ βββββββββββββββββββββββββββ€ βββββββββββββββββββββββββββ€
β β’ Real-time options β β β’ Stock market data β β β’ Alternative feeds β
β β’ Order flow data β β β’ Technical indicators β β β’ News sentiment β
β β’ Institutional trades β β β’ Historical OHLCV β β β’ Economic data β
β β’ Unusual activity β β β’ Volume data β β β’ Social sentiment β
β β’ WebSocket streams β β β’ Fundamental data β β β
βββββββββββββββββββββββββββ βββββββββββββββββββββββββββ βββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β CONFIGURATION SYSTEM β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β /etc/config/TradingInsightsAgentConfig.json β β
β β { β β
β β "ANTHROPIC_API_KEY": "sk-ant-...", β β
β β "CLAUDE_API_KEY": "sk-ant-...", β β
β β "3P _API_KEY": "3p_key_...", β β
β β "TWELVE_DATA_API_KEY": "td_key_...", β β
β β "AWS_ACCESS_KEY_ID": "AKIA...", β β
β β "AWS_SECRET_ACCESS_KEY": "...", β β
β β "GRPC_BROKER_URL": "localhost:9090" β β
β β } β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β config/config.yaml β β
β β llm_providers: β β
β β bedrock: β β
β β region: "us-east-1" β β
β β models: β β
β β claude_sonnet_4: "bedrock.anthropic.claude-sonnet-4-20250514" β β
β β claude_api: β β
β β models: β β
β β claude_sonnet_4: "claude-3-5-sonnet-20250514" β β
β β β β
β β mcp_servers: β β
β β market_data: "python -m mcp_market_data_server" β β
β β order_flow: "python -m mcp_order_flow_server" β β
β β options_flow: "python -m mcp_options_order_flow_server" β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
USER QUERY β INPUT VALIDATION β LLM ANALYSIS β TOOL EXECUTION β RESPONSE GENERATION
β β β β β
βΌ βΌ βΌ βΌ βΌ
βββββββββββ βββββββββββββββ βββββββββββββββ βββββββββββββββ βββββββββββββββ
β "SPY β β Parse & β β Claude β β Parallel β β Aggregate β
β options β β validate β β decides β β MCP tool β β results & β
β flow" β β ticker, β β which tools β β execution: β β format for β
β β β timeframe β β to call β β β’ Options β β trading β
β β β params β β based on β β β’ Order β β decision β
β β β β β context β β β’ Volume β β β
βββββββββββ βββββββββββββββ βββββββββββββββ βββββββββββββββ βββββββββββββββ
β
CONCURRENT EXECUTION
(Sub-30s total)
User Input: "Analyze SPY order flow and options activity"
Step 1: Query Processing (50ms)
- Input validation and ticker extraction
- Context analysis for tool selection
- Historical conversation context loading
Step 2: LLM Tool Selection (200ms)
- Claude analyzes query requirements
- Selects 3-5 relevant tools based on system prompt
- Plans parallel execution strategy
Step 3: Parallel Tool Execution (1-2s)
TOOL 1: analyze_order_flow_tool(ticker="SPY", minutes=10)
ββ gRPC call to data broker
ββ Real-time order flow aggregation
ββ Pattern detection & sentiment analysis
TOOL 2: get_options_flow(ticker="SPY", history_minutes=20)
ββ Options chain analysis
ββ Unusual activity detection
ββ Sweep/block identification
TOOL 3: financial_volume_profile(ticker="SPY", timeframe="5m")
ββ Twelve Data API call
ββ Volume profile calculation
ββ POC/VAH/VAL identification
TOOL 4: financial_technical_analysis(ticker="SPY")
ββ Multi-timeframe indicator analysis
ββ Trend strength assessment
ββ Support/resistance levels