![MQL5 - Lenguaje de estrategias comerciales para el terminal de cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
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