Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 1796

 

Mezcla de condiciones booleanas y de otro tipo en una pila... Bien. Si no quieres escribir buen código, no lo escribas. No voy a tratar de persuadirte ni de discutir contigo.

MakarFX #:

Y si hablamos de universalidad de la función, pues...

Está más cerca del sentido común que su función anterior.

Es cierto que la legibilidad deja mucho que desear... Pero, ¿quién piensa en ello...? :)

 
Nerd Trader #:
La que por convención es verdadera

no, "nombre_de_línea" tendrá el apellido asignado.

 
Mihail Matkovskij #:

Mezcla de condiciones booleanas y de otro tipo en una pila... Bien. Si no quieres escribir buen código, no lo escribas. No voy a persuadirte ni a discutir contigo.

Vale, vale, usaré tu ejemplo.

 
No es necesario crear y eliminar líneas todo el tiempo. Hay banderas de visibilidad de volumen en los marcos temporales. Necesidad de ocultar y mostrar.
 
Mihail Matkovskij #:

Mezcla de condiciones booleanas y de otro tipo en una pila... Bien. Si no quieres escribir buen código, no lo escribas. No voy a persuadirte ni a discutir contigo.

Está más cerca del sentido común que su función anterior.

Es cierto que la legibilidad deja mucho que desear... Pero, ¿quién piensa en eso...? :)

Concretamente, ¿qué ocurre?

Y todavía no has contestado qué devuelve tu función a "-1"...

 
MakarFX #:

no, "nombre_de_línea" tendrá el apellido asignado.

Sí, ¿por qué habría un problema con eso? El objeto que supere la condición será eliminado de todos modos.
 
MakarFX #:

Concretamente, ¿qué ocurre?

Y todavía no has respondido a qué devolverá tu función en "-1".

devolverá false - ya lo he comprobado.
 
Nerd Trader #:
devolverá false - ya lo he comprobado
Debería devolver true.
 
MakarFX #:
Tiene que ser verdad.
Con el booleano NO verdadero :)
 
MakarFX #:

Concretamente, ¿qué ocurre?

bool FindObject(string name, int win)
{
   if(ObjectFind(0, name) == win) 
     return(true);
   return(false);
}
Una versión más compacta:
bool FindObject(string name,int win) { return (ObjectFind(0,name) == win); } 

Pero pensé que había dicho que su función pretendía ser universal... Entonces olvidaste un detalle muy importante:

bool FindObject(const long chart_id, const string name, const int win) { return (ObjectFind(chart_id, name) == win); } 

La opción más universal y fiable.

Y nunca respondiste que tu función devolverá "-1".

¿Te da pereza escribir un simple script para comprobarlo? De acuerdo. Lo hice por ti:

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart() {
  for (int i = -10; i <= 10; i++) 
    if (i)
      printf("%d - true", i);
    else
      printf("%d - false", i);
}
//+------------------------------------------------------------------+

Ahora mira el resultado:

-10 es cierto.

-9 es cierto.

-8 es cierto.

-7 - verdadero

-6 - verdadero

-5 - verdadero

-4 - verdadero

-3 - verdadero

-2 - verdadero

-1 - verdadero

0 - falso

1 - verdadero

2 - verdadero

3 - verdadero

4 - verdadero

5 - verdadero

6 - verdadero

7 - verdadero

8 - verdadero

9 - verdadero

10 - verdadero



Todos los números negativos son verdaderos. 0 es falso. Así es como funciona. :)

Por lo tanto, su función devolverá true.

El mío devolverá falso

bool objectExist(const long _chartID, const string _name) { return(ObjectFind(_chartID, _name) >= 0); } // чётко определим условие существования объекта!

Como debería ser con los valores negativos.