Title: Forex Trading Bot (MT5 Expert Advisor) — EMA + RSI Strategy with Risk Controls
Platform
- MetaTrader 5 (MT5). Provide both compiled (.ex5) and source (.mq5).
Markets & Timeframe
- Primary currency pairs: EURUSD, GBPUSD, XAUUSD (gold). Developer may add other pairs upon request.
- Primary timeframe: H1 (hourly). Should support user selection of timeframe via input parameters.
Strategy Rules (core)
1. Indicators:
- EMA Fast: 50-period Exponential Moving Average
- EMA Slow: 200-period Exponential Moving Average
- RSI: 14-period Relative Strength Index
2. Entry:
- BUY when EMA(50) crosses ABOVE EMA(200) AND RSI < 70
- SELL when EMA(50) crosses BELOW EMA(200) AND RSI > 30
3. Exit:
- Close position when opposite signal occurs (EMA cross in opposite direction).
- Also allow fixed Take Profit (TP) and Stop Loss (SL) in pips (configurable).
- Optional trailing stop (configurable).
Money & Risk Management
- Entry lot options:
- Fixed lot (e.g., 0.01) OR
- Risk-per-trade: X% of account balance (user-configurable)
- Max open trades: configurable (default = 1)
- Max daily drawdown limit: configurable (in % of balance) — if reached, EA stops trading for the day/session.
- Minimum account balance / free margin checks before opening new trades.
Inputs / User Parameters (all must be exposed in EA inputs)
- EMA_fast_period (default 50)
- EMA_slow_period (default 200)
- RSI_period (default 14)
- RSI_buy_threshold (default 70)
- RSI_sell_threshold (default 30)
- Use_fixed_lot (true/false)
- Fixed_lot_size (default 0.01)
- Use_risk_percent (true/false)
- Risk_percent (default 1.0)
- Stop_loss_pips (default 30)
- Take_profit_pips (default 60)
- Use_trailing_stop (true/false)
- Trailing_start_pips (default 20)
- Trailing_step_pips (default 5)
- Max_open_trades (default 1)
- Slippage_max (default 3)
- Magic_number (unique ID)
- Enable_news_filter (true/false) and News_time_window_minutes (if enabled)
- Trade_start_time / Trade_end_time (optional — server hours)
- Currency pairs list (allow selection by symbol or auto-detect)
Optional Features (nice-to-have)
- Time-of-day filter (do not trade outside specified hours).
- Spread limit (do not open trade if spread > X pips).
- News filter (avoid trading around high-impact news; if implemented, state the data source).
- Equity stop (if account equity falls below X% stop trading).
- Break-even option (move SL to break-even after X pips in profit).
- Multi-pair support and per-pair settings.
Notifications & Logging
- Push notifications to mobile and/or email when trade is opened/closed (configurable).
- Detailed log file or comments for each trade (entry reason, indicator values at entry, TP, SL).
- Option to write CSV or log to journal for backtest analysis.
Delivery / Files required
- Source code: .mq5 file
- Compiled binary: .ex5 file
- A short README describing all input parameters and how to install/run
- Example recommended settings to run in Strategy Tester
- Optional: a short video or screenshot showing EA attached and one trade in tester (if available)
Testing & Acceptance Criteria
- Developer must run basic Strategy Tester proof screenshots showing at least one backtest on EURUSD H1 with the provided settings.
- EA must not open trades during disabled hours or if risk checks fail.
- EA must respect SL, TP, trailing stop and close on opposite signals.
- Upon delivery, I will run a demo/backtest; any bugs preventing basic trading behavior will require fixes.
Support & Warranty
- Include 30 days of free bug-fix support after delivery (developer to propose).
- Provide brief in-code comments on logic or a short document explaining critical functions.
Other
- Please state required price and estimated delivery time in your proposal.
- Provide prior similar EA examples or link to MQL5 profile items for verification.
- Developer should confirm compatibility with broker servers (hedging/NETTING options) if relevant.
Acceptance
- I will consider the job complete when source + compiled files are delivered, EA attaches and runs in MT5 Strategy Tester with documented inputs and expected behavior per the specification.