Specification
FREELANCER JOB ORDER: DEVELOPMENT OF A MULTI-ASSET FTMO-COMPLIANT EXPERT ADVISOR (EA)
1. Project Title
Development of a Professional, Configurable MT5 Expert Advisor for FTMO Challenges and Funded Accounts — Forex, Gold, Silver and Commodities
2. Project Overview
I am seeking an experienced MQL5 developer to design and develop a professional automated trading system (Expert Advisor) for MetaTrader 5 (MT5).
The EA must be designed to operate across multiple instruments, including Forex currency pairs, gold (XAUUSD), silver (XAGUSD), and other supported metals and commodities available on the selected FTMO trading platform.
The primary objective is to develop a systematic, risk-controlled EA that can identify high-quality trading opportunities, manage trades automatically, and protect the account from breaching applicable FTMO trading objectives.
The EA must be fully configurable through a simple input panel, allowing me to select entry strategies, timeframes, indicators, risk percentages, trading sessions, stop-loss and take-profit rules, and other parameters without modifying the source code.
The project must prioritise capital preservation, disciplined execution, transparent reporting, and long-term performance rather than aggressive trading or unrealistic profit promises.
3. Platform and Technical Requirements
- Platform: MetaTrader 5.
- Programming language: MQL5.
- Deliverables: compiled .ex5 file and complete editable .mq5 source code.
- Compatible with FTMO MT5 account specifications and supported instruments.
- Multi-symbol functionality with configurable symbol selection.
- Automatic lot-size calculation based on risk and instrument specifications.
- Adaptable to different account sizes and FTMO account types.
- Suitable for Strategy Tester backtesting, demo testing, and forward testing.
The EA must detect instrument specifications, tick values, tick sizes, contract sizes, volume limits, minimum stop distances, trading hours, and supported order types rather than assuming every instrument behaves like a Forex pair.
4. Preselectable Entry Strategies
The EA must include the following entry strategies as independent modules. I must be able to enable or disable each strategy and select which ones are permitted to trade.
Strategy A — Trend Following
- Fast and slow EMA crossover or alignment.
- Higher-timeframe trend confirmation.
- ADX filter to identify sufficient trend strength.
- Optional pullback entry before a new position is opened.
- Configurable EMA periods, ADX period, and minimum ADX threshold.
- Buy and sell signals handled independently.
Strategy B — Breakout Trading
- Detect support and resistance zones.
- Identify breakouts from recent highs, lows, or defined trading ranges.
- Optional candle-close confirmation.
- ATR-based volatility filter to reduce false breakouts.
- Optional retest confirmation before entry.
- Configurable breakout lookback period and confirmation settings.
Strategy C — Pullback and Continuation
- Identify the prevailing trend using EMA alignment.
- Wait for a pullback to a configurable EMA or price zone.
- Require a selectable confirmation indicator or candle pattern.
- Enter in the direction of the prevailing trend.
- Allow the trader to configure the required confirmation conditions.
Strategy D — Momentum Confirmation
- Use RSI, ADX, MACD, or other selectable momentum indicators.
- Allow the user to choose which indicators are required.
- Provide configurable overbought, oversold, momentum, and trend thresholds.
- Prevent entries when mandatory confirmation conditions are not satisfied.
Strategy E — Optional Range Trading
- Detect sideways markets using configurable volatility and trend-strength filters.
- Identify potential entries near defined range boundaries.
- Require a confirmation signal before entry.
- Include a maximum spread and minimum risk-to-reward filter.
Range trading must be independently selectable and disabled by default until validated through testing.
Entry Logic Requirements
The EA must support three selectable modes:
- Single strategy: only one selected strategy may generate entries.
- Confluence mode: require a configurable number of selected conditions to agree.
- Multi-strategy mode: allow multiple enabled strategies to trade, subject to the same risk limits and duplicate-signal protections.
All entry rules must be visible and documented. The EA must not open a trade merely because an indicator has reached a particular value; it must follow the selected entry conditions and risk checks.
5. Technical Indicators and Adjustable Inputs
The following indicators and parameters must be available in the EA settings:
- EMA: fast period, slow period, and trend timeframe.
- ADX: period and minimum trend-strength threshold.
- ATR: period, volatility filter, stop-loss multiplier, and trailing-stop multiplier.
- RSI: period and selectable buy/sell thresholds.
- MACD: fast, slow, and signal periods.
- Optional support/resistance, candlestick confirmation, and breakout filters.
- Optional higher-timeframe confirmation.
- Optional minimum candle-body or momentum threshold.
Each indicator must have an enable/disable setting. The EA must permit different parameter presets for gold, silver, Forex, and other supported instruments.
6. FTMO Risk Management and Account Protection
This is the most important part of the project.
The EA must contain a dedicated risk-management engine that operates independently of the entry strategies. No entry strategy may bypass these controls.
A. FTMO account configuration
Provide a selectable configuration for the applicable FTMO product and account rules, including:
- FTMO Challenge 1-Step.
- FTMO Challenge 2-Step.
- Verification phase where applicable.
- FTMO Account rules where applicable.
- Custom risk configuration for testing on non-FTMO accounts.
The EA must use the correct rules for the selected account type and allow the user to verify the configured limits before enabling trading.
B. Maximum daily loss protection
- Track daily starting balance and the applicable daily loss threshold.
- Calculate current equity, including open floating profit/loss and relevant costs.
- Account for commissions and swaps where applicable.
- Use the correct FTMO server-time reset and daily calculation rules.
- Include a configurable safety buffer below the official breach threshold.
- Stop opening new trades when the safety threshold is reached.
- If configured, close open EA-managed positions before the official breach threshold is reached.
- Prevent further trading until the next permitted trading day.
The EA must not rely only on closed trades or balance because floating losses can cause a breach.
C. Maximum overall loss protection
- Track the applicable maximum loss limit.
- Implement the correct static or trailing calculation for the selected FTMO product.
- Monitor equity continuously.
- Stop trading before the configured safety threshold is breached.
- Provide an emergency protection function for EA-managed trades.
D. Position sizing
The EA must calculate position size automatically using the actual stop-loss distance, instrument specifications, account currency, and selected risk percentage.
Required selectable risk levels:
- 0.25% per trade.
- 0.50% per trade.
- 0.75% per trade.
- 1.00% per trade.
- Custom risk percentage.
The EA must allow the maximum risk to be restricted independently of the selected setting. It must never increase lot size to recover losses.
E. Additional risk controls
Include:
- Maximum risk per trade idea.
- Maximum simultaneous positions.
- Maximum total open risk.
- Maximum daily loss in money and percentage.
- Maximum consecutive losing trades.
- Maximum trades per day.
- Maximum spread filter.
- Maximum slippage setting where supported.
- Maximum permitted lot size.
- Daily profit target and optional daily trading lock.
- Emergency stop and manual trading disable switch.
- Optional equity-based protection that closes EA-managed positions.
- Correlated-instrument exposure limits.
- Protection against duplicate orders and repeated entries on the same signal.
Mandatory rule: If the EA cannot determine whether a new trade would breach the configured risk limits, it must reject the trade and log the reason.
7. Stop-Loss, Take-Profit and Trade Management
Every position must have a valid protective stop-loss at entry, unless the platform's execution mechanics require a documented alternative during order placement. The EA must never intentionally leave a position unprotected.
Required options:
- Fixed stop-loss and take-profit.
- ATR-based stop-loss.
- Structure-based stop-loss using recent swing highs/lows.
- Configurable risk-to-reward ratios: 1:1, 1:1.5, 1:2, 1:3, or custom.
- Break-even stop after a configurable profit threshold.
- Trailing stop based on ATR, EMA, or fixed distance.
- Optional partial profit-taking.
- Maximum holding time.
- Optional exit on opposite signal.
- Maximum time allowed for an order to remain pending.
- Correct handling of rejected orders and stop modifications.
All settings must be configurable, and trade management must respect instrument-specific minimum stop distances and execution restrictions.
8. Multi-Asset Compatibility
The EA must work with supported instruments available in the selected FTMO MT5 account, including:
- Forex: major, minor, and available exotic currency pairs.
- Precious metals: XAUUSD and XAGUSD where available.
- Other metals: any supported metal instruments.
- Energy commodities: supported oil and natural gas instruments.
- Other commodities: supported instruments offered by the account.
The developer must not hardcode assumptions about symbol names. For example, the EA must handle broker-specific symbol suffixes or prefixes and instruments with different tick sizes, contract sizes, lot steps, and trading sessions.
The EA must include a symbol-selection panel allowing me to choose which instruments are active. Unsupported or unavailable instruments must be reported clearly.
9. Trading Sessions and Economic News Filters
The EA must include configurable trading-session controls:
- Asian session.
- London session.
- New York session.
- London/New York overlap.
- Custom trading hours.
- Separate session settings for individual instruments.
- Automatic handling of daylight-saving changes where technically feasible.
- Configurable no-trade periods around market openings, closings, and rollover.
Include an optional economic-calendar filter that can block new entries before and after high-impact news affecting the relevant currency or instrument.
The news filter must use a documented, reliable data source. If news data becomes unavailable, the EA must follow a selectable fail-safe policy and report the problem. It must not pretend that a news filter is working when no valid data is available.
The EA must also allow configurable restrictions around scheduled market closures and periods of abnormal spreads or volatility.
10. FTMO Compliance Safeguards
The EA must be designed to comply with the applicable FTMO rules, including:
- Daily and overall loss limits.
- Applicable profit targets and other account objectives.
- Relevant consistency requirements.
- Trading hours and holding restrictions applicable to the specific account.
- Prohibited trading practices.
- Restrictions on excessive server requests and order modifications.
- Reasonable risk management and execution that reflects genuine market conditions.
The EA must avoid martingale, grid-based loss recovery, uncontrolled averaging down, latency exploitation, price-feed exploitation, and excessive order activity.
All trading must be legitimate and consistent with FTMO's applicable terms. The developer must document any features that could create compliance risks and explain how they are prevented.
Official references:
- FTMO Trading Objectives: https://ftmo.com/en/trading-objectives/
- FTMO Forbidden Trading Practices: https://ftmo.com/au/forbidden-trading-practices/
- FTMO Supported Instruments and EA Rules: https://ftmo.com/au/faq/which-instruments-can-i-trade-and-what-strategies-am-i-allowed-to-use/
- FTMO Instrument Specifications: https://ftmo.com/en/symbols
The developer must verify the latest rules before delivery. The EA must provide safeguards, but no software can guarantee that a trading account will never breach an FTMO rule under all market and execution conditions.
11. User-Friendly Settings Panel
I require an organised settings panel with clear descriptions and logical grouping.
The user must be able to select:
- Account type and starting capital.
- Risk per trade.
- Maximum daily loss and overall loss safety buffers.
- Active symbols.
- Active strategies.
- Entry confirmation conditions.
- Indicator periods and thresholds.
- Trading timeframes.
- Trading sessions.
- News filter settings.
- Stop-loss and take-profit methods.
- Risk-to-reward ratio.
- Break-even and trailing-stop settings.
- Maximum trades and open positions.
- Daily profit lock.
- Maximum spread.
- Emergency stop.
- Dashboard visibility and alerts.
Include the ability to save and load named presets, such as:
- Conservative FTMO.
- Balanced FTMO.
- Gold Conservative.
- Forex Conservative.
- Metals Conservative.
- Custom Strategy.
Presets must be editable. The conservative preset should use lower risk settings and stricter trade filters by default.
The dashboard should display account equity, balance, daily profit/loss, remaining daily loss allowance, remaining overall loss allowance, open risk, current positions, selected strategy, and EA trading status.
12. Backtesting and Performance Validation
The developer must conduct and document testing before final delivery.
Required testing:
- Historical backtesting across multiple market conditions.
- Separate tests for gold, silver, Forex, and other supported instrument classes.
- Tests across multiple timeframes.
- Out-of-sample testing on data not used to optimise the strategy.
- Forward testing on an FTMO-compatible demo environment.
- Spread, commission, swap, and slippage sensitivity testing where data permits.
- Tests for high-volatility periods, losing streaks, gaps, and abnormal spreads.
- Verification that the daily loss and maximum loss protection work correctly.
- Verification of position sizing on instruments with different contract specifications.
- Verification that no trades are opened after the configured risk lock is activated.
Please provide reports showing:
- Net return.
- Maximum equity drawdown.
- Maximum daily drawdown.
- Profit factor.
- Win rate.
- Average win and average loss.
- Number of trades.
- Average risk-to-reward ratio.
- Longest losing streak.
- Performance by instrument and strategy.
- Evidence of correct loss-limit enforcement.
The system must not be accepted based solely on a high historical profit. Robustness, realistic execution assumptions, controlled drawdown, and reproducibility are more important.
13. Deliverables
The successful freelancer must provide:
- Complete, compiled MT5 EA (.ex5).
- Complete editable MQL5 source code (.mq5).
- All required custom indicator source files, if any.
- User manual explaining every setting.
- Installation and configuration guide.
- Strategy and risk-management documentation.
- Named parameter presets.
- Backtesting reports and test data/configuration where permitted.
- Demonstration of the EA operating on a demo account.
- Evidence that FTMO loss-limit safeguards have been tested.
- A list of any third-party dependencies and their costs.
- Post-delivery bug fixes for an agreed period.
All source code, documentation, and intellectual property created under this contract must be transferred to me upon completion and payment, subject to the agreed contract terms.
14. Freelancer Qualifications
Applicants must demonstrate:
- Strong MQL5 and MT5 development experience.
- Previous experience building multi-symbol EAs.
- Experience implementing risk engines and equity protection.
- Knowledge of FTMO trading objectives and prohibited practices.
- Experience with position sizing for metals, commodities, and Forex.
- Ability to build reliable backtests and forward-testing procedures.
- Willingness to explain the code and demonstrate the EA.
Please provide examples of previous EA projects, screenshots or reports of relevant tests, and an explanation of how you would implement the risk-management engine.
15. Project Milestones and Payment
I prefer milestone-based payment, with each stage reviewed before the next begins.
Milestone 1 — Specification and architecture: Agree on entry logic, risk controls, account rules, and input-panel layout.
Milestone 2 — Core EA and risk engine: Deliver a testable version with position sizing, protective stops, account protection, and one entry strategy.
Milestone 3 — Strategy modules and multi-asset support: Implement the remaining selected strategies, symbol handling, sessions, filters, and presets.
Milestone 4 — Backtesting and compliance testing: Provide reports and demonstrate the risk protections.
Milestone 5 — Final delivery: Deliver source code, compiled EA, documentation, presets, and installation support.
Please propose your price and estimated completion time for each milestone. No final payment should be released until the agreed acceptance tests have been completed.
16. Acceptance Criteria
The project will be considered complete when:
- The EA compiles without errors.
- All agreed entry strategies operate according to their documented rules.
- Strategy and risk settings can be changed without editing source code.
- Lot sizes are calculated correctly for each supported instrument.
- Daily and overall loss protections pass the agreed tests.
- The EA stops opening trades when any applicable safety lock is activated.
- The EA handles symbol differences, trading hours, and execution errors correctly.
- Backtesting and forward-testing documentation is supplied.
- Complete source code and all agreed deliverables are handed over.
17. Final Objective
I want a professional, modular, and easy-to-use trading EA that helps me trade systematically across Forex, gold, silver, and supported commodities while prioritising capital preservation and compliance with FTMO rules.
I am not looking for a martingale bot or a system promising guaranteed profits. I want a properly engineered EA with transparent entry conditions, selectable strategies, reliable risk management, and measurable performance.
Please submit your proposal with your development approach, relevant experience, estimated price, timeline, and any technical questions you need clarified before starting.