Erros, bugs, perguntas - página 2194

 
Dmytro Zelenskyy:

Abordagem séria))

Bem, então, na que quer examinar, execute uma vez um pequeno guião, que dá id numa variável global (de preferência uma variável global temporária).

E os seus ecrãs de guião por id.

Jogada inteligente!

Obrigado!
 
Dmytro Zelenskyy:

Mesmo se calcular a largura exacta do ecrã em pixels, o ecrã cobrirá parcialmente a coluna de preços.

E em diferentes resoluções de ecrã é diferente, comigo (1280x1024) de 50 a 60, dependendo do número de dígitos da moeda. No outro ecrã será diferente.

É assim que descobrir qual a largura da coluna para adicionar estes pixels à largura do ecrã? (abrir na imagem do ecrã o que a coluna fechou)


Olá 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:

Saudações do fxsaber:

O caso bate o mestre!!!

Fixe!

 
Artyom Trishkin:

Olá de fxsaber:

O código é certamente muito interessante, mas acaba por não resolver o problema...

 
O problema é que não é claro como obter uma função universal (trabalhando com qualquer zoom e diferentes larguras de escala) que possa ser usada para determinar o número de pixels até e incluindo uma barra específica.
 
Aleksey Vyazmikin:
O problema é que não é claro como obter uma função universal (que funcione com qualquer zoom e diferentes larguras de escala) que possa ser utilizada para determinar o número de pixels até e incluindo uma barra específica.

Vá lá. Todas as pistas estão .
A largura da barra só aceita os valores 1,2,4,8,16,32

Estranhamente, o identificador CHART_POINTS_PER_BAR não funciona.

Mas a largura da barra em pixels pode ser facilmente calculada:

int WidthBar=int(1<<ChartGetInteger(0,CHART_SCALE));
A barra esquerda é sempre retirada do centro, a barra direita como desejado. Portanto, a origem das coordenadas está a zero (esquerda).
 
Nikolai Semko:

Vá lá. Todas as escolhas estão aqui.
A largura da barra só aceita valores de 1,2,4,8,16,32

Estranhamente, o identificador CHART_POINTS_PER_BAR não funciona.

Mas a largura da barra em pixels pode ser facilmente calculada:

A barra esquerda é sempre puxada do centro, a barra direita como desejado. Portanto, a origem das coordenadas está a zero (esquerda).

Esta é uma teoria, até agora a melhor versão (mais precisa) é esta:

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

mas também falha de algumas maneiras.

 
Aleksey Vyazmikin:

Esta é uma teoria, até agora a melhor opção (mais precisa) é esta:

mas também falha em pares.

:))
Formular o problema de forma clara. Que valor pretende obter?
 
Nikolai Semko:
:))
Diga claramente qual é o problema. Que valor pretende obter?

Preciso de uma captura de ecrã desde a data A até à data B inclusive. E a função deve funcionar correctamente em qualquer zoom.

 

Com base na imagem do ecrã, fiz um tópico separado onde descrevi o problema e afixei o código que tenho - estou a pedir a ajuda dos peritos!

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

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