[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. No puedo ir a ningún sitio sin ti - 4. - página 457

 
vasili:
Estimados expertos, por favor, ayúdenme.
No puedo hacer frente a un problema de guardado automático de la plantilla.
No inserta un nombre de archivo en la ventana de guardado.
Aquí está el código.

Biblioteca con funciones de control de MT4 listas para usar.

//===========================================================================================
// 4.4. Funciones para configurar la plantilla del gráfico.
//===========================================================================================
// 4.4.1 La función establece la plantilla especificada en el gráfico especificado por su nombre en la lista de plantillas.
void ServiceSetTemplateByName(int hwndChart, // Descriptor del sistema de la ventana del gráfico, donde se carga la plantilla.
string sNameTemplate); // Nombre de la plantilla en la lista de plantillas.
//===========================================================================================
// 4.4.2 La función establece la plantilla especificada en el gráfico especificado por su número en la lista de plantillas. Si tiene éxito, la función devuelve TRUE, en caso contrario devuelve FALSE.
bool ServiceSetTemplateByNumber(int hwndChart, // Descriptor del sistema de la ventana del gráfico, donde se carga la plantilla.
int nTemplate); // Número de plantilla en la lista de plantillas. Las plantillas se ordenan en la lista por nombre. El número de plantillas está limitado a 64.

Lo he probado recientemente. Funciona.

 
7777877:
Haga clic con el botón derecho del ratón en la cara sonriente (en la esquina superior derecha de la ventana del terminal cliente) -> Asesores -> Eliminar

Y cómo hacerlo de forma programada, con la ayuda del código. ¿El Asesor Experto cumplió su función y bajó?
 
Elektronik:

¿Cómo se hace esto de forma programada, con la ayuda de código? ¿El Asesor Experto realizó su función y luego se cayó?
https://www.mql5.com/ru/forum/110207
PostMessageA(WindowHandle(Symbol(),Period()), WM_COMMAND, 33050, 0);
 
Elektronik:

Y cómo hacerlo de forma programada, utilizando el código. ¿El Asesor Experto ejecuta su función y luego se apaga?

La misma librería con funciones de control listas para MT4.

//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
// 7. FUNCIONES DE GESTIÓN DEL PROGRAMA MQL4.
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
// 7.1. La función elimina un Asesor Experto del gráfico especificado. Si tiene éxito, la función devuelve TRUE, en caso contrario FALSE.
bool ServiceDeleteExpert(int hwndChart); // Descriptor del sistema de la ventana del gráfico, que es eliminado por el Asesor Experto.
//======================================================================================
// 7.2. FUNCIÓN elimina los indicadores por nombre de la lista de indicadores cargados.
void ServiceDeleteIndicatorsByName(int hwndChart, // Descriptor del sistema de la ventana, donde se adjunta el indicador.
int nWindow, // Número de subventanas a borrar indicadores. Si es -1, se eliminan los indicadores de todas las subventanas.
string &asIndicatorName[], // Matriz unidimensional con los nombres de los indicadores a eliminar.
int nNumberName); // Número de nombres de indicadores en la matriz.
//======================================================================================
// 7.3. La función elimina el script del gráfico especificado. Si tiene éxito, la función devuelve TRUE, en caso contrario devuelve FALSE.
bool ServiceDeleteScript(int hwndChart); // Descriptor del sistema de la ventana del gráfico, el script a eliminar.
//======================================================================================
// 7.4. La función controla el cuadro de diálogo de cierre de script y devuelve el descriptor del sistema del cuadro de diálogo de cierre de script si la ventana existe,
// en caso contrario - NULL. El guión sólo funciona con las localizaciones en ruso e inglés.
int ServiceDialogScript(int bInstruction); // Comando para la ventana de diálogo de cierre del script: TRUE - para cerrar el script, FALSE - para no cerrar el script.
//======================================================================================
// 7.5. La función obtiene los nombres de los indicadores de la lista de indicadores cargados.
// Si tiene éxito, la función devuelve el número de indicadores en las subventanas especificadas mediante el parámetro "nWindow", de lo contrario devuelve cero.
int ServiceGetNamesIndicators(int hwndChart, // Descriptor de sistema de la ventana a la que se adjunta el indicador.
int nWindow, // Número del subgrafo. Si es -1, se leen los nombres de los indicadores de todas las subventanas.
string &asIndicatorName[], // Matriz unidimensional de cadenas para los nombres de los indicadores.
// ¡El array debe ser inicializado con valores diferentes en cada celda!
Esto es // una peculiaridad de la inicialización de arrays de cadenas en MQL4.
int nNumberName); // Tamaño de la matriz "asIndicatorName[]" para aceptar los nombres de los indicadores.
//======================================================================================
// 7.6. La función llama a la ventana de la lista de indicadores.
bool ServiceListIndicators(int hwndChart); // Descriptor del sistema de la ventana del gráfico, en la que se llama a la ventana de la lista de indicadores.
//======================================================================================
// 7.7. La función carga un indicador personalizado en el gráfico especificado por su nombre.
void ServiceLoadCustomIndicator(int hwndChart, // Descriptor del sistema de la ventana del gráfico, donde se carga el indicador.
string szNameIndicator, // Nombre del indicador cargado.
int bOK); // Confirmación del inicio del indicador, si la ventana de diálogo de propiedades del indicador está presente.
// TRUE - se permite hacer clic automáticamente en el botón "OK", FALSE - se prohíbe hacer clic automáticamente en el botón "OK".
//======================================================================================
// 7.8. La función carga el Asesor Experto en el gráfico especificado por su nombre.
void ServiceLoadExpert(int hwndChart, // Descriptor del sistema de la ventana del gráfico, donde se carga el experto.
string szNameExpert, // Nombre del Asesor Experto a cargar.
int bOK); // Confirmar el inicio del Asesor Experto, si el diálogo de propiedades del Asesor Experto está disponible.
// TRUE - El botón "OK" está activado, FALSE - El botón "OK" está desactivado.
//======================================================================================
// 7.9. La función carga en el gráfico especificado el script por su nombre.
void ServiceLoadScript(int hwndChart, // Descriptor del sistema de la ventana del gráfico, donde se carga el script.
string szNameScript, // Nombre del script cargado.
int bOK); // Confirmación del lanzamiento del script, si el diálogo de propiedades del script está presente. Es posible que el script no tenga un diálogo de propiedades.
// Cuando se utiliza la función para cargar el script desde el script en el gráfico actual, el parámetro no funciona debido a
// es imposible que dos scripts se ejecuten simultáneamente en un gráfico.
// TRUE - El clic automático del botón "OK" está activado, FALSE - El clic automático del botón "OK" está desactivado.
//======================================================================================
// 7.10. La función carga un indicador estándar en el gráfico especificado por su nombre.
void ServiceLoadStdIndicator(int hwndChart, // Descriptor del sistema de la ventana del gráfico, donde se carga el indicador.
string szNameIndicator, // Nombre del indicador cargado.
int bOK); // Confirmación del inicio del indicador, si la ventana de diálogo de propiedades del indicador está presente.
// TRUE - se permite hacer clic automáticamente en el botón "OK", FALSE - se prohíbe hacer clic automáticamente en el botón "OK".
//======================================================================================
// 7.11. La función llama al menú de propiedades de los expertos. Si tiene éxito, la función devuelve TRUE, en caso contrario - FALSE.
bool ServicePropertiesExpert(int hwndChart); // Descriptor de sistema de la ventana del gráfico, sobre la que se llama al menú de propiedades del experto.
//=======================================================================================
// 7.12. Función de activar/desactivar los Asesores Expertos manipulando el botón de Asesores Expertos.
void ServicioSetExperts();

 
Elektronik:

¿Cómo se hace esto de forma programada, con la ayuda de código? ¿El Asesor Experto ejecutó su función y luego se estrelló?

PREGUNTAS Y RESPUESTAS:
h ttps://www.mql5.com/ru/forum/110207
PostMessageA(WindowHandle(Symbol(),Period()), WM_COMMAND, 33050, 0);

No estoy de acuerdo. No hace falta ir más allá de mql, ni quitar el EA del gráfico. Basta con bloquear programáticamente la operación previendo esto en el código del EA.

 
granit77:

No estoy de acuerdo. No es necesario ir más allá de mql, no es necesario quitar el EA del gráfico. Es suficiente con bloquear programáticamente el comercio previendo esto en el código del EA.


Permíteme discrepar contigo (mira hasta el final) :

 
granit77:

No estoy de acuerdo. No es necesario ir más allá de mql, no es necesario quitar el EA del gráfico. Es suficiente con bloquear programáticamente el comercio previendo esto en el código del EA.

Sí, así es. La única excepción es la gestión remota.
 

Saben, por favor avisen, hay una sección de código en el advisor, es necesario saber como cerró la vela anterior en dos pares en la apertura de una nueva vela, todo funciona bien, pero si en ese momento hay ticks en dos pares, el advisor está en el par principal y no hay problemas con él, pero si el segundo par con el inicio de una nueva vela no tiene ticks, los valores del mismo no se actualizan y reciben datos del mismo, no de la vela anterior, sino del día anterior.

{//1
if (iClose(SignalSimbol,PERIOD_H1,1) > iOpen(SignalSimbol,PERIOD_H1,1)) svcolor1 = 1; // бычья свеча
if (iClose(SignalSimbol,PERIOD_H1,1) < iOpen(SignalSimbol,PERIOD_H1,1)) svcolor1 = 2; // медвежья свеча
if (iClose(SignalSimbol,PERIOD_H1,1) == iOpen(SignalSimbol,PERIOD_H1,1)) svcolor1 = 3; // додж
if (iClose(TradeSimbol,PERIOD_H1,1) > iOpen(TradeSimbol,PERIOD_H1,1)) svcolor2 = 1; // бычья свеча
if (iClose(TradeSimbol,PERIOD_H1,1) < iOpen(TradeSimbol,PERIOD_H1,1)) svcolor2 = 2; // медвежья свеча
if (iClose(TradeSimbol,PERIOD_H1,1) == iOpen(TradeSimbol,PERIOD_H1,1)) svcolor2 = 3; // додж
spread =  MarketInfo(TradeSimbol,MODE_SPREAD);
TimeBar_t = (TimeCurrent()-Time[0])/60; // время в минутах с открытия свечи
RefreshRates ();
}//1 
 
Zhunko:

Biblioteca con funciones de control de MT4 listas para usar.

Lo he probado recientemente. Funciona.

Gracias.
 
vasili:
Estimados expertos, por favor, ayúdenme.
No puedo superar el problema del guardado automático de la plantilla.
No inserta el nombre del archivo en la ventana de guardado.
Aquí está el código.
La cuestión es de actualidad.
Razón de la queja: