Errores, fallos, preguntas - página 2194

 
Dmytro Zelenskyy:

Enfoque serio))

Bien, entonces, en el que quieras apantallar, ejecuta una vez un pequeño script sobre él, que dé el id en una variable global (preferiblemente una variable global temporal).

Y sus pantallas de script por id.

¡Inteligente jugada!

Gracias.
 
Dmytro Zelenskyy:

Aunque calcule el ancho exacto de la pantalla en píxeles, la pantalla cubrirá parcialmente la columna de precios.

Y en diferentes resoluciones de pantalla es diferente, conmigo (1280x1024) de 50 a 60 dependiendo del número de dígitos de la moneda. En la otra pantalla será diferente.

¿Así es como se calcula la anchura de la columna, para añadir estos píxeles a la anchura de la pantalla? (abrir en la captura de pantalla lo que la columna ha cerrado)


Hola de fxsaber:

//+------------------------------------------------------------------+
#define  TOSTRING(A) #A + " = " + (string)(A) + "\n"
// Ширина вертикальной шкалы графика
int GetWidthScale(const long chartID=0)
  {
   const string Name=__FUNCTION__+(string)MathRand();

   ObjectCreate(chartID,Name,OBJ_CHART,0,0,0);
   ObjectSetInteger(chartID,Name,OBJPROP_XDISTANCE,-1 e3);

   const long chart=ObjectGetInteger(chartID,Name,OBJPROP_CHART_ID);

   const int Res=(int)(ChartGetInteger(chart,CHART_WIDTH_IN_PIXELS) -
                  (ChartSetInteger(chart,CHART_SHOW,false) ? ChartGetInteger(chart,CHART_WIDTH_IN_PIXELS) : 0));

   ObjectDelete(chartID,Name);

   return(-Res);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnStart()
  {
   Print(TOSTRING(GetWidthScale()));
  }
//+------------------------------------------------------------------+
 
Artyom Trishkin:

Saludos de fxsaber:

¡¡El caso supera al maestro!!

¡Genial!

 
Artyom Trishkin:

Hola de fxsaber:

El código es ciertamente muy interesante, pero resulta que no resuelve el problema...

 
El problema es que no está claro cómo conseguir una función universal (que funcione con cualquier zoom y con diferentes anchos de escala) que se pueda utilizar para determinar el número de píxeles hasta una barra concreta.
 
Aleksey Vyazmikin:
El problema es que no está claro cómo conseguir una función universal (que funcione con cualquier zoom y diferentes anchos de escala) que se pueda utilizar para determinar el número de píxeles hasta una barra concreta.

Vamos. Todas las pistas están ahí.
La anchura de la barra sólo acepta los valores 1,2,4,8,16,32

Curiosamente, el identificador CHART_POINTS_PER_BAR no funciona.

Pero la anchura de la barra en píxeles puede calcularse fácilmente:

int WidthBar=int(1<<ChartGetInteger(0,CHART_SCALE));
La barra de la izquierda se dibuja siempre desde el centro, la de la derecha como se desee. Por lo tanto, el origen de las coordenadas está en el cero (izquierda).
 
Nikolai Semko:

Vamos. Todas las selecciones están aquí.
El ancho de la barra sólo acepta valores de 1,2,4,8,16,32

Curiosamente, el identificador CHART_POINTS_PER_BAR no funciona.

Pero la anchura de la barra en píxeles puede calcularse fácilmente:

La barra de la izquierda se dibuja siempre desde el centro, la de la derecha como se desee. Por lo tanto, el origen de las coordenadas está en el cero (izquierda).

Esto es una teoría, hasta ahora la mejor versión (más precisa) es esta:

pp=(double)ChartGetInteger(handle,CHART_WIDTH_IN_PIXELS)/(double)ChartGetInteger(handle,CHART_WIDTH_IN_BARS)*((Shift_Start-Shift_Stop)*(-1)+2)+Schkala+3;

pero también falla en un par de aspectos.

 
Aleksey Vyazmikin:

Esto es una teoría, hasta ahora la mejor opción (más precisa) es esta:

pero también falla por parejas.

:))
Exponga claramente el problema. ¿Qué valor quiere obtener?
 
Nikolai Semko:
:))
Exponga el problema con claridad. ¿Qué valor quiere obtener?

Necesito una captura de pantalla desde la fecha A hasta la fecha B inclusive. Y la función debería funcionar correctamente con cualquier zoom.

 

Basándome en la captura de pantalla he hecho un hilo aparte donde he descrito el problema y he publicado el código que tengo - ¡pido ayuda a los expertos!

https://www.mql5.com/ru/forum/237291

Организация пакетной обработки задачи по снятия изображений с экрана графика
Организация пакетной обработки задачи по снятия изображений с экрана графика
  • 2018.04.15
  • www.mql5.com
Встала у меня задача доработать скрипт https://www.mql5.com/ru/code/936 , который делает скрины...