Remove an EA through MQL4 code

 

Hi:

Does anybody know if there is a way to remove an active EA/INDICATOR programmatically(using MQL4 code), rather than manually(going to the EA/INDICATOR properties and removing it)?

Any responses will be appreciated

 

Not in Mql4 afaik.

Mql5 has this functionality built in.

 
Woop 0.o bloody nice.
 

Sorry for late response. Didnt think anybody would answer it intelligently. Thank you VERY MUCH .. Havent tried it but will soon.

BTW... read your post on the link... I agree with you. Although I am a firm believer in "The only stupid question is the one you dont ask", as all rules go,"Every Rule has an exception,EXCEPT THIS ONE"

Thanks again

WHEN ALL ELSE FAILS, READ THE INSTRUCTIONS...

 

Hi I have not seen any real answer to this question, now 2 years old. So I propose the solution in code form. Easy really when you know how.!

PS If you really like this code (only mt4 coding necessary) maybe you will put a couple of likes somewhere.

//+------------------------------------------------------------------+
//|                                                 test.mq4         |
//| OPERATION:-                                                      |
//|  test  drop EA from chart                                        |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"
#property show_inputs
#property stacksize 1024
#define MT4_WMCMD_REMOVE_EXPERT   33050 /* Remove expert advisor from chart */
#define MT4_WMCMD_EXPERT_INPUTS   33048 /* Open expert Inputs dialog */
#include <stderror.mqh>
#include <stdlib.mqh>
#include <WinUser32.mqh> // required for MessageBox()
// --- user32.dll is required for MessageBoxA and PostMessageA
#import "user32.dll"
   int    MessageBoxA(int hWnd, string lpText, string lpCaption, int uType);
#import
//  MessageBoxA Parameters:
//  hWnd      -   Windowshandle() Chart symbol
//  lpText    -   Optional text that contains the message to be displayed. or NULL 
//  lpCaption -   Optional text to be displayed in the header of the dialog box. If NULL displays the expert name. 
//  uType     -   Optional flags that determine the type of buttons displayed as per flags in MessageBox().
//                eg. MB_OK MB_OKCANCEL MB_YESNO
//  return codes - As MessageBox() eg IDOK IDCANCEL IDABORT IDYES IDCONTINUE says these buttons were selected                  
//  PostMessageA Parameters:
//               PostMessageA(hWnd, WM_COMMAND, mydefine, 0);
//  hWnd      -   Windowshandle() Chart symbol
//  WM_COMMAND-   Windows Command instruction
//  mydefine  -   Any #define integer from aswincmds.mqh  
//---- input parameters . WinUser32 above is required for messagebox

// messageboxA and PostMessageA variables
int            hWnd, uType, mydefine;
string         lpText, lpCaption; 

//+------------------------------------------------------------------+
//| program start function                                    |
//+------------------------------------------------------------------+
int start()
  {
  
  Print("Trying to drop expert from chart");
  // string name=WindowExpertName(); 
  // GlobalVariablesDeleteAll(name);
// remove the comment slashes above if you really want to delete Globals
  hWnd=WindowHandle(Symbol(),0);                                               
  lpText="Your subscription has expired, so I will now remove the Expert from the Chart";
  lpCaption="Subscription Expired "+WindowExpertName();
  uType=MB_OK;
  mydefine=MT4_WMCMD_REMOVE_EXPERT;
  MessageBoxA(hWnd,lpText,lpCaption,uType); // display removing Expert message with only "OK" button
  PostMessageA(hWnd, WM_COMMAND, mydefine, 0); // drop from chart
  
 
  
  } // end start
  
 
royclark: I have not seen any real answer to this question, now 2 years old.
Why did you dig up a two year old post that already had the links to How do I close an Expert programmatically? - MQL4 forum https://www.mql5.com/en/forum/120736 and #define's for known commands that can be used for PostMessageA() - MQL4 forum and post exactly the same thing?
Reason: