workspace/projects/trading-platform/apps/llm-agent/AUTO_TRADING.md
rckrdmrd 789d1ab46b
Some checks failed
CI Pipeline / changes (push) Has been cancelled
CI Pipeline / core (push) Has been cancelled
CI Pipeline / trading-backend (push) Has been cancelled
CI Pipeline / trading-data-service (push) Has been cancelled
CI Pipeline / trading-frontend (push) Has been cancelled
CI Pipeline / erp-core (push) Has been cancelled
CI Pipeline / erp-mecanicas (push) Has been cancelled
CI Pipeline / gamilit-backend (push) Has been cancelled
CI Pipeline / gamilit-frontend (push) Has been cancelled
changes on workspace
2025-12-09 14:46:20 -06:00

9.1 KiB
Raw Blame History

Auto-Trading System - LLM Agent

Overview

The Auto-Trading system enables the LLM Agent to autonomously analyze ML signals, evaluate AMD (Accumulation/Manipulation/Distribution) phases, and make informed trading decisions.

Features

1. Automated Decision Making

  • Analyzes ML signals from the ML Engine
  • Evaluates AMD phase for market context
  • Makes BUY/SELL/HOLD decisions with confidence scores
  • Calculates optimal position sizes based on risk parameters

2. Risk Management

  • Automatic TP/SL calculation based on ML signals
  • Position sizing based on account size and risk percentage
  • Maximum position limits to prevent overexposure
  • Confidence threshold filtering

3. Safety Features

  • Paper trading mode by default
  • Optional user confirmation before execution
  • Decision logging for audit trail
  • Configurable monitoring intervals

4. Monitoring Loop

  • Background task monitors configured symbols
  • Periodic checks every N minutes (configurable)
  • Automatic decision generation on opportunities
  • Non-blocking async implementation

Architecture

Models (src/models/auto_trade.py)

TradeDecision

Represents an automated trading decision:

{
    "symbol": "BTC/USD",
    "action": "BUY",  # BUY, SELL, or HOLD
    "confidence": 0.85,  # 0-1
    "reasoning": "Strong bullish signal during accumulation",
    "entry_price": 45000.0,
    "take_profit": 47500.0,
    "stop_loss": 44000.0,
    "position_size": 0.5,
    "ml_signal": {...},
    "amd_phase": "accumulation"
}

AutoTradeConfig

Configuration for auto-trading:

{
    "user_id": "user_123",
    "enabled": true,
    "symbols": ["BTC/USD", "ETH/USD"],
    "max_risk_percent": 1.5,
    "min_confidence": 0.75,
    "paper_trading": true,
    "require_confirmation": true,
    "max_open_positions": 3,
    "check_interval_minutes": 5
}

Tools (src/tools/auto_trading.py)

AutoTradeDecisionTool

Core decision-making tool that:

  1. Fetches ML signal from ML Engine
  2. Gets AMD phase analysis
  3. Retrieves current market data
  4. Applies decision matrix logic
  5. Calculates position size and TP/SL

GetAMDPhaseTool

Analyzes AMD phase for a symbol:

  • Accumulation: Smart money buying (good for longs)
  • Manipulation: High volatility (trade with caution)
  • Distribution: Smart money selling (good for shorts)

Service (src/services/auto_trade_service.py)

AutoTradeService

Manages auto-trading operations:

  • Configuration management
  • Background monitoring loop
  • Decision logging
  • Trade execution coordination

API Endpoints (src/api/auto_trade_routes.py)

Configuration Endpoints

POST /api/v1/auto-trade/config Set or update auto-trade configuration

{
    "config": {
        "user_id": "user_123",
        "enabled": true,
        "symbols": ["BTC/USD"],
        "max_risk_percent": 1.5,
        "min_confidence": 0.75
    }
}

GET /api/v1/auto-trade/config/{user_id} Get current configuration

GET /api/v1/auto-trade/status/{user_id} Get current status

Control Endpoints

POST /api/v1/auto-trade/enable/{user_id} Quick enable auto-trading

POST /api/v1/auto-trade/disable/{user_id} Quick disable auto-trading

Decision Management

GET /api/v1/auto-trade/decisions/{user_id} Get decision logs

  • Query params: limit (default: 50), executed_only (default: false)

GET /api/v1/auto-trade/pending/{user_id} Get pending (unexecuted) decisions

POST /api/v1/auto-trade/decisions/{user_id}/confirm Confirm and execute a pending decision

{
    "log_id": "decision_123"
}

POST /api/v1/auto-trade/decisions/{user_id}/cancel Cancel a pending decision

{
    "log_id": "decision_123"
}

Decision Logic

Decision Matrix

The system uses a decision matrix based on ML signals and AMD phases:

ML Signal AMD Phase Decision Confidence
Bullish Accumulation BUY High (0.95x)
Bullish Manipulation BUY Medium (0.70x)
Bullish Distribution HOLD Low (0.30)
Bearish Distribution SELL High (0.95x)
Bearish Manipulation SELL Medium (0.70x)
Bearish Accumulation HOLD Low (0.30)
Neutral Any HOLD None (0.0)

