Erreurs, bugs, questions - page 2194

 
Dmytro Zelenskyy:

Même si vous calculez la largeur exacte de l'écran en pixels, l'écran couvrira partiellement la colonne de prix.

Et sur différentes résolutions d'écran c'est différent, chez moi (1280x1024) de 50 à 60 dépend du nombre de chiffres de la monnaie. Sur l'autre écran, ce sera différent.

C'est ainsi que l'on peut déterminer la largeur de la colonne, en ajoutant ces pixels à la largeur de l'écran ? (ouvrir dans la capture d'écran ce que la colonne a fermé)


Salut 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:

Salutations de fxsaber :

L'affaire bat le maître ! !!

Cool !

 
Artyom Trishkin:

Bonjour de fxsaber :

Le code est certes très intéressant, mais il s'avère qu'il ne résout pas le problème...

 
Le problème est qu'il n'est pas clair comment obtenir une fonction universelle (fonctionnant avec n'importe quel zoom et différentes largeurs d'échelle) qui puisse être utilisée pour déterminer le nombre de pixels jusqu'à et y compris une barre spécifique.
 
Aleksey Vyazmikin:
Le problème est qu'il n'est pas clair comment obtenir une fonction universelle (qui fonctionne avec n'importe quel zoom et différentes largeurs d'échelle) qui peut être utilisée pour déterminer le nombre de pixels jusqu'à et y compris une barre spécifique.

Allez. Tous les indices sont .
La largeur de la barre n'accepte que les valeurs 1,2,4,8,16,32.

Curieusement, l'identifiant CHART_POINTS_PER_BAR ne fonctionne pas.

Mais la largeur de la barre en pixels peut facilement être calculée :

int WidthBar=int(1<<ChartGetInteger(0,CHART_SCALE));
La barre de gauche est toujours dessinée à partir du centre, la barre de droite à volonté. Par conséquent, l'origine des coordonnées est à zéro (à gauche).
 
Nikolai Semko:

Allez. Tous les choix sont ici.
La largeur de la barre n'accepte que les valeurs 1, 2, 4, 8, 16 et 32.

Curieusement, l'identifiant CHART_POINTS_PER_BAR ne fonctionne pas.

Mais la largeur de la barre en pixels peut facilement être calculée :

La barre de gauche est toujours dessinée à partir du centre, la barre de droite à volonté. Par conséquent, l'origine des coordonnées est à zéro (à gauche).

C'est une théorie, jusqu'à présent la meilleure (plus précise) version est la suivante :

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

mais il échoue aussi de plusieurs façons.

 
Aleksey Vyazmikin:

C'est une théorie, jusqu'à présent la meilleure (plus précise) option est celle-ci :

mais il échoue également par paires.

:))
Énoncez clairement le problème. Quelle valeur voulez-vous obtenir ?
 
Nikolai Semko:
:))
Énoncez clairement le problème. Quelle valeur voulez-vous obtenir ?

J'ai besoin d'une capture d'écran de la date A à la date B incluse. Et la fonction devrait fonctionner correctement à n'importe quel zoom.

 

Sur la base de la capture d'écran, j'ai créé un fil de discussion distinct dans lequel j'ai décrit le problème et posté le code que j'ai. Je demande aux experts de m'aider !

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

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

Salutations de fxsaber :

Pouvons-nous voir une image - que fait-il (le code) ?

Raison: