NOCTURNA v2.0 is an enterpriseβlevel algorithmic trading system that implements a multiβmodal adaptive quantitative algorithm for trend following and range trading. It combines artificial intelligence, machine learning, and sentiment analysis to create an autonomous, highly profitable trading machine.
- NOCTURNA v2.0 Algorithm: Complete implementation of the adaptive multiβmodal algorithm
- 4 Autonomous Trading Modes:
- EVE: Grid Trading for sideways markets
- LUCIFER: Breakout Trading for key level breaks
- REAPER: Reversal Trading for trend reversals
- SENTINEL: Trend Following for strong trends
- Automatic Market Regime Recognition: 5 states (RANGING, TRENDING, REVERSING, BREAKOUT, VOLATILE)
- Advanced Risk Management: Dynamic stop losses, adaptive position sizing, drawdown control
- ML Optimizer: Automatic parameter optimization using Random Forest and Gradient Boosting
- Genetic Algorithms: Continuous evolution of trading parameters
- Advanced Backtesting: Monte Carlo analysis, Walk-Forward testing
- Sentiment Analysis: News and social media sentiment analysis
- Auto-Tuning: Automatic adaptation to market conditions
- Real-time Dashboard: Live performance monitoring
- Advanced Controls: Start/Stop/Pause/Emergency Stop
- Interactive Visualizations: Performance charts, equity curve, drawdown
- Position Management: Monitor active positions and orders
- Parameter Configuration: Real-time parameter tuning
- Alpaca Markets: Stock and ETF trading
- Polygon.io: Real-time market data
- Yahoo Finance: Historical and fundamental data
- Modular Architecture: Easy addition of new brokers
- Multi-Level Risk Management: Risk controls at order, position, and portfolio level
- Emergency Stop: Immediate halt of all operations
- Comprehensive Logging: Detailed tracking of all operations
- Automatic Backup: Automatic system state saving
NOCTURNA v2.0/
βββ src/
β βββ core/ # Core Trading Engine
β β βββ trading_engine.py # Main engine
β β βββ strategy_manager.py # Strategy management
β β βββ market_data.py # Market data handling
β β βββ order_manager.py # Order management
β β βββ risk_manager.py # Risk management
β βββ advanced/ # Advanced Features
β β βββ ml_optimizer.py # Machine Learning Optimizer
β β βββ backtester.py # Backtesting System
β β βββ sentiment_analyzer.py # Sentiment Analysis
β βββ routes/ # API Routes
β β βββ trading.py # REST API endpoints
β βββ main.py # Main Flask application
βββ frontend/ # React Frontend
β βββ src/
β β βββ components/ # React components
β β βββ services/ # API services
β βββ dist/ # Production build
βββ config/ # Configuration files
- Python 3.11+
- Node.js 20+
- Alpaca Markets account (for live trading)
- Polygon.io API key (for real-time data)
git clone <repository-url>
cd nocturna_trading_bot- Backend Setup
# Create virtual environment
python -m venv venv
source venv/bin/activate # Linux/Mac
# or
venv\\Scripts\\activate # Windows
# Install dependencies
pip install -r requirements.txt- Frontend Setup
cd frontend
npm install
npm run build- Configuration
Create a .env file in the project root:
# Alpaca Trading
ALPACA_API_KEY=your_alpaca_api_key
ALPACA_SECRET_KEY=your_alpaca_secret_key
ALPACA_BASE_URL=https://paper-api.alpaca.markets # Paper trading
# ALPACA_BASE_URL=https://api.alpaca.markets # Live trading
# Polygon.io
POLYGON_API_KEY=your_polygon_api_key
# Database
DATABASE_URL=sqlite:///nocturna.db
# Redis (optional, for caching)
REDIS_URL=redis://localhost:6379
# Trading Configuration
INITIAL_CAPITAL=100000
MAX_POSITION_SIZE=0.1
RISK_LEVEL=LOW- Start the System
# Start the backend
python src/main.py
# The frontend is automatically served at http://localhost:5000π Usage
Web Dashboard
- Open your browser at http://localhost:5000
- Monitor real-time performance
- Control the bot using Start/Stop/Pause buttons
- Configure parameters in the Settings section
REST API
The system exposes a complete REST API for integration:
# System status
GET /api/status
# Start trading engine
POST /api/start
# Stop trading engine
POST /api/stop
# Get active positions
GET /api/positions
# Get orders
GET /api/orders
# Performance
GET /api/performanceAdvanced Configuration
Trading Parameters
TRADING_PARAMS = {
'grid_spacing': 0.005, # Grid spacing (0.5%)
'atr_mult_sl': 2.0, # ATR multiplier for stop loss
'atr_mult_tp': 4.0, # ATR multiplier for take profit
'max_position_size': 0.1, # Maximum position size (10%)
'volatility_threshold': 2.0, # Volatility threshold
'trend_strength_threshold': 0.5, # Trend strength threshold
'reversal_confirmation_bars': 3, # Reversal confirmation bars
'breakout_volume_mult': 1.5 # Breakout volume multiplier
}Machine Learning
ML_CONFIG = {
'optimization_frequency': 'weekly', # Optimization frequency
'n_iterations': 100, # Optimization iterations
'validation_split': 0.2, # Validation split
'feature_selection': True, # Automatic feature selection
'ensemble_methods': ['rf', 'gb'], # Ensemble methods
}π§ͺ Backtesting
Simple Backtesting
from src.advanced.backtester import AdvancedBacktester
from src.core.strategy_manager import StrategyManager
# Configure backtester
config = {
'initial_capital': 100000,
'commission_rate': 0.001,
'slippage_rate': 0.0005
}
backtester = AdvancedBacktester(config)
strategy = StrategyManager(strategy_params)
# Run backtest
results = backtester.run_backtest(historical_data, strategy.generate_signals, strategy_params)
print(f"Total Return: {results['total_return']:.2%}")
print(f"Sharpe Ratio: {results['sharpe_ratio']:.2f}")
print(f"Max Drawdown: {results['max_drawdown']:.2%}")Monte Carlo Analysis
# Strategy robustness analysis
mc_results = backtester.monte_carlo_analysis(
data=historical_data,
strategy_function=strategy.generate_signals,
strategy_params=params,
n_simulations=1000
)
print(f"Probability of positive return: {mc_results['probability_positive']:.1%}")
print(f"95% VaR: {mc_results['return_stats']['percentile_5']:.2%}")π€ Machine Learning and Optimization
Automatic Optimization
from src.advanced.ml_optimizer import MLOptimizer
# Configure optimizer
ml_optimizer = MLOptimizer(config)
# Optimize parameters
optimized_params = ml_optimizer.optimize_parameters(
market_data=recent_data,
current_params=current_params,
backtest_function=backtester.run_backtest,
n_iterations=50
)
print("Optimized parameters:", optimized_params)Sentiment Analysis
from src.advanced.sentiment_analyzer import SentimentAnalyzer
# Analyze sentiment
sentiment_analyzer = SentimentAnalyzer(config)
# Add sentiment data
sentiment_analyzer.add_sentiment_data(
source='news',
symbol='AAPL',
text='Apple reports record quarterly earnings...'
)
# Get sentiment signal
signal = sentiment_analyzer.get_market_sentiment_signal('AAPL')
print(f"Sentiment Signal: {signal['signal']} (strength: {signal['strength']:.2f})")π Performance Metrics
Key Metrics
Β· Total Return: Overall portfolio return Β· Sharpe Ratio: Risk-adjusted return Β· Sortino Ratio: Downside risk-adjusted return Β· Calmar Ratio: Annualized return / Max Drawdown Β· Win Rate: Percentage of winning trades Β· Profit Factor: Gross profits / Gross losses Β· Maximum Drawdown: Peak-to-trough decline
Risk Analysis
Β· VaR (Value at Risk): Maximum expected loss at 95% confidence Β· CVaR (Conditional VaR): Average loss beyond VaR Β· Beta: Correlation with the market Β· Volatility: Standard deviation of returns
π§ Advanced Configuration
Trading Modes
# EVE Mode configuration (Grid Trading)
EVE_CONFIG = {
'grid_levels': 10,
'grid_spacing_pct': 0.5,
'max_grid_positions': 5,
'profit_target_pct': 1.0
}
# LUCIFER Mode configuration (Breakout)
LUCIFER_CONFIG = {
'breakout_threshold': 2.0,
'volume_confirmation': True,
'momentum_filter': True,
'max_breakout_age': 5
}
# REAPER Mode configuration (Reversal)
REAPER_CONFIG = {
'reversal_signals': ['rsi_divergence', 'support_resistance'],
'confirmation_bars': 3,
'risk_reward_ratio': 2.0
}
# SENTINEL Mode configuration (Trend Following)
SENTINEL_CONFIG = {
'trend_indicators': ['ema_cross', 'adx', 'macd'],
'trend_strength_min': 0.6,
'pullback_entry': True
}Risk Management
RISK_CONFIG = {
'max_portfolio_risk': 0.02, # 2% maximum portfolio risk
'max_position_risk': 0.005, # 0.5% maximum risk per position
'correlation_limit': 0.7, # Correlation limit between positions
'sector_concentration': 0.3, # Maximum concentration per sector
'daily_loss_limit': 0.01, # Daily loss limit (1%)
'drawdown_stop': 0.1, # Stop at 10% drawdown
}π Production Deployment
Docker Deployment
# Included Dockerfile for containerized deployment
FROM python:3.11-slim
WORKDIR /app
COPY . .
RUN pip install -r requirements.txt
RUN cd frontend && npm install && npm run build
EXPOSE 5000
CMD ["python", "src/main.py"]Cloud Deployment
The system is optimized for deployment on:
Β· AWS EC2/ECS: With Auto Scaling support Β· Google Cloud Run: Serverless deployment Β· Azure Container Instances: Rapid deployment Β· DigitalOcean Droplets: Cost-effective solution
Monitoring
Β· Prometheus: System metrics Β· Grafana: Monitoring dashboards Β· Sentry: Error tracking Β· CloudWatch: Logging and alerting
π API Documentation
Main Endpoints
System
Β· GET /api/status - System status Β· POST /api/start - Start trading engine Β· POST /api/stop - Stop trading engine Β· POST /api/pause - Pause trading engine Β· POST /api/emergency-stop - Emergency stop
Trading
Β· GET /api/positions - Active positions Β· GET /api/orders - Active orders Β· POST /api/orders - Create new order Β· DELETE /api/orders/{id} - Cancel order
Performance
Β· GET /api/performance - Performance metrics Β· GET /api/equity-curve - Equity curve Β· GET /api/trades - Trade history
Configuration
Β· GET /api/config - Current configuration Β· PUT /api/config - Update configuration Β· POST /api/optimize - Start ML optimization
π Security
Security Measures
Β· API Authentication: JWT tokens for API access Β· Encryption: Sensitive data encrypted Β· Rate Limiting: Abuse protection Β· Audit Logging: Complete operation logs Β· Automatic Backup: Automatic system state backup
Best Practices
Β· Always use paper trading for initial tests Β· Constantly monitor performance Β· Always set appropriate risk limits Β· Keep API keys up to date Β· Perform regular configuration backups
π Troubleshooting
Common Issues
Bot does not start
# Verify configuration
python -c "from src.core.trading_engine import TradingEngine; print('OK')"
# Check logs
tail -f logs/nocturna.logAPI connection errors
# Test Alpaca connection
python -c "import alpaca_trade_api as tradeapi; api = tradeapi.REST(); print(api.get_account())"
# Test Polygon connection
python -c "from polygon import RESTClient; client = RESTClient(); print('OK')"Poor performance
- Verify trading parameters
- Run backtesting on recent data
- Optimize parameters with ML
- Check market conditions
π Support
Documentation
Β· Wiki: Complete documentation in the project wiki Β· Examples: Usage examples in the examples/ folder Β· API Docs: Automatically generated API documentation
Community
Β· Discord: Real-time support on Discord server Β· GitHub Issues: Bug reports and feature requests Β· Forum: Discussions and strategy sharing
π License
This project is released under the MIT license. See the LICENSE file for details.
π Acknowledgements
Β· FMZ Quant: For the original NOCTURNA algorithm Β· Alpaca Markets: For trading APIs Β· Polygon.io: For real-time market data Β· Open Source Community: For the libraries used
β‘ Quick Start
# Clone and setup
git clone <repo-url> && cd nocturna_trading_bot
python -m venv venv && source venv/bin/activate
pip install -r requirements.txt
# Configure .env with your API keys
cp .env.example .env
# Edit .env with your credentials
# Start the system
python src/main.py
# Open browser at http://localhost:5000π― NOCTURNA v2.0 - The Future of Algorithmic Trading is Here!
Disclaimer: Trading involves significant risk. This software is provided "as-is" without warranties. Always use paper trading for initial tests and only invest what you can afford to lose.