명시
Hello,
I am looking for an experienced MQL5 developer to develop a custom Expert Advisor (EA) for MetaTrader 5, specifically designed to trade Oil (WTI/Brent) under strict risk management rules required by Prop Firms.
The official name of the project and the EA file must be:
EL VASCO OIL
The EA must be professionally developed, properly commented, tested and delivered with both the complete .mq5 source code and compiled .ex5 file.
The EA must expose the following input variables in MT5:
//+------------------------------------------------------------------+
//| El Vasco OIL.mq5 |
//| Copyright 2026, CARLOS GASTON LAVAYEN |
//+------------------------------------------------------------------+
#property copyright "Carlos Gaston Lavayen"
#property version "1.00"
#property description "Professional Expert Advisor for Funded Accounts"
#property description "Strategy: Range Breakout"
//+------------------------------------------------------------------+
//| GENERAL CONFIGURATION |
//+------------------------------------------------------------------+
input string Inp_MagicGroup = "--- GENERAL CONFIGURATION ---";
input int Inp_MagicNumber = 88250;
input string Inp_TradeComment = "Oil_Breakout_Prop";
//+------------------------------------------------------------------+
//| RISK MANAGEMENT |
//+------------------------------------------------------------------+
input string Inp_RiskGroup = "--- RISK MANAGEMENT (PROP FIRM) ---";
input double Inp_RiskPercent = 0.5;
// Risk percentage per trade
input double Inp_MaxDailyLoss = 4.0;
// Maximum allowed daily drawdown %
input int Inp_StopLossPoints = 300;
// Fixed Stop Loss in points
input int Inp_TakeProfitPoints = 600;
// Fixed Take Profit in points
input bool Inp_UseBreakeven = true;
// Enable automatic Breakeven
input int Inp_BreakevenTrigger = 300;
// Profit in points required to activate Breakeven
input int Inp_MaxSpreadAllowed = 40;
// Maximum allowed spread in points
//+------------------------------------------------------------------+
//| BREAKOUT CONFIGURATION |
//+------------------------------------------------------------------+
input string Inp_BreakoutGroup = "--- BREAKOUT CONFIGURATION ---";
input int Inp_BreakoutBufferPoints = 10;
// Distance above/below Asian High/Low for pending orders
//+------------------------------------------------------------------+
//| TIME AND SESSION CONFIGURATION |
//+------------------------------------------------------------------+
input string Inp_TimeGroup = "--- TIME CONFIGURATION ---";
input string Inp_AsiaStart = "01:00";
input string Inp_AsiaEnd = "07:00";
input string Inp_ExecutionStart = "08:00";
input string Inp_ExecutionEnd = "16:00";
input bool Inp_FridayClose = true;
input string Inp_FridayCloseTime = "15:30";
// All times must use Broker/Server Time.
//+------------------------------------------------------------------+
//| NEWS FILTER |
//+------------------------------------------------------------------+
input string Inp_NewsGroup = "--- NEWS FILTER (EIA / USD) ---";
input bool Inp_AvoidNews = true;
input int Inp_MinutesBefore = 30;
input int Inp_MinutesAfter = 30;
Asian Range Calculation
The EA must calculate the highest High and lowest Low of the trading symbol between:
- Inp_AsiaStart
- Inp_AsiaEnd
All calculations must use Broker/Server Time.
The resulting values must be displayed on the graphical dashboard.
Breakout Pending Orders
At Inp_ExecutionStart , the EA must place:
Buy Stop
The Buy Stop must be placed:
Asian Session High + Inp_BreakoutBufferPoints
Sell Stop
The Sell Stop must be placed:
Asian Session Low - Inp_BreakoutBufferPoints
The breakout buffer must be configurable through:
Inp_BreakoutBufferPoints
The EA must automatically calculate the correct price according to the symbol's digits and point size.
3. OCO LOGIC
The EA must use an OCO (One Cancels the Other) system.
If the Buy Stop is triggered:
- The Sell Stop must be immediately cancelled.
If the Sell Stop is triggered:
- The Buy Stop must be immediately cancelled.
If neither order is triggered before Inp_ExecutionEnd :
- Delete the Buy Stop.
- Delete the Sell Stop.
- Do not place new breakout orders for that trading day.
The EA must never create duplicate pending orders.
4. AUTOMATIC LOT SIZE CALCULATION
The lot size must be calculated dynamically based on:
- Current account balance.
- Inp_RiskPercent .
- Stop Loss distance.
- Symbol tick value.
- Symbol tick size.
- Symbol contract specifications.
- Minimum lot.
- Maximum lot.
- Lot step.
The EA must calculate the correct position size according to the actual monetary risk.
The calculated lot size must never exceed the broker's allowed limits.
The final calculated lot size must be normalized according to the symbol's minimum, maximum and lot-step requirements.
5. DAILY DRAWDOWN / PROP FIRM PROTECTION
This is a critical requirement.
The EA must continuously monitor the account's daily drawdown.
The daily loss calculation must include:
- Realized losses from trades closed during the current trading day.
- Floating losses from currently open positions.
The daily drawdown must be calculated using the account's equity and the defined daily loss limit.
The reference point for the daily calculation must be established at the beginning of each Broker/Server trading day.
If the account equity reaches or falls below the maximum permitted daily drawdown level defined by:
Inp_MaxDailyLoss
the EA must immediately:
- Close all open positions managed by this EA.
- Delete all pending orders managed by this EA.
- Stop opening any new trades.
- Stop placing new pending orders.
- Display DAILY LOSS LIMIT REACHED on the dashboard.
- Remain disabled until the beginning of the next Broker/Server trading day.
The EA must not reset the daily drawdown calculation because of:
- EA restart.
- MT5 restart.
- Chart refresh.
- Internet reconnection.
- Manual order activity.
The EA must correctly preserve and recalculate the daily protection state after being restarted.
6. SPREAD FILTER
The EA must not place or trigger new trading activity when the current spread exceeds:
Inp_MaxSpreadAllowed
The current spread must be displayed in the dashboard.
If the spread is above the configured maximum, the dashboard must clearly indicate:
SPREAD TOO HIGH
7. BREAKEVEN
If:
Inp_UseBreakeven = true
the EA must automatically move the Stop Loss to Breakeven once the position reaches:
Inp_BreakevenTrigger
positive points.
The Breakeven status must be displayed on the dashboard.
8. FRIDAY FORCED CLOSE
If:
Inp_FridayClose = true
the EA must close all open positions managed by this EA at:
Inp_FridayCloseTime
using Broker/Server Time.
It must also delete any remaining pending orders.
The purpose is to prevent exposure to weekend gaps.
9. NEWS FILTER
The EA must include a high-impact news filter.
The filter should use the MT5 Economic Calendar whenever available.
It should identify high-impact USD events, with particular attention to:
- EIA oil inventory releases.
- Major USD economic events.
- Other high-impact USD events relevant to oil trading.
If:
Inp_AvoidNews = true
the EA must pause trading during the configured protection window.
Before a high-impact event:
Inp_MinutesBefore
the EA must stop opening new trades and must cancel existing pending breakout orders.
After the event:
Inp_MinutesAfter
the EA may resume normal operation.
The dashboard must display:
- News Filter ON/OFF.
- News protection status.
- Next relevant high-impact event, when available.
- Minutes before/after news.
If MT5 Economic Calendar data is unavailable, the EA must fail safely and clearly indicate the news-filter status on the dashboard rather than silently assuming that no news exists.
10. DAILY SESSION / DUPLICATE ORDER PROTECTION
The EA must place breakout pending orders only once per trading day/session.
It must never duplicate orders because of:
- MT5 restart.
- EA restart.
- Chart refresh.
- Reconnection.
- EA reinitialization.
The EA must use the configured Magic Number to identify and manage its own positions and pending orders.
The EA must not interfere with trades belonging to other EAs or manually opened trades unless explicitly configured to do so.
11. EA RESTART / RECOVERY
If MT5 or the EA is restarted while there are active positions or pending orders belonging to this EA, the EA must correctly detect and continue managing them.
The EA must not create duplicate pending orders after a restart.
The EA must recover the correct trading state using:
- Magic Number.
- Symbol.
- Existing positions.
- Existing pending orders.
- Current trading day/session.
12. PROFESSIONAL TRADING DASHBOARD
The EA must have a professional graphical dashboard displayed directly on the MT5 chart whenever the EA is running.
The dashboard should have a modern Prop Firm / Professional Trading appearance.
Preferred design:
- Dark/black background.
- Gold accents.
- White text.
- Green for active/positive conditions.
- Red for danger or disabled trading.
- Yellow/orange for warnings.
- Clean typography.
- Professional spacing.
- Clearly separated sections.
- Modern commercial EA appearance.
The dashboard must not look like a basic default MQL5 interface.
13. EL VASCO OIL LOGO
I will provide my custom EL VASCO OIL logo.
The logo must be displayed prominently at the top of the dashboard.
Please integrate the logo directly into the EA as an MQL5 resource.
The EA must not depend on:
- External image files.
- Specific Windows folders.
- External file paths.
The logo must therefore be included in the .mq5 source and compiled into the final .ex5 .
Please preserve the original proportions and visual quality of the logo.
14. DASHBOARD INFORMATION
The dashboard should display the following information:
EA STATUS
- RUNNING / ACTIVE
- PAUSED
- NEWS FILTER
- DAILY LOSS LIMIT REACHED
- SPREAD TOO HIGH
ACCOUNT INFORMATION
- Balance
- Equity
- Today's P/L
- Today's P/L %
- Current Drawdown %
- Maximum Daily Loss %
RISK MANAGEMENT
- Risk per Trade %
- Calculated Lot Size
- Stop Loss
- Take Profit
- Risk/Reward Ratio
- Breakeven Status
MARKET INFORMATION
- Symbol
- Current Price
- Spread
- Current Session
- Trading Hours Status
BREAKOUT INFORMATION
- Asian Session High
- Asian Session Low
- Buy Stop Price
- Sell Stop Price
- Breakout Buffer
- Pending Order Status
NEWS FILTER
- News Filter ON/OFF
- News Protection Status
- Next High-Impact News, if available
- Minutes Before News
- Minutes After News
TRADING STATUS
- Buy Stop: WAITING / ACTIVE / TRIGGERED / CANCELLED
- Sell Stop: WAITING / ACTIVE / TRIGGERED / CANCELLED
- OCO Status
15. DASHBOARD FUNCTIONALITY
The dashboard must update dynamically in real time.
It should preferably be:
- Movable on the chart.
- Scalable/resizable.
- Compatible with different MT5 chart sizes.
- Properly aligned when the chart is resized.
- Persistent while the EA is running.
The dashboard must be purely informational and must not interfere with the EA's trading logic.
If the daily loss limit is reached, the dashboard must clearly display:
⛔ DAILY LOSS LIMIT REACHED
and indicate that trading has been disabled until the next trading day.
16. EXAMPLE DASHBOARD
Example:
EL VASCO OIL
🟢 EA ACTIVE
Balance: $100,000
Equity: $99,750
Today's P/L: -$250 (-0.25%)
Daily Loss Limit: 4.00%
Risk/Trade: 0.50%
Lot Size: 2.50
Spread: 18 points
Asian High: 79.850
Asian Low: 79.420
Buy Stop: 79.880
Sell Stop: 79.390
News Filter: ON
Session: London
OCO: ACTIVE
17. TIME CONFIGURATION
All trading session times, execution times and Friday closing times must use Broker/Server Time.
The EA must not assume that the broker uses EST, UTC or any other fixed timezone.
The dashboard should clearly indicate that the configured times are based on Broker/Server Time.
18. SAFETY AND ERROR HANDLING
The EA must handle trading errors correctly and safely.
The developer should implement appropriate checks for:
- Invalid lot size.
- Invalid stops.
- Insufficient margin.
- Maximum spread.
- Market closed.
- Trading disabled.
- Broker restrictions.
- Minimum stop distance.
- Symbol trading specifications.
- Failed order placement.
- Failed order cancellation.
- Failed position closure.
The EA should not repeatedly send failed orders in an uncontrolled loop.
Important trading events and errors should be recorded in the MT5 Experts/Journal log with clear messages.
19. TESTING REQUIREMENTS
Before final delivery, the EA must be tested using the MT5 Strategy Tester.
The developer must verify at minimum:
- Correct Asian range calculation.
- Correct Buy Stop placement.
- Correct Sell Stop placement.
- Correct OCO cancellation.
- Correct lot size calculation.
- Correct daily drawdown protection.
- Correct pending-order cancellation.
- Correct spread filter.
- Correct Breakeven.
- Correct Friday close.
- Correct news filter behavior.
- Correct EA recovery after restart.
- No duplicate orders.
- Correct dashboard updates.
- Correct logo display.
- Correct compilation.
The final .mq5 file must compile with:
0 Errors / 0 Warnings
20. FINAL DELIVERY REQUIREMENTS
The developer must provide:
1. Complete MQL5 source code
.mq5
The source code must be properly commented and fully editable.
2. Compiled EA
.ex5
Compiled successfully with:
0 Errors / 0 Warnings
3. Working graphical dashboard
The final EA must include the complete EL VASCO OIL dashboard and logo.
4. Testing evidence
Before final delivery, please provide screenshots or a short video showing the EA running on an MT5 chart with:
- Complete dashboard visible.
- EL VASCO OIL logo visible.
- Breakout levels.
- Pending orders.
- EA status.
- Risk management information.
5. Technical documentation
Please provide a short explanation of:
- How the daily drawdown calculation works.
- How the lot size is calculated.
- How the news filter works.
- How the EA handles restarts.
- How the trading sessions are calculated.
- How to install and configure the EA.
21. IMPORTANT DEVELOPMENT REQUIREMENT
The EA must be developed specifically for MT5/MQL5.
The code must be clean, structured, maintainable and properly commented.
The developer must not replace or simplify any of the critical risk-management requirements without discussing it with me first.
If there are any technical limitations or ambiguities in the specifications, please identify them before starting development.
22. BUDGET AND DEADLINE
Budget: $500–$700 USD
Preferred target budget: $600 USD
Estimated delivery time: 30 days
The deadline includes:
- Development.
- Testing.
- Debugging.
- Corrections.
- Dashboard implementation.
- Final compilation.
- Final delivery of .mq5 and .ex5 .
If the EA is completed and fully tested before the deadline, early delivery is welcome.
23. DEVELOPER QUESTIONS
When submitting your proposal, please provide:
- Your total price.
- Estimated delivery time.
- Your experience developing MQL5 Expert Advisors.
- Examples of previous EAs you have developed, especially for Prop Firms.
- Whether you have experience implementing daily drawdown/equity protection.
- Whether you have experience with MT5 Economic Calendar/news filters.
- Whether you have experience creating custom graphical dashboards in MQL5.
- Any technical questions or concerns regarding this specification.
Please do not start development until any technical questions have been discussed and agreed upon.
Before final delivery, please provide a screenshot or short video showing the complete EL VASCO OIL EA running on an MT5 chart with the dashboard visible.
Thank you very much.