Position Sizing

Position size is calculated using:

Risk Amount = Account Size <20> (Risk % / 100)
Risk Per Unit = |Entry Price - Stop Loss|
Position Size = Risk Amount / Risk Per Unit

Maximum position size is capped at 20% of account value.

Enhanced Execute Trade Tool

The execute_trade tool has been enhanced with:

ML Integration

  • Automatic TP/SL calculation from ML signals
  • Falls back to manual values if provided
  • Fetches current market price

Risk/Reward Analysis

{
    "risk_amount": 500.0,
    "reward_amount": 2500.0,
    "risk_reward_ratio": 5.0,
    "risk_percent": 1.11,
    "reward_percent": 5.56
}

Modes

  • Paper Trading: Safe simulation mode (default)
  • Live Trading: Real execution (requires explicit enable)
  • Confirmation Required: Manual approval (default: true)
  • Auto-Execute: Direct execution for auto-trading (confirmation: false)

Usage Examples

1. Configure Auto-Trading

curl -X POST http://localhost:8003/api/v1/auto-trade/config \
  -H "Content-Type: application/json" \
  -d '{
    "config": {
      "user_id": "user_123",
      "enabled": true,
      "symbols": ["BTC/USD", "ETH/USD"],
      "max_risk_percent": 1.0,
      "min_confidence": 0.75,
      "paper_trading": true,
      "require_confirmation": false,
      "max_open_positions": 3,
      "check_interval_minutes": 5
    }
  }'

2. Check Status

curl http://localhost:8003/api/v1/auto-trade/status/user_123

3. View Pending Decisions

curl http://localhost:8003/api/v1/auto-trade/pending/user_123

4. Confirm Decision

curl -X POST http://localhost:8003/api/v1/auto-trade/decisions/user_123/confirm \
  -H "Content-Type: application/json" \
  -d '{"log_id": "decision_abc123"}'

5. Disable Auto-Trading

curl -X POST http://localhost:8003/api/v1/auto-trade/disable/user_123

Testing

Run tests with pytest:

cd /home/isem/workspace/projects/trading-platform/apps/llm-agent
pytest tests/test_auto_trading.py -v

Test coverage includes:

  • Model validation
  • Configuration management
  • Service operations
  • Decision lifecycle
  • Monitoring control

Safety Considerations

Before Production

  1. API Integration: Complete integration with backend trading API
  2. Database Persistence: Store decision logs in database (currently in-memory)
  3. User Authentication: Implement proper user authentication
  4. Rate Limiting: Add rate limiting on API endpoints
  5. Error Handling: Enhanced error handling and retry logic
  6. Monitoring: Set up monitoring and alerting
  7. Audit Logs: Comprehensive audit logging
  8. Testing: Extensive integration and load testing

Security

  • Never store API keys in code
  • Validate all user inputs
  • Implement proper authentication/authorization
  • Use HTTPS in production
  • Rate limit API calls
  • Sanitize all database queries

Risk Management

  • Start with paper trading only
  • Test thoroughly before enabling live trading
  • Set conservative position size limits
  • Monitor system performance continuously
  • Have kill switch to disable all auto-trading
  • Regular reviews of decision logs

Integration with ML Engine

The system expects the following ML Engine endpoints:

GET /api/v1/signals/{symbol}

Returns ML trading signal:

{
    "direction": "bullish",
    "confidence": 0.87,
    "entry_price": 45000.0,
    "take_profit": 47500.0,
    "stop_loss": 44000.0,
    "risk_reward_ratio": 2.5
}

GET /api/v1/amd/phase/{symbol}

Returns AMD phase analysis:

{
    "phase": "accumulation",
    "confidence": 0.85,
    "indicators": {
        "volume_profile": "accumulating",
        "price_action": "consolidation"
    }
}

Future Enhancements

  1. Multi-timeframe Analysis: Consider multiple timeframes for decisions
  2. Portfolio Balancing: Automatic portfolio rebalancing
  3. Advanced Filters: Additional filters (news sentiment, macro indicators)
  4. Backtesting: Historical performance testing
  5. Performance Analytics: Detailed performance metrics and reporting
  6. Machine Learning: Learn from past decisions to improve
  7. Notifications: Push notifications for important decisions
  8. Stop Management: Trailing stops and dynamic adjustment

Troubleshooting

Monitoring Not Starting

  • Check that configuration is properly set
  • Verify enabled: true in config
  • Check logs for error messages

No Decisions Being Made

  • Verify symbols are correct
  • Check ML Engine connectivity
  • Review confidence threshold settings
  • Check min_confidence vs actual signal confidence

Decisions Not Executing

  • Verify require_confirmation setting
  • Check pending decisions queue
  • Review execution logs

Support

For issues or questions:

  1. Check logs in /var/log/llm-agent/
  2. Review decision logs via API
  3. Check system status endpoint
  4. Verify ML Engine connectivity

License

OrbiQuant IA Trading Platform - Proprietary