Job finished
Specification
want you to build an Expert Advisor (EA) for MetaTrader 5 that reads a .csv file from my local PC and executes trades based on the data in that file. The EA must support both market and pending orders and offer flexible risk management, trailing stop options, and slippage control. All these functions are part of mql5 core codes
Core Requirements
1. CSV-Based Order Input
- The EA should periodically read a CSV file (from local mql5/files)
- Columns (CSV headers) must include all the parameters needed to define a trade, including:
- Order Type (Market Buy, Market Sell, Buy Stop, Sell Stop, Buy Limit, Sell Limit)
- Symbol
- Entry Price (ignored for market orders)
- Stop Loss (in price or pips)
- Take Profit (in price or pips)
- Lot Sizing Method (Fixed, % Risk, $ Risk, $/Pip)
- Risk Value (depending on the method)
- Min Lot Size
- Max Lot Size
- Slippage (in pips)
- Trailing Stop Type (None, Fixed, Break-Even, Manual Activation)
- Trailing Stop Value (in pips)
- Trailing Activation Level (if applicable)
- Break-Even Buffer (if applicable)
- Magic Number (optional)
2. Lot Sizing Methods (Selectable Per Trade)
The EA must support the following options (based on the “Lot Sizing Method” and “Risk Value” columns in the CSV):
- Fixed Lot Size
User specifies lot size directly (e.g., 0.10). - % Risk of Balance/Equity
Lot size = (Risk% × Balance or Equity) / (SL in points × point value) - Fixed $ Amount Risk
Lot size = Dollar Risk / (SL × value per pip) - Dollar per Pip
Lot size = ($/pip) / (value per pip per lot) - Min/Max Lot Size Boundaries
Enforced regardless of the calculation method.
3. Trailing Stop Options
The EA must support these trailing stop strategies:
- Fixed Trailing Stop: SL follows price at a fixed distance.
- Break-Even: SL moves to entry (optionally plus a buffer) once the trade is in profit by a certain number of pips.
- Manual Trailing Activation: Trailing begins only after price moves a defined number of pips into profit.
4. Slippage Handling
- The EA should respect a Maximum Slippage value per trade (defined in pips in the CSV).
- This is used in the slippage field of the MqlTradeRequest.
The csv will alway look like this, “ Order Type,Symbol,Entry Price,Stop Loss,Take Profit,Lot Sizing Method,Risk Value,Min Lot Size,Max Lot Size,Slippage,Trailing Stop Type,Trailing Stop Value,Trailing Activation Level,Break-Even Buffer”