Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
175 changes: 175 additions & 0 deletions python/configs/agent_cards/auto_trading_agent.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,175 @@
{
"name": "AutoTradingAgent",
"display_name": "Auto Trading Agent",
"url": "http://localhost:10003/",
"description": "Automated cryptocurrency trading agent with real-time technical analysis, position management, and continuous monitoring. Supports multiple crypto assets and AI-powered trading strategies using various LLM models via OpenRouter.",
"capabilities": {
"streaming": true,
"push_notifications": true
},
"skills": [{
"id": "auto_trading_setup",
"name": "Setup Auto Trading",
"description": "Configure the automated trading agent with initial capital, crypto symbols, risk parameters, and AI model selection.",
"examples": [
"Setup trading with $100,000 for BTC-USD and ETH-USD using DeepSeek model",
"Configure auto trader with $50,000 capital, trade BTC-USD, ETH-USD, SOL-USD with 1.5% risk",
"Setup trading agent with default settings for Bitcoin"
],
"tags": [
"setup",
"configuration",
"initialization"
]
},
{
"id": "auto_trading_notify",
"name": "Live Trading Monitoring",
"description": "Start continuous automated trading with real-time technical analysis, trade execution notifications, and portfolio updates.",
"examples": [
"Start automated trading for BTC-USD with Claude model",
"Monitor and trade ETH-USD and SOL-USD using GPT-4 analysis",
"Begin live trading with portfolio notifications"
],
"tags": [
"trading",
"monitoring",
"real-time",
"notifications"
]
},
{
"id": "technical_analysis",
"name": "Technical Analysis",
"description": "Calculate and analyze technical indicators including MACD, RSI, EMA, and Bollinger Bands for trading decisions.",
"examples": [
"Analyze BTC-USD technical indicators",
"Show MACD and RSI signals for ETH-USD",
"Calculate Bollinger Bands for SOL-USD"
],
"tags": [
"analysis",
"indicators",
"signals"
]
},
{
"id": "position_management",
"name": "Position Management",
"description": "Manage trading positions with risk controls, automatic entry/exit, and portfolio tracking.",
"examples": [
"Show current positions and portfolio value",
"What is my P&L on open trades?",
"Display portfolio summary"
],
"tags": [
"positions",
"portfolio",
"risk-management"
]
}
],
"enabled": true,
"provider": {
"organization": "ValueCell",
"url": "https://github.com/valuecell"
},
"metadata": {
"version": "1.0.0",
"author": "ValueCell Team",
"tags": [
"trading",
"crypto",
"automation",
"technical-analysis",
"ai-trading",
"real-time"
],
"supported_crypto_symbols": [
"BTC-USD",
"ETH-USD",
"USDT-USD",
"BNB-USD",
"XRP-USD",
"SOL-USD",
"USDC-USD",
"TRX-USD",
"DOGE-USD",
"ADA-USD",
"MATIC-USD",
"WBTC-USD",
"LINK-USD",
"XLM-USD",
"BCH-USD",
"SUI-USD",
"HBAR-USD",
"AVAX-USD",
"TON-USD",
"LTC-USD",
"MNT-USD",
"NEAR-USD",
"FLOW-USD",
"OKB-USD",
"APE-USD",
"ATOM-USD",
"QNT-USD",
"BSV-USD",
"EOS-USD",
"NEO-USD",
"DYDX-USD",
"CRV-USD",
"KLAY-USD",
"MINA-USD",
"CHZ-USD",
"AXS-USD",
"FTM-USD",
"IMX-USD",
"ZEC-USD",
"ALGO-USD",
"XDC-USD",
"ICP-USD",
"BTG-USD",
"BLZ-USD",
"ENJ-USD",
"KSM-USD",
"VGX-USD",
"RUNE-USD",
"BAT-USD",
"THETA-USD",
"QTUM-USD"
],
"technical_indicators": [
"MACD (12/26/9)",
"RSI (14)",
"EMA (12/26/50)",
"Bollinger Bands (20, 2σ)"
],
"supported_models": [
"deepseek/deepseek-v3.1-terminus",
"openai/gpt-5",
"anthropic/claude-sonnet-4.5",
"x-ai/grok-4",
"qwen/qwen-max",
"google/gemini-2.5-pro",
"meta-llama/llama-3.1-70b-instruct"
],
"trading_features": [
"Long and Short positions",
"Risk-based position sizing",
"Maximum position limits",
"Real-time notifications",
"Portfolio value tracking",
"Multi-symbol trading"
],
"notification_types": [
"Trade execution (open/close)",
"Portfolio value updates",
"Technical signal alerts"
],
"risk_parameters": {
"default_risk_per_trade": 0.02,
"default_max_positions": 3,
"default_check_interval": 60
}
}
}
10 changes: 9 additions & 1 deletion python/scripts/launch.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,12 @@
}
TRADING_AGENTS_NAME = "TradingAgents"
RESEARCH_AGENT_NAME = "ResearchAgent"
AGENTS = list(MAP_NAME_ANALYST.keys()) + [TRADING_AGENTS_NAME, RESEARCH_AGENT_NAME]
AUTO_TRADING_AGENT_NAME = "AutoTradingAgent"
AGENTS = list(MAP_NAME_ANALYST.keys()) + [
TRADING_AGENTS_NAME,
RESEARCH_AGENT_NAME,
AUTO_TRADING_AGENT_NAME,
]

