MQL4 Ajouter un indicateur au graphique depuis l'EA - page 6

 

Alain Verleyen:

#import "user32.dll"
int RegisterWindowMessageW(string MessageName);
int PostMessageW(int hwnd,int msg,int wparam,uchar &Name[]);
#import

#define  INDICATOR_NAME "Indicator_name"
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void StartCustomIndicator(int hWnd,string IndicatorName,bool AutomaticallyAcceptDefaults=false)
  {
   uchar name2[];
   StringToCharArray(IndicatorName,name2,0,StringLen(IndicatorName));

   int MessageNumber=RegisterWindowMessageW("MetaTrader4_Internal_Message");
   int r=PostMessageW(hWnd,MessageNumber,15,name2);
   Sleep(10);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
// In my code where I launch the indicator
   int hWnd=WindowHandle(Symbol(),0);
   StartCustomIndicator(hWnd,INDICATOR_NAME);

   return(INIT_SUCCEEDED);
  }


Bonjour


J'essaie d'utiliser ce code dans un SCRIPT, mais parfois mon metatrader se ferme brutalement.


Savez-vous quel est le problème ?

 

Chart.mqh est assez évident........


//+------------------------------------------------------------------+
//|                                                       Chart.mqh  |
//|                   Copyright 2009-2016, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#include <Object.mqh>
//---
#ifdef __MQL4__
bool ChartIndicatorAdd(long chart_id,int subwin,int handle) { return(false); }
#endif
 
Alain Verleyen ajouter du code pour simuler la frappe des touches, comme vous le faites manuellement.

Cela ne fonctionne pas. J'ai besoin d'exécuter le code d'ajout d'indicateur à partir d'un indicateur. J'ai essayé de nombreuses solutions, mais je n'obtiens aucun résultat. L'indicateur que je veux ajouter est ajouté, mais la fenêtre de configuration de l'indicateur reste affichée et attend une confirmation manuelle.
Je fais cela dans MT4 Build 1353.

Pour être clair, ces codes fonctionnent bien à partir d'un script, et l'émulation du clavier fonctionne aussi à partir d'un script.
Pas de chance depuis un indicateur...
 
Nicolas Baptista indicateurs personnalisés, sinon changez le nom de la fenêtre.

Note2 : N'utilisez pas d'indicateurs avec plus de 15 caractères (avant le ".ex4").

Superbe
Raison: