Şartname
I need a fully automated custom Expert Advisor for MetaTrader 5 (MQL5).
The EA is intended for use on a The5ers $100,000 2-Step prop-firm account.
IMPORTANT DELIVERY REQUIREMENT:
I must receive the complete editable .mq5 source code as well as the compiled .ex5 file. Compiled-only delivery is NOT acceptable.
The EA must be coded specifically for this project and must not copy trades, use external trading signals or depend on another person's trading account.
━━━━━━━━━━━━━━━━━━
PLATFORM
━━━━━━━━━━━━━━━━━━
Platform: MetaTrader 5
Language: MQL5
Account type: Hedge
Primary market: Forex
Initial symbols:
EURUSD
USDJPY
Timeframe:
H1
The symbols and timeframe must be configurable through EA inputs.
━━━━━━━━━━━━━━━━━━
2. TRADING STRATEGY
━━━━━━━━━━━━━━━━━━
Use a simple trend-following breakout strategy.
BUY CONDITIONS:
Use only fully closed H1 candles.
EMA 200 must indicate bullish conditions:
closing price of the signal candle > EMA 200.The signal candle must close ABOVE the highest high of the previous 20 completed candles.
There must be no existing open position from this EA.
Spread must be below the configurable maximum spread.
No high-impact news restriction may be active.
Risk-management limits must allow a new trade.
If all conditions are true, open a BUY at the beginning of the next available candle.
SELL CONDITIONS:
Use only fully closed H1 candles.
Closing price of the signal candle must be BELOW EMA 200.
The signal candle must close BELOW the lowest low of the previous 20 completed candles.
There must be no existing open position from this EA.
Spread must be below the configurable maximum spread.
No high-impact news restriction may be active.
Risk-management limits must allow a new trade.
If all conditions are true, open a SELL at the beginning of the next available candle.
The breakout period and EMA period must be configurable inputs.
Default:
Breakout period = 20
EMA period = 200
━━━━━━━━━━━━━━━━━━
3. STOP LOSS AND TAKE PROFIT
━━━━━━━━━━━━━━━━━━
Use ATR(14).
Default Stop Loss:
2.0 × ATR(14)
Take Profit:
2 × initial risk.
Example:
If the stop loss represents 100 points of risk, the take profit is 200 points.
Risk/Reward:
1:2
ATR multiplier and Risk/Reward must both be configurable.
Every live position MUST have a real visible Stop Loss placed with the broker.
NO hidden or stealth Stop Loss.
━━━━━━━━━━━━━━━━━━
4. POSITION SIZE
━━━━━━━━━━━━━━━━━━
Position size must be calculated automatically according to the distance between entry price and Stop Loss.
Default risk:
0.25% of current account balance per trade.
Risk percentage must be configurable.
Lot calculation must respect:
symbol tick size
tick value
minimum lot
maximum lot
lot step
The EA may never increase risk after a losing trade.
━━━━━━━━━━━━━━━━━━
5. STRICT RISK MANAGEMENT
━━━━━━━━━━━━━━━━━━
The EA must contain an independent account protection module.
Default maximum risk per trade:
0.25%
Maximum simultaneous trades:
1 across all symbols controlled by this EA.
DAILY PROTECTION:
At the beginning of every trading day, store the account balance and equity reference.
If the combined realised and floating P/L for that trading day reaches -1.0%, the EA must:
Close any position opened by the EA.
Cancel pending orders created by the EA.
Block all new trades until the next trading day.
The -1.0% limit must be configurable.
TOTAL DRAWDOWN PROTECTION:
Store the initial account balance when the EA is first activated.
If account equity falls 4.0% below that initial reference, the EA must:
Close all positions created by the EA.
Cancel its pending orders.
Disable new trading.
Require manual reactivation.
The 4.0% level must be configurable.
The risk protection must take priority over trading signals.
━━━━━━━━━━━━━━━━━━
6. PROFIT PROTECTION
━━━━━━━━━━━━━━━━━━
Add an optional configurable daily profit target.
Default:
+0.75% per day.
When reached:
do not open additional positions until the next trading day.
Allow this feature to be enabled or disabled.
Also provide a separate “Funded Mode”.
In Funded Mode:
Default daily profit target = +0.50%.
This is intended to reduce large single-day profit concentration.
━━━━━━━━━━━━━━━━━━
7. NEWS FILTER
━━━━━━━━━━━━━━━━━━
Use the MetaTrader 5 Economic Calendar where technically possible.
No new trades around HIGH IMPACT economic news affecting either currency of the trading pair.
Default restriction:
5 minutes BEFORE high-impact news.
5 minutes AFTER high-impact news.
Both periods must be configurable.
Example:
EURUSD:
Block high-impact EUR and USD news.
USDJPY:
Block high-impact USD and JPY news.
Existing positions may remain open unless a risk-management limit requires them to close.
The filter must never deliberately trade news spikes.
━━━━━━━━━━━━━━━━━━
8. TRADING HOURS
━━━━━━━━━━━━━━━━━━
Add configurable trading hours.
Default:
Monday-Friday.
07:00 UTC – 17:00 UTC.
No new trades outside the allowed session.
Use UTC/GMT logic rather than depending blindly on broker server time.
No new trades on Friday after 16:00 UTC by default.
All times must be configurable.
━━━━━━━━━━━━━━━━━━
9. SPREAD PROTECTION
━━━━━━━━━━━━━━━━━━
The EA must check spread before entering.
Maximum spread must be configurable separately for each symbol.
If spread exceeds the configured maximum:
Do not enter.
Do not continuously retry an entry after the original signal is no longer valid.
━━━━━━━━━━━━━━━━━━
10. TRADE MANAGEMENT
━━━━━━━━━━━━━━━━━━
Include configurable options for:
Break-even
Trailing Stop
Default:
Break-even = OFF
Trailing Stop = OFF
They must be available for later testing and optimization.
The original strategy must work without either feature.
━━━━━━━━━━━━━━━━━━
11. FORBIDDEN METHODS
━━━━━━━━━━━━━━━━━━
The EA must NOT use:
Martingale
Grid trading
Lot multiplication after losses
High-frequency trading
Tick scalping
Latency arbitrage
Reverse arbitrage
Hedge arbitrage
Trade copying
External signal copying
Account mirroring
Emulators
Hidden Stop Loss
DLL dependency
Remote signal server
Developer-controlled remote kill switch
Monthly subscription dependency
Expiration date
Account-locked licence after final delivery
The EA must continue functioning independently after final delivery.
━━━━━━━━━━━━━━━━━━
12. DASHBOARD
━━━━━━━━━━━━━━━━━━
Create a simple on-chart dashboard showing:
EA status
Symbol
Current balance
Current equity
Today's realised P/L
Today's floating P/L
Daily drawdown %
Total drawdown %
Current risk per trade
Current spread
Current ATR
News filter status
Trading session status
Number of EA positions
Funded Mode ON/OFF
Buttons:
CLOSE EA TRADES
DISABLE EA
ENABLE EA
The CLOSE button must affect only trades belonging to this EA, identified by Magic Number.
━━━━━━━━━━━━━━━━━━
13. MAGIC NUMBER
━━━━━━━━━━━━━━━━━━
Use a configurable Magic Number.
The EA must recognise and manage only its own positions unless explicitly configured otherwise.
It must not accidentally close or modify unrelated manual trades.
━━━━━━━━━━━━━━━━━━
14. RESTART / VPS SAFETY
━━━━━━━━━━━━━━━━━━
The EA must recover correctly after:
MetaTrader restart
VPS restart
Temporary internet loss
Broker connection loss
Important risk-management information must not simply reset after restarting MT5.
Daily and total drawdown protection must continue to work correctly after a restart.
━━━━━━━━━━━━━━━━━━
15. BACKTESTING
━━━━━━━━━━━━━━━━━━
Before final acceptance, provide Strategy Tester results using MT5 “Every tick based on real ticks” where data is available.
Test both:
EURUSD H1
USDJPY H1
Testing period:
At least 2020 through the latest available data.
Include realistic:
spread
commission
execution assumptions
Provide results showing:
Net profit
Number of trades
Win rate
Profit factor
Expected payoff
Maximum balance drawdown
Maximum equity drawdown
Average trade duration
Year-by-year results
DO NOT optimize only to produce the best historical result.
Parameters must also be tested on data that was not used for optimization.
Clearly separate:
IN-SAMPLE testing
and
OUT-OF-SAMPLE testing.
No guarantee of profitability is expected or accepted.
━━━━━━━━━━━━━━━━━━
16. PROP-FIRM RISK TEST
━━━━━━━━━━━━━━━━━━
The developer must specifically test that:
Risk calculation works.
Daily stop works.
Total drawdown stop works.
Only one position can be active.
EA stops opening trades after limits are reached.
Restarting MT5 does not reset protection incorrectly.
A real Stop Loss is attached to every trade.
News restriction works as specified.
━━━━━━━━━━━━━━━━━━
17. CONFIGURATION
━━━━━━━━━━━━━━━━━━
All important settings must be available through MT5 inputs.
Provide at least two .set files:
Conservative Evaluation Mode
Funded Mode
━━━━━━━━━━━━━━━━━━
18. SOURCE CODE OWNERSHIP
━━━━━━━━━━━━━━━━━━
Final delivery must include:
Complete .mq5 source code
Compiled .ex5
Any include files required to compile the project
.set configuration files
Installation instructions
The source code must compile without errors.
I must be able to modify and compile the EA myself after delivery.
No part of the EA may rely on source code that the developer refuses to provide unless it is a standard built-in MetaTrader/MQL5 component.
━━━━━━━━━━━━━━━━━━
19. BUG-FIX WARRANTY
━━━━━━━━━━━━━━━━━━
Include 30 days of free bug fixes after final acceptance.
A bug means behaviour that does not comply with this agreed Requirements Specification.
New functionality or strategy changes are not part of the free bug-fix period.
━━━━━━━━━━━━━━━━━━
20. ACCEPTANCE
━━━━━━━━━━━━━━━━━━
I will test the EA on my own MetaTrader 5 demo environment before final acceptance.
The project is accepted only when:
source code is delivered
source code compiles correctly
EA installs and runs correctly
risk controls work correctly
trading rules match this Requirements Specification
required files are delivered
Please include in your application:
Your total fixed price.
Delivery time.
Number of completed MQL5 Expert Advisor projects.
Whether the complete .mq5 source code is included.
Confirmation of the 30-day bug-fix period.
Confirmation that no DLL, subscription, remote licence or external signal service is required.