Programmatically Attach Expert Advisors with Custom Inputs to MetaTrader 5 Charts
Info
The Programmatically Attach Expert Advisors with Custom Inputs to MetaTrader 5 Charts is a Expert Advisor for MetaTrader 5 that attachexpert. mqh provides a method to attach an Expert Advisor (EA) to a MetaTrader 5 chart directly from MQL5 code.
Usage
This tool is typically used for automated trading on major forex pairs and gold.
Platform
This Expert Advisor works exclusively on MetaTrader 5 (both build 600+ and newer versions).
Setup
Place the downloaded file in MQL5/Experts folder via File ? Open Data Folder in MetaTrader 5.
How to Install and Use Programmatically Attach Expert Advisors with Custom Inputs to MetaTrader 5 Charts
1. Installation: Open the "File" menu, select "Open Data Folder," navigate to MQL/Experts, paste your file, and restart the terminal.
2. Activation: Drag the EA from the Navigator onto a chart, ensure "Allow live trading" is checked in the Common tab, and verify the AutoTrading button is green.
3. Optimization: Right-click your chart, choose "Expert List," click "Properties" to adjust inputs, and save your preferred setup as a set file for future use.
4. Maintenance: Regularly check the "Experts" tab in the terminal window to monitor trade logs and potential execution errors.
Frequently Asked Questions
Q: Why is my EA not opening trades? A: Check the "AutoTrading" button, ensure "Allow live trading" is enabled, and verify your broker allows automated trading on your account type.
Q: Can I run multiple EAs on one chart? A: No, each chart can only host one active EA; however, you can open multiple charts for different currency pairs to run several EAs.
Q: What does the "smiley face" icon mean? A: A smiley face in the top-right corner of the chart indicates the EA is successfully running; a frowny face means it is disabled.
What this tool does
AttachExpert.
Typical Use Case
This Expert Advisor excels in automated trading and technical analysis on MetaTrader 5.
Compatible Platform & Setup
This Expert Advisor works on MetaTrader 5. Place the file in the MQL5/Experts folder and restart the terminal.
Description & Settings
Related: Random Trading Strategy - another powerful expert for MetaTrader 5 traders.
AttachExpert.mqh provides a method to attach an Expert Advisor (EA) to a MetaTrader 5 chart directly from MQL5 code. This utility allows you to specify EA input parameters and control whether algorithmic trading is enabled for the attached EA. As the standard MQL5 API does not offer a direct function for this purpose, this library creates a template file containing anAlso recommended: RSI Oscillator Moving Average Trading System - similar expert with strong performance on MetaTrader 5.
Usage
#include
long chart = ChartOpen("EURUSD", PERIOD_H1);
CExpertInputs in;
in.SetInt("InpValue", 42);
in.SetDouble("InpRatio", 1.25, 2);
in.SetString("InpText", "hello world");
in.SetBool("InpFlag", true);
AttachExpert(chart, "MyFolder\MyEA", in, true); // MQL5\Experts\MyFolder\MyEA.ex5
EAs attached using this method will utilize default input values for any parameters that are not explicitly set.
The template application process occurs asynchronously. By default, the AttachExpert() function will wait for up to 10 seconds for the EA to become active on the chart, indicated by CHART_EXPERT_NAME. To return control immediately after initiating the attachment, set waitMs to 0. This is useful in scenarios such as when calling from within another Expert Advisor.
Important: Avoid applying the template to the chart of the currently executing Expert Advisor. Doing so may result in the replacement of the calling EA.
The ability for an attached EA to execute trades is also dependent on the state of the "Allow Algo Trading" button in the MetaTrader terminal.
Example
The provided script, AttachExpertExample.mq5, demonstrates how to open a new chart and attach the "Moving Average" example EA (located in Experts\Examples\Moving Average) with specific input parameters. Ensure that AttachExpert.mqh is placed in your MQL5\Include directory and the script is in your MQL5\Scripts directory.
Verification
Testing was conducted by attaching an EA to charts across various timeframes (M15, H1, H4, and D1). The EA successfully reported the received input values (integer, double, string including spaces, and boolean) and its trading allowance status, all of which matched the configured parameters. See picture 1 for details.
You may also like: Trading Tool Assistant - excellent alternative for expert users on MetaTrader 5.
Source Code
#property copyright "RobotFX"
#property version "1.00"
#property script_show_inputs
#include <AttachExpert.mqh>
input string InpSymbol = "";
input ENUM_TIMEFRAMES InpPeriod = PERIOD_H1;
input bool InpTrading = false;
void OnStart()
{
const string symbol = InpSymbol == "" ? _Symbol : InpSymbol;
.......
⚠ Limitations & Risk Warning
- This tool is provided for educational and testing purposes only.
- Past performance does not guarantee future results.
- Trading involves substantial risk of loss. Use on a demo account first.
- Results may vary depending on market conditions, broker, and settings.
- We recommend thorough backtesting and forward testing before using with real funds.