Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 820

 

Estudia las matemáticas. Confundido entre dos pinos...

Hay esto:

int OnCalculate (const int rates_total,      // размер массива price[] 
                 const int prev_calculated,  // обработано баров на предыдущем вызове 
                 const int begin,            // откуда начинаются значимые данные 
                 const double& price[]       // массив для расчета 

Preguntas sobre el comienzo:

1. ¿Qué es? Su valor = 0. ¿Es un índice?

2. ¿Qué es esencialmente? ¿Qué son los datos significativos? ¿Qué otro tipo de datos hay?

3. ¿En qué se basa el cálculo de este valor? ¿Y qué variaciones son posibles en principio? Por ejemplo, ¿los datos significativos no pueden empezar en el índice 0 sino en el índice 5?

4. ¿Por qué se inserta este parámetro en OnCalculate?

Si me he perdido donde está escrito en la ayuda, por favor indíquelo.

 

¿Alguien puede aconsejar cómo deshacerse de estos valores de varios dígitos en la ventana de depuración (las variables están normalizadas)?


 
Андрей:

¿Alguien puede aconsejar cómo deshacerse de estos valores de varios dígitos en la ventana de depuración (las variables están normalizadas)?


Añade una variable decadena, ponla a DoubleToString() y obsérvala en la ventana de depuración.

Podrías ponerlo todo en una macro #ifdef _DEBUG

 
Alexey Viktorov:

Añade una variable decadena, ponla en DoubleToString() y obsérvala en la ventana de depuración.

Podrías ponerlo todo en una macro #ifdef _DEBUG

Gracias, pero surge la pregunta - estos valores de varios dígitos, ¿corresponden a la realidad o así, "juego de luces".

La cuestión no es que se vea bien, sino qué valores se utilizan para los cálculos posteriores.

 
Андрей:

Gracias, pero la pregunta que surge es si estos valores multivalentes son verdaderos o son sólo un "juego de luces".

No se trata de que quede bonito, sino de los valores que se utilizan para los cálculos posteriores.

Estos valores de varios dígitos corresponden a la realidad. Y a veces estropean la imagen, especialmente en las expresiones de comparación.
Para estar seguros, se recomienda utilizar NormalizeDouble() con una precisión determinada.
 
Y nadie se ha molestado en decir nada sobre el beguismo. Debe ser algo completamente extraño...
 
User_mt5:
Estos son los que tienen múltiples significados. Y a veces estropean la imagen, especialmente en las expresiones de comparación.
Para estar seguros, se recomienda utilizar NormalizeDouble() con la precisión especificada.
Así que estos "rastreros" surgen de los valores normalizados. Parece que falta algo en esta sopa (MT5).
 
Андрей:
Así que son estos "bichos" los que salen de los valores normalizados. Parece que falta algo en esta sopa (MT5).

Hasta ahora creía ingenuamente que la normalización es la verdad en última instancia.
¿Podría mostrarme un fragmento de código donde se produzca el problema? Quizás la causa sea otra.

 
User_mt5:

Hasta ahora, creía ingenuamente que la normalización era la verdad en última instancia.
¿Podría mostrarme un fragmento de código donde se produzca el problema? Tal vez la causa sea otra.

Sin embargo, aquí hay un fragmento que es suficiente para ver el "efecto".

Aquí está el resultado:

Es lo mismo con o sin normalización.

 

Андрей:

Es lo mismo con o sin normalización.

Sí.

En realidad, en las expresiones de comparación (como "sobre la marcha") la normalización funciona.
Según tengo entendido, los problemas surgen en el proceso de cálculo simple.
Pero si un número está normalizado, el número normalizado debe ser almacenado también.

Pero, por desgracia.

Me pregunto qué tienen que decir los desarrolladores al respecto.