İş Gereklilikleri
Project Overview:
I would like you to develop a Moving Average Crossover Trading Bot for MetaTrader 5 (MT5), compatible with all trading instruments (Forex, Stocks, Indices, Commodities, etc.), that incorporates machine learning algorithms to improve the strategy’s performance. The bot should be customizable, allowing users to adjust various parameters such as risk percentage, moving average periods, stop loss, take profit, and trade duration. It should also leverage machine learning models like Support Vector Machines (SVM), Artificial Neural Networks (ANN), and Long Short-Term Memory (LSTM) to enhance trade decisions.
Trading Strategy:
The primary strategy will still be based on the Moving Average Crossover Strategy, using two Exponential Moving Averages (EMA):
- Short-term EMA (fast-moving average) for short-term trends.
- Long-term EMA (slow-moving average) for long-term trend confirmation.
Buy/Sell Signals:
- Buy (Long) Signal: When the short-term EMA crosses above the long-term EMA (Bullish Crossover).
- Sell (Short) Signal: When the short-term EMA crosses below the long-term EMA (Bearish Crossover).
The Exit Strategy will remain the same, with configurable Stop Loss (SL), Take Profit (TP), and optional trailing stops.
Machine Learning Enhancements
To enhance the performance and decision-making ability of the bot, I would like you to integrate machine learning models that can process additional market data and improve the accuracy of the trade signals generated by the moving average crossovers. The goal is to make more informed decisions by analyzing past price data, trends, and market patterns.
1. Machine Learning Models to Include:
- Support Vector Machines (SVM): Can be used to classify whether market conditions are favorable for long or short trades based on past price action and other technical indicators.
- Artificial Neural Networks (ANN): Use historical price data and technical indicators to predict the probability of a successful trade after a crossover. ANN can help the bot determine the likelihood of trend continuation or reversal.
- Long Short-Term Memory (LSTM): A specific type of recurrent neural network (RNN) capable of learning patterns in time-series data. LSTM is well-suited to forex and stock market predictions, as it can capture long-term dependencies in price action and volatility.
2. How Machine Learning Enhancements Will Work:
- Preprocessing: Collect and preprocess historical price data, technical indicators (e.g., RSI, MACD, volume), and moving average crossovers.
- Model Training: The machine learning models should be trained on past data to classify or predict:
- Whether a crossover signal is likely to result in a successful trade (profitable outcome).
- The probability of trend continuation after the signal.
- Market conditions (e.g., bullish or bearish) based on patterns that go beyond the simple moving average crossover.
- Model Selection: The bot will allow the user to choose which model to apply (SVM, ANN, or LSTM), or run tests to automatically select the best-performing model for current market conditions.
3. Decision-Making Process:
- Trade Validation: Once the moving average crossover signal is triggered, the chosen machine learning model (SVM, ANN, or LSTM) will validate whether the signal is likely to be profitable based on historical patterns.
- If the model predicts a high probability of success, the trade will be executed.
- If the model predicts low probability, the bot may ignore the crossover signal or wait for additional confirmation.
- Adaptive Learning: The model should adapt to recent market data through periodic retraining to stay updated with current trends.
Key Features and Flexibility (Including Machine Learning)
-
Moving Average Parameters:
- Short-term EMA Period: Adjustable by the user (default: 12).
- Long-term EMA Period: Adjustable by the user (default: 26).
- Option to select between Exponential Moving Average (EMA) or Simple Moving Average (SMA).
-
Risk Management Settings:
- Risk Percentage: User-defined risk percentage per trade (e.g., 1% or 2% of total balance).
- Stop Loss (SL): Adjustable based on fixed pips, ATR, or dynamic models (machine learning can help predict optimal stop-loss levels).
- Take Profit (TP): Adjustable based on fixed pips, Risk-to-Reward ratio, or trailing stops.
-
Customizable Trade Filters:
- Machine Learning Filters:
- Allow the user to choose between SVM, ANN, or LSTM to validate trade signals generated by the moving average crossovers.
- The bot should also include an option for automatic model selection, where it tests all models and selects the one with the best performance.
- Timeframes: User-defined timeframes (e.g., 1-minute, 5-minute, 1-hour, daily).
- Instruments/Pairs: The bot must work on all MT5 instruments, and the user should be able to select which trading pairs or instruments to trade.
- Trend Filter: Option to trade only in the direction of the larger trend (e.g., use the 200-period MA as a trend filter).
- Volume Filter: Only take trades if the volume exceeds a certain threshold.
- Machine Learning Filters:
-
Position Sizing:
- Automatic calculation of position sizes based on risk percentage and stop-loss settings.
- Option for manual lot size selection.
-
Trade Timing Options:
- Ability to configure trading hours or days (e.g., only trade during London or New York sessions).
- Avoid trading during high-impact news events (option to disable trading during news releases).
-
Trade Filters with Machine Learning:
- Market Condition Filter: Use machine learning (SVM/ANN/LSTM) to classify market conditions (bullish, bearish, choppy) before executing trades.
- Momentum Indicators: Integrate with indicators like RSI or MACD and allow machine learning models to process these indicators for better decision-making.
-
Stop and Reverse:
- If a long trade is closed (e.g., bearish crossover), the bot should optionally reverse the position and open a short trade, and vice versa.
Machine Learning Model Flexibility:
The machine learning models should be easily customizable and adjustable:
- Training Period: Allow the user to define how much historical data to use for training the model.
- Model Choice: Users should be able to switch between SVM, ANN, and LSTM, or let the bot automatically select the most accurate model.
- Retraining Frequency: Allow the bot to periodically retrain the model using recent data (e.g., once a week, or after a certain number of trades).
Backtesting & Optimization:
- The bot must be compatible with MT5’s Strategy Tester, allowing users to backtest the performance of both the moving average strategy and the integrated machine learning models.
- Include machine learning metrics such as:
- Accuracy: How well the model predicts successful trades.
- Precision: The percentage of positive predictions that are correct.
- Recall: The model’s ability to identify all profitable trades.
- Include traditional backtesting metrics like win rate, drawdown, Sharpe ratio, and profit factor.
Final Deliverables:
- Completed Bot in MetaTrader 5 format (.ex5 or .mq5), including all machine learning models (SVM, ANN, and LSTM).
- Source code for future modifications.
- A detailed user guide or documentation explaining how to adjust parameters, train the machine learning models, and use the bot effectively.
- Initial testing on demo accounts to verify functionality.