Как получить размер текста в свече?

 

Я хочу знать, как получить размер текста, нарисованного на терминале, в единицах свечей.

Я знаю функцию TextGetSize (). Но это дает результат в пикселях.

Пожалуйста, предложите мне, что я могу сделать

 
jaffer wilson:

Я хочу знать, как получить размер текста, нарисованного на терминале, в единицах свечей.

Я знаю функцию TextGetSize (). Но это дает результат в пикселях.

Пожалуйста, предложите мне, что я могу сделать

Что такое "единицы свечей"?

 
Ihor Herasko:

Что такое "единицы свечей"?

Например, вывели надпись на графике "Получен стоплосс, остановка эксперта". И понять сколько свечей перекроет эта надпись. Видимо, это имелось ввиду.
 
В терминале 5 ступеней увеличения масштаба графика. На каждой ступени ширина свечи в пикселах разная, при этом размер текста не меняется. Подумайте, что Вы хотите получить.
 
Vasiliy Pushkaryov:
Например, вывели надпись на графике "Получен стоплосс, остановка эксперта". И понять сколько свечей перекроет эта надпись. Видимо, это имелось ввиду.

Для этого нужно еще и цену учитывать. Свечи на графике не всю его площадь занимают. Можно вывести надпись так, что она вообще не будет ни одну из свечей перекрывать.

 
Ihor Herasko:

Для этого нужно еще и цену учитывать. Свечи на графике не всю его площадь занимают. Можно вывести надпись так, что она вообще не будет ни одну из свечей перекрывать.

Я понял так, что не обязательно текст должен касаться свечи. Просто надо посчитать с какой свечи надо рисовать объект чтобы текст заканчивался на правой крайней свече в текущий момент. Хотя для этого достаточно поменять точку привязки и назначить время текущей свечи. Не знаю что конкретно надо.

 
Я хочу знать секунды размера текста. Я имею в виду горизонтальное расстояние, которое покрывает текстовый объект. Я хочу знать в секундах, а не в пикселях. TextGetSize () дает ширину в пикселях.
 
jaffer wilson:
Я хочу знать секунды размера текста. Я имею в виду горизонтальное расстояние, которое покрывает текстовый объект. Я хочу знать в секундах, а не в пикселях. TextGetSize () дает ширину в пикселях.

Время в МТ дискретно, не получится. Если бы время было не дискретно, то можно было бы соотнести разность левой и правой границ графика по времени с шириной графика в пикселях. Обычная пропорция.

Хотя думаю, что вряд ли Вам нужно знать количество секунд. Наверное, все-таки, количество свечей. А эта задача решается элементарно - пропорцией (количество свечей на графике относится к ширине графика в пикселях).

 

Допустим, ширину текста в пикселях определили. Значит, теперь надо перевести пиксели в бары. Ширина графика в пикселях известна, в барах тоже известна.

https://www.mql5.com/ru/docs/chart_operations/chartgetinteger с идентификаторами CHART_WIDTH_IN_BARS, CHART_WIDTH_IN_PIXELS

А еще можно то масштаба танцевать - от CHART_SCALE.

 
Dmitry Fedoseev:

А еще можно то масштаба танцевать - от CHART_SCALE.

Я тоже так подумал, но эксперимент показал не равное расстояние между свечами.

void OnStart()
 {
  long ChartScaleGet = ChartGetInteger(ChartID(), CHART_SCALE);
  int x1, x2, y;
  ChartTimePriceToXY(ChartID(), 0, D'2020.08.21 21:33:00', 0, x1, y);
  ChartTimePriceToXY(ChartID(), 0, D'2020.08.21 21:34:00', 0, x2, y);
  Print("ChartScaleGet ", ChartScaleGet);
  Print("x2—x1 ", x2-x1);

 }/******************************************************************/

На минутном графике

  /*
  2020.08.24 09:55:28.823 00 (GOLD-9.20,M1) ChartScaleGet 0
  2020.08.24 09:55:28.823 00 (GOLD-9.20,M1) x2—x1 1
  2020.08.24 09:55:32.824 00 (GOLD-9.20,M1) ChartScaleGet 1
  2020.08.24 09:55:32.824 00 (GOLD-9.20,M1) x2—x1 2
  2020.08.24 09:55:35.853 00 (GOLD-9.20,M1) ChartScaleGet 2
  2020.08.24 09:55:35.853 00 (GOLD-9.20,M1) x2—x1 4
  2020.08.24 09:55:39.068 00 (GOLD-9.20,M1) ChartScaleGet 3
  2020.08.24 09:55:39.068 00 (GOLD-9.20,M1) x2—x1 8
  2020.08.24 09:55:41.714 00 (GOLD-9.20,M1) ChartScaleGet 4
  2020.08.24 09:55:41.714 00 (GOLD-9.20,M1) x2—x1 16
  2020.08.24 09:55:44.299 00 (GOLD-9.20,M1) ChartScaleGet 5
  2020.08.24 09:55:44.299 00 (GOLD-9.20,M1) x2—x1 32
  */
как-то очень похоже на флаги. Может и можно этим ориентироваться, но не проверял…
 
Alexey Viktorov:

Я тоже так подумал, но эксперимент показал не равное расстояние между свечами.

На минутном графике

как-то очень похоже на флаги. Может и можно этим ориентироваться, но не проверял…

Анекдот про слоненка?

Причина обращения: