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

 
ruslan:

hay una constante en la línea cl_ de OPENCL y es igual a #define CL_DBL_MAX 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0 al comprobar el grado de dos en 1024 obtuvo. 2^1024 = 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216 Y luego debajo de eso está el número de pi

después de

#define CL_M_PI 3.141592653589893115998

3.141592653589793238462643383279502884197169

explique por qué ????

https://ru.wikipedia.org/wiki/Число_двойной_точности

Число двойной точности — Википедия
  • ru.wikipedia.org
Числа с плавающей запятой (двойной/одинарной/четверной точности) поддерживаются сопроцессором (до 80486SX, включительно, выполнен как отдельный модуль-0х87/0х287/0х387/0х487, начиная с 80486DX является встроенным в главный процессор. Сопроцессор, хотя он сейчас и является частью главного процессора, принято называть FPU — Floating Point Unit...
 
¿Es posible obtener el valor del saldo en barras anteriores en mcl4? ¿Cómo escribo esto en el código?
 
Mi indicador tiene un retardo de +/- 1 segundo después de pulsar el botón. MQL5

He añadido estos manejadores de eventos para el funcionamiento y la actualización del panel:
- OnChartEvent para manejar los clics de los botones
- OnTimer para la actualización de los datos del panel

Todo el código es de más de 750 líneas, sólo hay varios bucles, uno para las actualizaciones en la ventana del indicador, los otros tres tienen un pequeño número de pasadas (máximo 10 * 4)

Esta parte del código después de OnChartEvent if(id == CHARTEVENT_OBJECT_CLICK) es notablemente lenta
if(go == "E")
     {
      if(ObjectGetInteger(ChartID(),no,OBJPROP_STATE) == true)
        {
         ObjectSetInteger(ChartID(),no,OBJPROP_COLOR,cpanel);
         ObjectSetInteger(ChartID(),no,OBJPROP_BGCOLOR,ctext);
        }
      else
        {
         ObjectSetInteger(ChartID(),no,OBJPROP_COLOR,ctext);
         ObjectSetInteger(ChartID(),no,OBJPROP_BGCOLOR,cpanel);
        };
      for(int i = 0; i < limit_x; i++)
        {
         vname = i + 1;
         if("MCC B№"+(string)vname != no)
           {
            ObjectSetInteger(ChartID(),"MCC B№"+(string)vname,OBJPROP_STATE,false);
            ObjectSetInteger(ChartID(),"MCC B№"+(string)vname,OBJPROP_COLOR,ctext);
            ObjectSetInteger(ChartID(),"MCC B№"+(string)vname,OBJPROP_BGCOLOR,cpanel);
           };
        };
     };
 
Alexandr Sokolov:
Mi indicador tiene un retraso de +/- 1 segundo después de pulsar el botón. MQL5

He añadido estos manejadores de eventos para el funcionamiento y la actualización del panel:
- OnChartEvent para manejar los clics de los botones
- OnTimer para la actualización de los datos del panel

Todo el código es de más de 750 líneas, sólo hay varios bucles, uno para las actualizaciones en la ventana del indicador, los otros tres tienen un pequeño número de pasadas (máximo 10 * 4)

Esta parte del código después de OnChartEvent if(id == CHARTEVENT_OBJECT_CLICK) es notablemente lenta

ChartRedraw() es necesaria después de que se hayan realizado todos los cambios en todos los objetos cuyas propiedades han sido modificadas por la acción del botón.

 
Artyom Trishkin:

ChartRedraw() es necesario después de hacer todos los cambios en todos los objetos cuyas propiedades se cambian con la acción del botón.

¡En efecto! No había pensado en eso. ¡Muchas gracias!


Estaba poniendo alertas enOnChartEvent if(id ==CHARTEVENT_OBJECT_CLICK) - había alertas, pero no actualizaciones. Y por eso no podía entender por qué

 
novichok2018:
¿Es posible obtener el valor del saldo en barras anteriores en mcl4? ¿Cómo lo escribo en el código?

¡Hola, expertos! ¡¿No lo sabe nadie?! No me lo creo.

 
novichok2018:

¡Hola, expertos! ¡¿No lo sabe nadie?! No me lo creo.

Este es el precio de una garrapata

SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE ) * volumen

A continuación, multiplique por la diferencia en ticks entre el precio de apertura de la orden y el precio de cierre (u otro) de la barra necesaria. Pero hay que tener en cuenta que no se puede saber con los métodos habituales cuál era el diferencial en ese momento

 
novichok2018:

¡Hola, expertos! ¡¿No lo sabe nadie?! No me lo creo.

el saldo depende de las posiciones cerradas: si no se ha cerrado nada, el saldo no ha cambiado

 
No debo haber formulado la pregunta correctamente, ya que las respuestas están fuera del tema. No me importa si las posiciones se han cerrado o no, y desde luego no me interesa el valor del tick. Necesito saber cuál era elsaldo de la cuenta en el momento de cerrar 1, 2, 3 barras de un determinado símbolo para comparar. Se abrieron y cerraron posiciones en estas barras, incluyendo posiciones en otros símbolos: algunas posiciones se cerraron en el lado positivo, otras se cerraron en el lado negativo, otras no se cerraron todavía, por lo que el saldo ha cambiado. Necesito saber los valores específicos. Gracias.
 
novichok2018:
No debo haber formulado la pregunta correctamente, ya que las respuestas están fuera del tema. No me importa si las posiciones se han cerrado o no, y no me interesa el coste del tick. Necesito saber cuál era el saldo de la cuenta en el momento de cerrar 1, 2, 3 barras para comparar. En estas barras se abrían y cerraban posiciones, por lo que el saldo era cambiante. Necesitamos saber el valor específico. Gracias.

- Nos fijamos en la hora de la última barra
- sumar todo lo que se cerró en este bar
- restar del saldo actual

y así todas las barras a su vez