Problema de las terminales globales

 

Hola, amigos

Tengo algo que está a punto de hacer que me despida de la programación de MT. El problema está en tratar de configurar los globales de la terminal. Lo que estoy haciendo es algo así:

BuyEntrySignalGiven = Symbol() + "BuyEntrySignalGiven";
GlobalVariableSet(BuyEntrySignalGiven, (double) 1.0);

El set me sigue dando un error 4051. El primer parámetro es un string, el segundo un double como debería ser. Por qué sigue diciendo que un tipo de parámetro no es válido no lo entiendo. Ambos parámetros son del tipo correcto. No entiendo por qué está quemando un fusible cuando los parámetros son correctos. Soy un desarrollador de software a medida por el comercio y la intención de añadir aplicaciones MT a mis ofertas. Si la plataforma no es fiable, no la tocaré. Algo que no es fiable sólo me hará quedar mal y saboteará mi negocio. Si alguien tiene alguna idea que ofrecer, se lo agradecería mucho.

Muchas gracias,

Profesor

 
GlobalVariableSet(BuyEntrySignalGiven, (double) 1.0);

Eliminar la declaración de doble. GV ya es doble, así que no es necesario declararlo de nuevo.



BuyEntrySignalGiven = Symbol() + "BuyEntrySignalGiven";

Ese código también es problemático. Alguien más te lo indicará, si tiene tiempo.

 
ProfessorMetal:

Hola, amigos

Tengo algo que está a punto de hacer que me despida de la programación de MT. El problema está en tratar de configurar los globales de la terminal. Lo que estoy haciendo es algo así:

El set me sigue dando un error 4051. El primer parámetro es un string, el segundo un double como debería ser. Por qué sigue diciendo que un tipo de parámetro no es válido no lo entiendo. Ambos parámetros son del tipo correcto. No entiendo por qué está quemando un fusible cuando los parámetros son correctos. Soy un desarrollador de software a medida por el comercio y la intención de añadir aplicaciones MT a mis ofertas. Si la plataforma no es fiable, no la tocaré. Algo que no es fiable sólo me hará quedar mal y saboteará mi negocio. Si alguien tiene alguna idea que ofrecer, se lo agradecería mucho.

Muchas gracias,

Profesor

No tengo ningún problema con este código :

string BuyEntrySignalGiven = Symbol() + "BuyEntrySignalGiven";
GlobalVariableSet(BuyEntrySignalGiven, (double) 1.0);     
¿Qué versión está utilizando? ¿Cómo se puede reproducir el problema?
 
Estoy pensando que es una construcción más antigua.
 

El doble reparto no estaba originalmente ahí. Lo añadí debido al error. El segundo parámetro se supone que es un doble. Mi experiencia es C++/C# y esperaba que simplemente poner el argumento como 1.0 sería suficiente. Añadí el cast porque la llamada falló y no estaba seguro de si era alguna idiosincrasia de MQL4. Ya he visto que MQL4 no siempre juega con las reglas esperadas. En cuanto a la asignación de la cadena, tengo otro indicador que escribí que sigue el mismo formato y funciona perfectamente. No veo nada problemático ahí. Symbol() devuelve una cadena, la concatenación es con una cadena, lo cual es perfectamente aceptable, y la variable a la que se asigna la expresión es también una cadena. Lo único que puedo ver que podría ser un problema es concatenar el símbolo de par con una cadena que es la misma que el nombre de GV. Eso no debería importar porque la cadena "terminada" no es la misma que el nombre GV. Tal vez ese sea el problema. Si lo es, ¿por qué no decirlo?

De todos modos, gracias por la respuesta

Profesor

 

En realidad, MetaQuotes dijo que no se puede esperar un estilo y reglas de codificación C++/C# en MQL4/5.


Por cierto, no has respondido a la pregunta del moderador.

 

Interesante, chicos. Estoy ejecutando la Build 646. No creo que ese sea el problema. Uh - Creo que acabo de descubrirlo. Es que estoy cansado y soy estúpido. Los nombres de los GV se establecen en un método que quería llamar desde OnStart() y no lo hice. ¡DUH! Dale una bofetada al americano imbécil y dile que se acueste y duerma un poco antes de que intente codificar más. Llevo unas 36 horas despierto. Ustedes definitivamente me ayudaron al inspirarme a dar un paso atrás y echar otro vistazo a lo que estaba haciendo. Muchas gracias y buenas noches, buen día - sea lo que sea donde estés. :-)

Profesor

 
Sí respondí, deysmacro. No le diste tiempo a mi respuesta para que apareciera. Como he dicho, básicamente no es un problema. El problema fue un error de novato por mi parte debido al cansancio. Por cierto, sé que no todas las cosas en MQL4/5 funcionan igual que en C++/C#. Recuerdo, sin embargo, ver una declaración en el sentido de que parte de la intención con los cambios a MQL4/5 es para que sea más como C ++. La documentación podría estar un poco mejor organizada y ser más completa. Para ser justos, lo mismo puede decirse de Microsoft.
 
Es bastante simple en realidad. Si te enseñan o ponen una documentación exhaustiva, en algún momento, ... ... ...
 

Para ser justos con MetaQuotes, lo que están haciendo no es trivial. Sospecho que enseñar a uno mismo siempre va a ser la norma. Para ser honesto, eso es lo normal para un desarrollador profesional. Viene con el territorio. La documentación y la interacción con otros desarrolladores suele ser la única "enseñanza" que vas a recibir. C'est la vie. :-)

Todavía estoy tratando de averiguar cómo conseguir la nueva depuración para MQL4 para trabajar. He seguido lo que creía que la documentación me indicaba. Cuando traté de iniciar el depurador, apareció una ventana H1 y el diálogo de propiedades para el indicador que estaba tratando de depurar. Cuando salí del diálogo, el depurador se cerró y la ventana desapareció. Oh, bueno. Eso es un tema para otro hilo, sospecho.

 
ProfessorMetal:

Para ser justos con MetaQuotes, lo que están haciendo no es trivial. Sospecho que enseñar a uno mismo siempre va a ser la norma. Para ser honesto, eso es lo normal para un desarrollador profesional. Viene con el territorio. La documentación y la interacción con otros desarrolladores suele ser la única "enseñanza" que vas a recibir. C'est la vie. :-)

Todavía estoy tratando de averiguar cómo conseguir la nueva depuración para MQL4 para trabajar. He seguido lo que creía que la documentación me indicaba. Cuando traté de iniciar el depurador, apareció una ventana H1 y el diálogo de propiedades para el indicador que estaba tratando de depurar. Cuando salí del diálogo, el depurador se cerró y la ventana desapareció. Oh, bueno. Eso es un tema para otro hilo, sospecho.


Fue un error de larga duración, que podría haberse evitado al seleccionar otro panel del diálogo de entrada que las entradas. Entonces la siguiente ejecución tenía éxito. Con el 646 parece solucionado. Desgraciadamente no hay mucha información de este tipo en este sitio. Por lo general, la mayoría de los problemas terminan con "informe al servicio técnico" sin ningún rastro adicional.

Razón de la queja: