Spécifications
Job Description: We are seeking an experienced MQL4 developer to create an Expert Advisor (EA) from scratch that can copy trading signals from a Telegram channel to MetaTrader 4 (MT4). The EA should be capable of executing market and pending orders based on Telegram signals while adhering to a specific set of trading rules and strategies. The developer should work on building a complete solution, including server-side integration, to ensure seamless execution.
Project Overview
The EA must connect to a specified Telegram channel or group, extract trading signals in a specific format, and execute them automatically in MT4. The signals may contain instructions for market orders, pending orders, and updates like stop loss (SL), take profit (TP), and breakeven levels. The EA should have well-organized components to manage the logic for receiving, interpreting, and executing trades.
Requirements
-
Telegram Signal Parsing and Integration:
-
Connect to the Telegram bot using the bot API token.
-
Extract trading signals from messages posted in a specific format. The signal formats can include:
Example 1: 💵GOLD SELL @ 2761, 💵SECOND SELL LIMIT @ 2767, SL @ 2773, TP @ 2751, 🛡FOLLOW MONEY MANAGEMENT.
Example 2: 💵GOLD BUY @ 2750, 💵SECOND BUY LIMIT @ 2744, SL @ 2738, TP @ 2760, 🛡FOLLOW MONEY MANAGEMENT.
-
Ensure the EA is capable of parsing signals with emojis or additional text instructions.
-
-
Order Execution Rules:
-
Market Execution: Execute "Buy Now" or "Sell Now" signals at market price.
-
Pending Limit Orders: Place a second trade as a limit order based on instructions, such as "SECOND BUY LIMIT @ xxx".
-
Manage TP and SL: Set individual take profit (TP) and stop loss (SL) levels for both trades.
-
Manage Triggered Orders:
-
If both the first market order and the pending limit order are triggered, move the SL of the first order to breakeven.
-
If the market order moves 30-40 pips in profit, cancel the pending limit order if it has not been triggered.
-
-
-
Update Trades Based on New Information:
-
If there is a signal update (e.g., "BOOK PARTIAL PROFIT" or "BOOK FULL PROFIT"), execute the required modification in the existing trade by closing a portion or all of it.
-
Move SL to breakeven as instructed.
-
-
Money Management Features:
-
Provide an option to use fixed lot sizes or calculate lot sizes based on percentage risk.
-
Implement risk management settings to follow recommended money management strategies.
-
Avoid high-risk practices or deviating from safe trading guidelines.
-
-
Communication and Server Setup:
-
Develop a reliable solution to connect MetaTrader 4 to Telegram. This could involve using a server-side script to forward signals to MT4.
-
The EA should use WebRequest() for communication or implement an efficient polling mechanism if needed.
-
Use a local or remote server to facilitate seamless and secure data flow.
-
-
Error Handling and Logging:
-
Implement logging for received messages, trade execution, errors, etc., to facilitate troubleshooting.
-
Ensure robust error handling for WebRequests, order placement, or unexpected input.
-
-
Testing and Debugging:
-
Developer must thoroughly test the EA with different signal formats to ensure proper operation.
-
Debug any issues related to message parsing, trading logic, or connectivity.
-
Additional Requirements
-
Code Quality: The code must be well-structured, commented, and easy to maintain or update.
-
Compatibility: The EA must be compatible with MetaTrader 4 (MT4).
-
Documentation: Provide clear documentation on how to set up and configure the EA, including how to link it to the Telegram bot and customize trading settings.
Skills Required
-
Strong expertise in MQL4 and MT4 EA development.
-
Experience in integrating external APIs with MQL4, particularly Telegram.
-
Ability to write clean, maintainable, and efficient code.
-
Understanding of trading and financial markets.
Deliverables
-
Fully functional EA capable of executing signals from Telegram.
-
Source code with comments explaining the functionality.
-
Setup guide and documentation.
-
Support for initial testing and debugging.