Deseos para MT5 - página 46

 
-Alexey-:
No estoy de acuerdo, hay un problema, aquí hay un ejemplo (cuadrícula 10000x10000):

doble x1=0,0011;

doble y1=x1/10000;

doble x2=0,0012;
doble y2=x2/10000;

doble c=y1-y2;
double d=MathPow(c,2);


printf(cadena(d));

результат: 9.999999999999968e-017

¿Qué hago con este resultado? ¿Cómo lo comparo con otros resultados? DBL_EPSILON=2.2204460492503131e-016. Además de los dos últimos dígitos, ¿ves? Y eso son sólo dos operaciones. Y tengo más de estas operaciones. Y basándose en esta información, tendrá que restaurar los datos más tarde utilizando algunas operaciones más. Más pérdidas. Recién estoy aprendiendo a programar en un lenguaje tipo C y una clase así me resulta difícil de construir (o mejor dicho, no tengo idea de cómo). Este es un trabajo serio. Por cierto, por casualidad, ¿tienen una clase de este tipo? Y los desarrolladores pueden mejorar las cosas para todos a la vez. Sería posible hacer 100.000x100.000 cuadrículas. Ya se dispondría de muestras más o menos representativas, aunque incluso esto no es suficiente en general. Y si hicieran una clase para la precisión arbitraria, sería aún mejor :) Es sólo un tipo de datos. Si existe, está ahí por una razón, porque satisface una necesidad. La cuestión es que no sé si es difícil o no para los desarrolladores. Si es difícil y caro -estoy de acuerdo contigo-, por qué pasarles mi problema. Pero si no es difícil, ¿por qué no hacerlo? Una vez más, un potente entorno de desarrollo para realizar cálculos comerciales con gran precisión, lo que supone una ventaja competitiva :). Por eso les pregunto qué opinan al respecto.

Por favor, vuelva a leer la forma estándar del número, y muchas preguntas desaparecerán.

En la forma estándar, 1,111e5 es mayor que 9,999e4, por lo que la comparación es bastante correcta.

Aquí está el mismo resultado: 9,999999999999968e-017 está relacionado con la representación binaria del número, no todos los números en forma binaria están representados por una fracción finita, algunos están representados por una fracción infinita, de ahí que se redondee la mantisa al número más cercano con una fracción finita.

Por cierto double d=MathPow(c,2); no es correcto tomar el grado, si trabajas con double entonces double d=MathPow(c,2.0); así que, no sé si es un error o no, pero al poner un número en un grado deberías mirar también el tipo de indicador.

 
-Alexey-:
La fantasía no tiene nada que ver con esto. Mi pregunta se refería a la posibilidad de aplicar el método de análisis más común. Y eso es trabajar con la serie que queda después de eliminar la tendencia y el ciclo. En todos, sin excepción, los libros de texto de estadística financiera y los libros de método de las universidades hablan de este método. Esto no es una fantasía, sino uno de los enfoques canónicos del análisis. Y un entorno especializado debería disponer de medios para aplicar este enfoque, ¿no cree?
)))))))
 
Urain:

Por favor, vuelva a leer la forma estándar del número, y muchas preguntas desaparecerán.

En la forma estándar, 1,111e5 es mayor que 9,999e4, por lo que la comparación es bastante correcta.

Aquí está el mismo resultado: 9,99999999999999968e-017 está relacionado con la representación binaria del número, no todos los números en forma binaria están representados por una fracción finita, algunos están representados por una fracción infinita, de ahí el redondeo de la mantisa al número más cercano con una fracción finita.

Sobre el 1,111e5 y el 9,999e4 que veo. Pero necesito compararlas: 9,999999999999999999968e-017 (sobre la pérdida de precisión en los dígitos escribí adicionalmente). La ayuda me dice que los números con una diferencia inferior a DBL_EPSILON deberían considerarse indistinguibles. Lo siento, si no me explico bien - estoy aprendiendo ahora :) Gracias por separado por la información sobre el indicador.

 
Urain:

Por cierto double d=MathPow(c,2); no es correcto tomar el grado, si se trabaja con double entonces double d=MathPow(c,2.0); así que, no sé si es un error o no, pero al poner un número en un grado es necesario seguir el tipo de indicador.

El exponente debe ser en todo caso de tipo double.
Документация по MQL5: Основы языка / Типы данных / Вещественные типы (double, float)
Документация по MQL5: Основы языка / Типы данных / Вещественные типы (double, float)
  • www.mql5.com
Основы языка / Типы данных / Вещественные типы (double, float) - Документация по MQL5
 

Estimados desarrolladores, permitan que los tipos void devuelvan valores, o definan una nueva clase que devuelva valores de cualquier tipo.

Algo así:

voids get(int i)
  {
   if(i==0)return((int)2);
   else
     {
      if(i==1)return((double)2);
      else
        {
         if(i==2)return((string)2);
        }
     }
  }

Quiero tener este tipo de declaración en las funciones definidas por el usuario:

int  Custom_ArraySize( void  array[] );   
bool Custom_ArraySort( number&  array[] );

y para ello necesito añadir algo al lenguaje. Has asegurado demasiado a los usuarios, tienes que aflojar un poco en algún sitio.

Imagina que un desarrollador está escribiendo código, ha creado 1500 líneas y todo el código opera con un double, para pasarle un int tendrá que hacer una sobrecarga para 1500 líneas más. Y tienes 14 tipos.

 
Urain:

Imagínate, una persona escribe un código, hace 1500 líneas, y todo el código funciona con el doble, para pasar a él tendrás que hacer una sobrecarga de 1500 líneas más. Y tienes 14 tipos.

Utiliza la OOP.

 
lea:

Utiliza la OOP.

¿Crees que escribo en autocódigo?

a los promotores:

como una variante para aliviar la situación de la fraternidad de escritores, hacer la conversión del tipo de matriz, para que al menos pueda hacer esa llamada:

void OnStart()
  {
   int array[10];
   func((double)array)
  }
//+------------------------------------------------------------------+
void func(double &array[]){};
 
Urain:

¿Crees que escribo en autocódigo?

A juzgar por el hecho de que necesitabas esa extensión del lenguaje, supongo que sí.

p.d. Si sólo tuvieras el compilador de C++ en el momento en que resolviste tu problema, ¿escucharíamos una sugerencia para revisar el estándar del lenguaje?

 
lea:

Basado en el hecho de que necesitabas tal extensión del lenguaje - aparentemente, sí.

p.d. Si en el momento de su problema sólo tuviera el compilador C++, ¿habríamos escuchado la sugerencia de revisar el estándar del lenguaje?

No confundas traductor y compilador. mql no es realmente un compilador, es un traductor que describe llamadas a funciones C++ seguras.

Y mql5 está en fase de desarrollo activo. Así que mi petición de cambios es bastante adecuada.

Документация по MQL5: Основы языка / Функции / Вызов функции
Документация по MQL5: Основы языка / Функции / Вызов функции
  • www.mql5.com
Основы языка / Функции / Вызов функции - Документация по MQL5
 
Urain:

No confundas traductor y compilador, mql no es realmente un compilador, es un traductor que describe llamadas a funciones C++ seguras

Además, mql5 se encuentra en una fase activa de desarrollo. Así que mi petición de hacer cambios es bastante adecuada.

De acuerdo, si es tan importante, tomemos Java y no C++. También la traducción a bytecode :) Por favor, reconsidere la norma lingüística.

La solicitud de añadir un tipo universal no es del todo adecuada. Debería pedir plantillas. Pero para los tipos universales OOP es suficiente.

Razón de la queja: