This document summarizes the new features implemented for v3.1.0.
- LSTM-based time series prediction for forex trading
- Uses TensorFlow/Keras for deep learning
- Features: sequence-based prediction, adaptive training
- Parameters: lookback_period, sequence_length, lstm_units, epochs
- BERT/GPT-style transformer models for market analysis
- Uses Hugging Face Transformers library
- Features: sequence modeling, pattern recognition
- Parameters: lookback_period, sequence_length, model_name
- DQN and PPO algorithms for autonomous trading
- Uses Stable-Baselines3 and Gymnasium
- Features: custom trading environment, reward-based learning
- Parameters: algorithm (DQN/PPO), training_steps, lookback_period
- Support Vector Machine for classification-based trading
- Features: kernel-based learning, probability-based signals
- Parameters: kernel type, C parameter, gamma
- Combines Random Forest and Gradient Boosting
- Voting classifier for robust predictions
- Features: multi-model ensemble, confidence-based signals
- Parameters: n_estimators, max_depth, learning_rate
- DEAP-based genetic algorithm for parameter optimization
- Features: population-based search, mutation, crossover
- Usage: Define parameter bounds and fitness function
- Optuna-based hyperparameter optimization
- Features: TPE (Tree-structured Parzen Estimator) algorithm
- Usage: Define parameter space and objective function
- Rolling window validation for strategy robustness
- Features: train/test split, out-of-sample testing
- Usage: Define training/test periods and step size
- Monte Carlo simulation for risk assessment
- Features: VaR, CVaR calculation, stress testing
- Usage: Simulate returns and analyze distribution
- Framework for visual strategy construction
- Features: component-based architecture, connection system
- Components: Indicators, Signals, Filters, Risk Management, Exit Conditions
- Pre-built strategy templates
- Available templates: SMA Crossover, RSI Mean Reversion, Breakout
- Easy to extend with custom templates
- Generates Python code from visual builder structure
- Features: automatic code generation, IStrategy interface compliance
- Output: Production-ready strategy classes
- Strategy sharing and discovery platform
- Features: search, filtering, categorization, download tracking
- Storage: JSON-based persistence
- Reviews and ratings for strategies
- Features: 1-5 star ratings, comments, helpful votes
- Analytics: Average ratings, distribution analysis
- Parallel processing support
- Comprehensive error handling with graceful degradation
- Transaction rollback on errors
- Detailed logging and debugging
- Real-time strategy health monitoring
- Features: signal tracking, error counting, execution time metrics
- Health status: Healthy, Warning, Critical, Unknown
- Comprehensive performance metrics
- Features: Sharpe ratio, Sortino ratio, max drawdown, win rate
- Trade tracking and equity curve analysis
- Automated health checks for strategies
- Features: signal generation checks, error rate monitoring, execution time analysis
- Automated alerts and warnings
Added to requirements.txt:
tensorflow>=2.15.0- For LSTM strategiestorch>=2.1.0- For deep learning modelstransformers>=4.35.0- For transformer modelsgymnasium>=0.29.0- For RL environmentsstable-baselines3>=2.2.0- For RL algorithmsoptuna>=3.4.0- For hyperparameter optimizationdeap>=1.4.1- For genetic algorithmsscipy>=1.11.0- For scientific computing
from forexsmartbot.strategies import get_strategy
# LSTM Strategy
lstm_strategy = get_strategy('LSTM_Strategy',
lookback_period=60,
sequence_length=20,
lstm_units=50
)
# SVM Strategy
svm_strategy = get_strategy('SVM_Strategy',
kernel='rbf',
C=1.0
)
# Ensemble ML Strategy
ensemble_strategy = get_strategy('Ensemble_ML_Strategy',
n_estimators=100,
max_depth=10
)from forexsmartbot.optimization import GeneticOptimizer
# Define parameter bounds
param_bounds = {
'fast_period': (10, 30),
'slow_period': (40, 80)
}
# Create optimizer
optimizer = GeneticOptimizer(param_bounds, population_size=50, generations=30)
# Optimize
best_params, best_fitness = optimizer.optimize(fitness_function)from forexsmartbot.builder import StrategyBuilder, StrategyTemplate, CodeGenerator
from forexsmartbot.builder.strategy_builder import ComponentType
# Use template
builder = StrategyTemplate.get_template("SMA Crossover")
# Or build custom
builder = StrategyBuilder()
sma_id = builder.add_component(ComponentType.INDICATOR, "SMA", {"period": 20})
signal_id = builder.add_component(ComponentType.SIGNAL, "Signal", {})
builder.connect_components(sma_id, signal_id)
# Generate code
generator = CodeGenerator(builder)
code = generator.generate_code()from forexsmartbot.monitoring import StrategyMonitor, PerformanceTracker
# Monitor strategy
monitor = StrategyMonitor()
monitor.register_strategy("MyStrategy")
monitor.record_signal("MyStrategy", execution_time=0.1)
# Track performance
tracker = PerformanceTracker()
tracker.record_trade("MyStrategy", {
'profit': 100.0,
'entry_price': 1.1000,
'exit_price': 1.1100
})
metrics = tracker.calculate_metrics("MyStrategy")- ML strategies require sufficient historical data for training (typically 200+ samples)
- RL strategies require significant training time (1000+ steps recommended)
- Transformer strategies are computationally intensive
- All strategies implement the
IStrategyinterface for consistency - Optimization tools can be resource-intensive for large parameter spaces
- Marketplace uses local JSON storage (can be extended to database)
Remaining items for v3.1.0:
- Multi-timeframe analysis strategies
- Parameter sensitivity analysis
- Multi-objective optimization
- Real-time parameter adaptation
- Strategy performance comparison tools
- Real-time strategy testing on paper account
- Strategy sandbox environment
- Automated strategy testing pipeline (CI/CD)
- See
examples/strategy_optimization_example.pyfor optimization usage - See
examples/strategy_builder_example.pyfor builder usage - Individual strategy files contain detailed docstrings