The Trading Engine is the core decision-making component of the trading system, coordinating multiple services to generate and execute trading signals. It combines technical analysis, market sentiment, and correlation data to make informed trading decisions.
graph TD
A[Trading Engine] --> B[Market Data Service]
A --> C[Sentiment Analyzer]
A --> D[Correlation Analyzer]
A --> E[State Manager]
B --> F[Technical Signals]
C --> G[Sentiment Signals]
D --> H[Correlation Signals]
F --> I[Signal Generator]
G --> I
H --> I
I --> J[Risk Manager]
J --> K[Order Executor]
K --> E
- Combines signals from multiple sources:
- Technical Analysis (40% weight)
- Market Sentiment (30% weight)
- BTC Correlation (30% weight)
- Generates confidence scores (0.0 to 1.0)
- Requires minimum confidence of 0.7 for execution
- Position sizing based on account balance
- Maximum 2% risk per trade
- Maximum position size of 1000 USDC
- Stop loss at 2% below entry
- Take profit at 5% above entry
- Technical indicators (MA, RSI, MACD)
- Order book imbalance
- Market sentiment analysis
- BTC correlation tracking
- State-based order management
- Automated stop loss and take profit
- Position tracking
- Error handling and logging
config = {
'min_confidence': 0.7, # Minimum confidence for trade execution
'max_position_size': 1000, # Maximum position size in USDC
'risk_per_trade': 0.02, # 2% risk per trade
'technical_weight': 0.4, # Weight for technical signals
'sentiment_weight': 0.3, # Weight for sentiment signals
'correlation_weight': 0.3, # Weight for correlation signals
'stop_loss_pct': 0.02, # 2% stop loss
'take_profit_pct': 0.05 # 5% take profit
}
# Initialize services
market_data = MarketDataService(symbol="TRUMPUSDC")
sentiment_analyzer = SentimentAnalyzer()
correlation_analyzer = CorrelationAnalyzer()
state_manager = StateManager(symbol="TRUMPUSDC")
# Initialize trading engine
engine = TradingEngine(
symbol="TRUMPUSDC",
market_data=market_data,
sentiment_analyzer=sentiment_analyzer,
correlation_analyzer=correlation_analyzer,
state_manager=state_manager
)
# Start trading
await engine.start()
# Get trading summary
summary = await engine.get_trading_summary()
print(summary)
# Stop trading
await engine.stop()
- Moving Average crossovers
- RSI (30/70 levels)
- MACD signals
- Order book imbalance
- Social media sentiment
- News sentiment
- Fear & Greed Index
- Market momentum
- BTC price correlation
- Market dominance impact
- Trading volume correlation
position_size = min(
balance * risk_per_trade,
max_position_size
) / current_price
stop_loss = entry_price * (1 - stop_loss_pct)
take_profit = entry_price * (1 + take_profit_pct)
Run the test suite:
python src/test_trading_engine.py
The test suite verifies:
- Signal generation
- Market condition aggregation
- Trading strategy execution
- Risk management
- Service integration
- Graceful error recovery
- Automatic retry mechanism
- Comprehensive logging
- State consistency checks
-
Additional Strategies
- Grid trading
- Momentum trading
- Mean reversion
- Arbitrage
-
Enhanced Risk Management
- Dynamic position sizing
- Adaptive stop losses
- Multiple take profit levels
-
Performance Optimization
- Caching market data
- Parallel signal processing
- Optimized order execution
-
Machine Learning Integration
- Pattern recognition
- Predictive analytics
- Risk assessment