PROJECT_DIR = Path(__file__).resolve().parent.parent.parent
PYTHON_DIR = PROJECT_DIR / "python"
Expand All @@ -54,6 +59,9 @@
MAP_NAME_COMMAND[RESEARCH_AGENT_NAME] = (
f"uv run --env-file {ENV_PATH_STR} -m valuecell.agents.research_agent"
)
MAP_NAME_COMMAND[AUTO_TRADING_AGENT_NAME] = (
f"uv run --env-file {ENV_PATH_STR} -m valuecell.agents.auto_trading_agent"
)
BACKEND_COMMAND = (
f"cd {PYTHON_DIR_STR} && uv run --env-file {ENV_PATH_STR} -m valuecell.server.main"
)
Expand Down
66 changes: 66 additions & 0 deletions python/valuecell/agents/auto_trading_agent/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
"""Auto Trading Agent - Modular architecture for automated crypto trading

Modules:
- agent: Main AutoTradingAgent orchestrator
- models: Data models and enumerations
- position_manager: Position and cash management
- market_data: Technical analysis and indicator retrieval
- trade_recorder: Trade history and statistics
- trading_executor: High-level trade execution facade
- technical_analysis: Backward-compatible technical analysis interface
- portfolio_decision_manager: Portfolio-level decision making
- formatters: Message formatting utilities
- constants: Configuration constants
"""

from .agent import AutoTradingAgent
from .market_data import MarketDataProvider, SignalGenerator
from .models import (
AutoTradingConfig,
CashManagement,
PortfolioValueSnapshot,
Position,
PositionHistorySnapshot,
TechnicalIndicators,
TradeAction,
TradeHistoryRecord,
TradeType,
TradingRequest,
)
from .portfolio_decision_manager import (
AssetAnalysis,
PortfolioDecision,
PortfolioDecisionManager,
)
from .position_manager import PositionManager
from .technical_analysis import AISignalGenerator, TechnicalAnalyzer
from .trade_recorder import TradeRecorder
from .trading_executor import TradingExecutor

__all__ = [
# Main agent
"AutoTradingAgent",
# Core modules
"TradingExecutor",
"PositionManager",
"TradeRecorder",
"MarketDataProvider",
"SignalGenerator",
"PortfolioDecisionManager",
# Models
"AutoTradingConfig",
"TradingRequest",
"Position",
"CashManagement",
"TechnicalIndicators",
"TradeHistoryRecord",
"PositionHistorySnapshot",
"PortfolioValueSnapshot",
"TradeAction",
"TradeType",
"AssetAnalysis",
"PortfolioDecision",
# Utilities
"TechnicalAnalyzer",
"AISignalGenerator",
]
11 changes: 11 additions & 0 deletions python/valuecell/agents/auto_trading_agent/__main__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
"""Main entry point for auto trading agent"""

import asyncio

from valuecell.core.agent.decorator import create_wrapped_agent

from .agent import AutoTradingAgent

if __name__ == "__main__":
agent = create_wrapped_agent(AutoTradingAgent)
asyncio.run(agent.serve())
Loading