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

 
rid писал(а) >>

Ese arreglo no funcionará. No podrá abrir la primera operación. ¡Porque la condición para abrir la primera operación en su variante es cerrar cualquier operación anterior en la toma o en el stop!

Es decir, es un círculo vicioso.

Por lo tanto, hay que cambiar la lógica del trabajo.

 
Déjeme hacerle una pregunta. En el 5º trinquete, ¿existirá la clase (OOP)?
 

¿Pueden darme una solución sobre cómo calcular el valor de los primeros N dígitos de una variable entera?

¿Sólo mediante la conversión a cadena?

 
goldtrader >> :

¿Pueden darme una solución sobre cómo calcular el valor de los primeros N dígitos de una variable entera?

¿En qué sistema numérico está? ¿En decimal?

¿Sólo mediante la conversión a cadena?

No, claro que no.

 
TheXpert писал(а) >>

¿Dígitos en qué sistema numérico? ¿Decimal?

Sí, en decimal.

Lo hago: int -> double -> string -> Substr -> compare.

Funciona, pero tiene un aspecto un tanto incómodo, rústico. Me gustaría que fuera más elegante ))))

 
goldtrader >> :

Sí, en decimal.

Lo hago: int -> double -> string -> Substr -> compare.

Funciona, pero parece algo distorsionado y rústico. Me gustaría que fuera más elegante ))))

//+------------------------------------------------------------------+
//|                                                NElementsTest.mq4 |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, TheXpert"
#property link      "theforexpert@gmail.com"

int FirstN(int N, int value)
{
   int value_ = value;
   
   int length = 0;
   
   while( value_ != 0) 
   {
      value_ /= 10;
      length++;   
   }
   
   int toDivide = MathMax( length - N, 0);
   return ( value/NormalizeDouble(MathPow(10, toDivide), 0));
}

void Out(int N, int value)
{
   Print("Value = ", value, " , First ", N, " = ", FirstN( N, value));
}

int start()
{
   Out(5, 12345678);
   Out(1, 12345678);
   Out(6, 12345);
   Out(5, -1234567);

   return(0);
}
MathPow es lento, sería una buena idea sustituirlo, pero debería ser más rápido que las cadenas.
 
TheXpert писал(а) >>
MathPow es lento, sería una buena idea sustituirlo, pero debería ser más rápido que las cadenas.

Acabo de empezar a usar MathPow. Me gustaría aclarar... ¿Cuándo debería empezar a sustituir x^2 = x*x? ¿Y merece la pena sustituirlo si el grado no es "grande"... o "alto"...

 
TheXpert писал(а) >>
MathPow -- la cosa es lenta, sería deseable reemplazarla, pero debería ser más rápida que las cadenas.

¡Gracias, Andrew!

Es realmente programático.

 
Rosh >> :

Si MetaTrader 4 se hubiera "adaptado a los CC", como dices, no habría sido tan popular entre los operadores. Estos rumores sólo pueden difundirse para justificar su propio software.

¡100 puntos! Hay mucha demanda en el mercado, pero la oferta supera a la demanda y es obvio que las nuevas empresas de corretaje utilizan diferentes trucos para atraer a los clientes y obtener el mayor rendimiento de ellos.

 
DDFedor >> :

Acabo de empezar a usar MathPow. Me gustaría aclarar... ¿Cuándo debería empezar a sustituir x^2 = x*x? ¿Y merece la pena sustituirlo si el grado no es "grande"... o "alto"...

Tut. La expresión que citaste definitivamente vale la pena.

goldtrader >> :

>> Gracias, Andrew.

Me alegro de ser de ayuda.