Abdul Manan: ¿Es posible en MT4 eliminar el indicador del gráfico utilizando el EA? Se puede escribir algo de código en la función OnDenit().
Elimina un indicador con un nombre especificado de la ventana del gráfico especificada. El comando se añade a la cola de mensajes del gráfico y se ejecuta sólo después de que se hayan procesado todos los comandos anteriores.
boolChartIndicatorDelete( longchart_id,// id del gráfico intsub_window,// número de la subventana const stringnombre_del_indicador// nombre corto del indicador );
Parámetros
chart_id
[in] ID del gráfico. 0 denota el gráfico actual.
sub_window
[in] Número de la subventana del gráfico. 0 denota la subventana del gráfico principal.
Devuelve true si el comando ha sido añadido a la cola del gráfico, en caso contrario false. Para obtenerlos detalles del error utilice la funciónGetLastError().
Removes an indicator with a specified name from the specified chart window. The command is added to chart message queue and executed only after all previous commands have been processed. If the short name of an indicator is not set explicitly, then the name of the file containing the source code of the indicator will be specified during...
intOnInit()
{
//---// In my code where I launch the indicatorint hWnd=WindowHandle(Symbol(),0);
StartCustomIndicator(hWnd,INDICATOR_NAME);
return(INIT_SUCCEEDED);
}
This code work, but only in OnInit section. If i try transfer it to section CHARTEVENT_OBJECT_CLICK for launch with key, nothing happend. Can you help me ?
Este hilo fue tremendamente útil para mí, pero no me llevó hasta allí - ver este hilo (https://www.forexfactory.com/showthread.php?p=12764287#) que se retoma donde el diálogo aquí lo dejó.
Me gustaría dar las gracias a Georgiy Liashchenko, y me gustaría compartir mi versión actualizada de su código que añadir el indicador directamente en el gráfico conAutomaticallyAcceptDefaults (cuando está en "true").
Espero que ayude a algunas personas que necesitan insertar indicadores desde el experto.
Nota : Funciona para los indicadores personalizados, si no cambia el nombre de las ventanas
Nota2 : No utilizar indicadores con más de 15 caracteres (antes del ".ex4")
Hola tengo esto
No se puede llamar a 'user32.dll::RegisterWindowMessageW', 'user32.dll' no está cargado
Para iniciar sesión y usar el sitio web MQL5.com es necesario permitir el uso de Сookies.
Por favor, active este ajuste en su navegador, de lo contrario, no podrá iniciar sesión.
Ha iniciado sesión. La autenticación de dos factores se ha desactivado. Vuelva a configurarla y escanee un nuevo código QR, o continúe con la autenticación de dos factores desactivada.
Foro sobre trading, sistemas de trading automatizados y prueba de estrategias de trading
MQL4 Añadir indicador al gráfico desde el EA
Alain Verleyen, 2016.02.13 11:39
Hola a todo el mundo
por encima de código funciona en un experto, ¿cómo puedo utilizar de los códigos anteriores en un indicador?
por favor ayuda.
¿Es posible en MT4 eliminar el indicador del gráfico utilizando el EA? Se puede escribir algo de código en la función OnDenit().
Elimina un indicador con un nombre especificado de la ventana del gráfico especificada. El comando se añade a la cola de mensajes del gráfico y se ejecuta sólo después de que se hayan procesado todos los comandos anteriores.
boolChartIndicatorDelete(
longchart_id,// id del gráfico
intsub_window,// número de la subventana
const stringnombre_del_indicador// nombre corto del indicador
);
Parámetros
chart_id
[in] ID del gráfico. 0 denota el gráfico actual.
sub_window
[in] Número de la subventana del gráfico. 0 denota la subventana del gráfico principal.
const nombre_del_indicador
[in] El nombre corto del indicador que se establece en lapropiedad INDICATOR_SHORTNAME con la funciónIndicatorSetString(). Para obtener el nombre corto de un indicador utilice la funciónChartIndicatorName().
Valor de retorno
Devuelve true si el comando ha sido añadido a la cola del gráfico, en caso contrario false. Para obtenerlos detalles del error utilice la funciónGetLastError().
Hola a todos,
Me gustaría dar las gracias a Georgiy Liashchenko, y me gustaría compartir mi versión actualizada de su código que añadir el indicador directamente en el gráfico conAutomaticallyAcceptDefaults (cuando está en "true").
Espero que ayude a algunas personas que necesitan insertar indicadores desde el experto.
Nota : Funciona para los indicadores personalizados, si no cambia el nombre de las ventanas
Nota2 : No utilizar indicadores con más de 15 caracteres (antes del ".ex4")
Hola tengo esto
No se puede llamar a 'user32.dll::RegisterWindowMessageW', 'user32.dll' no está cargado
¿Alguien puede ayudarme?
Yo no tengo este problema (con el código que he puesto).
Comprueba que hWnd es diferente de 0.
También puedes intentar aumentar el valor de sleep a 50 o 100
Estimado Alain ,
Utilicé tu código para añadir un indicador a todos los gráficos abiertos. pero sólo se añade al gráfico en el que ejecuto el EA.
Aquí está el código, ¿puede modificar su código para añadir el mismo indicador a todos los gráficos abiertos?
Por favor, ayuda
Por cierto (lo he probado como EA y también como script, ambos añaden el indicador a un solo gráfico) :)
saludos,
#importar "user32.dll"
int RegisterWindowMessageW(string MessageName);
int PostMessageW(int hwnd,int msg,int wparam,uchar &Name[]);
#importar
#define INDICATOR_NAME "CCI_FILTER6C"
int NOS ;
string suffix="";
string symbol[30];
long chartid[30];
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
int OnStart()
{
NOS=10;
suffix="c";
símbolo[0] = "AUDCAD" + sufijo ;
símbolo[1] = "AUDCHF" + sufijo ;
símbolo[2] = "AUDJPY" + sufijo
símbolo[3] = "AUDNZD" + sufijo;
símbolo[4] = "AUDUSD" + sufijo ;
símbolo[5] = "CADJPY" + sufijo ;
símbolo[6] = "CHFJPY" + sufijo
símbolo[7] = "EURAUD" + sufijo ;
símbolo[8] = "EURCAD" + sufijo ;
símbolo[9] = "EURCHF" + sufijo;
for(int is=0;is<NOS;is++)
{
int hWnd=WindowHandle(símbolo[is],PERIOD_M30);
StartCustomIndicator(hWnd,INDICATOR_NAME);
}
return(0);
}
void StartCustomIndicator(int hWnd,string IndicatorName,bool AutomaticallyAcceptDefaults=true)
{
uchar nombre2[];
StringToCharArray(NombreIndicador,nombre2,0,StringLen(NombreIndicador));
int MessageNumber=RegisterWindowMessageW("MetaTrader4_Internal_Message");
int r=PostMessageW(hWnd,MessageNumber,15,name2);
Sleep(100);
}
Hola, no soy capaz de cargar 2 indicadores desde 1 EA utilizando el mismo código.
buscando esto también - ¿alguien ha descubierto cómo agregar múltiples indicadores de la misma EA?
Quiero añadir 2https://docs.mql4.com/indicators/ima desde el mismo EA
gracias