MetaTrader 4 Build 529 beta liberado con nuevo compilador - página 124

 
VOLDEMAR:

Es mejor que escribas todo en inglés. Si tu código llega a un comerciante extranjero, no entenderá nada...

Escribo código para un ruso y me pide que escriba en ruso. Y lo que reviso aquí - escribo para mí, y no me importa si escribo en ruso o en marciano. Si veo un problema, lo describo.

Lo escribo en inglés para Market.

 
pro_:
stringo:

Buscado y encontrado

.

Dame tu ejemplo.



Le he escrito en un mensaje privado. Con un ejemplo del problema al que me enfrento.
ObjectFind fue un intento de resolver el problema, y probablemente tienes razón, ObjectFind en sí mismo funciona bien.

El problema está claro. Uso incorrecto de la función ObjectFind. ObjectFind devuelve el número de la subventana en la que se encuentra el objeto. Si no se encuentra ningún objeto, devuelve -1. Está comprobando "cero - cero".
 
Night63:

¡Hola!

Encontramos el siguiente problema.

Insertamos el bloque de cambio de cotizaciones de 4 dígitos a 5 dígitos (el código funciona absolutamente bien, ha sido probado en decenas de Asesores Expertos) :

Desde aquí puedes ver lo siguiente.

Traemos los parámetros de entrada del Asesor Experto pulsando F7, todo es correcto:

Pulse OK y, a continuación, vuelva a pulsar F7:

Pulse OK y vuelva a pulsar F7:

Pulse OK y vuelva a pulsar F7:

Y así sucesivamente......

Este error no desaparece con las compilaciones actualizadas. Aparece con diferentes usuarios de la misma manera. El tema se debatió aquí


No se pueden modificar las variables de entrada.

Utilice la palabra clave de entrada en lugar de extern, entonces el compilador no le permitirá hacer esto.

Veremos qué podemos hacer para mantener la antigua funcionalidad cuádruple

P.D. Muchas gracias por sacar el tema.

 
artmedia70:
Así que en el futuro Bars no sólo será una variable predefinida, sino también una función con el mismo nombre: Bars() ?

Es muy posible. (Por cierto, en C/C++ esto está permitido).
 
stringo:

No se pueden cambiar las variables de entrada.



Aquí, ¿puede explicar en detalle, qué significa que las variables de entrada no pueden ser modificadas?

Si la variable de entrada int TakeProfit = 300 ;

entonces puedo darle un valor diferente en el código ???

No entiendo cuando no puedo cambiarlo...

 

Otra pregunta, ¿cómo puedo determinar mediante programación que el cursor del ratón está sobre un objeto bmp?

He hecho un código donde debajo del objeto hay una zona donde cae el cursor y el código entiende que el cursor está sobre el objeto bmp...

Lo pregunto porque estoy buscando un método más sencillo para definir el cursor sobre un objeto bmp...

 
VOLDEMAR:

Aquí, ¿podría explicar con más detalle qué significa que las variables de entrada no pueden ser modificadas?

Si la variable de entrada int TakeProfit = 300 ;

entonces puedo asignarle un valor diferente en el código ???

No entiendo, ¿cuándo no puedo cambiar?

El software no se puede cambiar. Sólo por el usuario en la configuración.

input int TakeProfit = 300;

int takeProfit;

int inicio() {

takeProfit=TakeProfit;

// Y luego modificar takeProfit.

return(0);

}

 
artmedia70:

No se puede cambiar mediante programación. Sólo por un usuario en la configuración.

input int TakeProfit = 300;

int takeProfit;

int inicio() {

takeProfit=TakeProfit;

// Y luego modificar takeProfit.

return(0);

}




¡¡¡Gracias!!! Ahora sabré...
 
VOLDEMAR:

Aquí, ¿podría explicar con más detalle qué significa que las variables de entrada no pueden ser modificadas?

Si la variable de entrada int TakeProfit = 300 ;

entonces puedo asignarle un valor diferente en el código ???

No entiendo, ¿cuándo no puedo cambiar?

Este es un ejemplo de nuestra parabólica personalizada

input double InpSARStep=0.02;    // Step
input double InpSARMaximum=0.2;  // Maximum
//---- buffers
double       ExtSARBuffer[];
//--- global variables
double       ExtSarStep;
double       ExtSarMaximum;

...

void OnInit()
  {
//--- checking input data
   if(InpSARStep<0.0)
     {
      ExtSarStep=0.02;
      Print("Input parametr InpSARStep has incorrect value. Indicator will use value",
            ExtSarStep,"for calculations.");
     }
   else
      ExtSarStep=InpSARStep;
   if(InpSARMaximum<0.0)
     {
      ExtSarMaximum=0.2;
      Print("Input parametr InpSARMaximum has incorrect value. Indicator will use value",
            ExtSarMaximum,"for calculations.");
     }
   else
      ExtSarMaximum=InpSARMaximum;

...

Y además utilizamos ExtSarStep y ExtSarMaximum

 
stringo:
Lo que es seguro es que no será pronto en absoluto


Es una pena. Mis expertos necesitan estos eventos como el aire.

En cada paso, hay que repasar un montón de posiciones y averiguar cuáles se han ido a dónde y por qué.

Razón de la queja: