Я хочу знать, как получить размер текста, нарисованного на терминале, в единицах свечей.
Я знаю функцию TextGetSize (). Но это дает результат в пикселях.
Пожалуйста, предложите мне, что я могу сделать
Что такое "единицы свечей"?
Что такое "единицы свечей"?
Например, вывели надпись на графике "Получен стоплосс, остановка эксперта". И понять сколько свечей перекроет эта надпись. Видимо, это имелось ввиду.
Для этого нужно еще и цену учитывать. Свечи на графике не всю его площадь занимают. Можно вывести надпись так, что она вообще не будет ни одну из свечей перекрывать.
Для этого нужно еще и цену учитывать. Свечи на графике не всю его площадь занимают. Можно вывести надпись так, что она вообще не будет ни одну из свечей перекрывать.
Я понял так, что не обязательно текст должен касаться свечи. Просто надо посчитать с какой свечи надо рисовать объект чтобы текст заканчивался на правой крайней свече в текущий момент. Хотя для этого достаточно поменять точку привязки и назначить время текущей свечи. Не знаю что конкретно надо.
Я хочу знать секунды размера текста. Я имею в виду горизонтальное расстояние, которое покрывает текстовый объект. Я хочу знать в секундах, а не в пикселях. TextGetSize () дает ширину в пикселях.
Время в МТ дискретно, не получится. Если бы время было не дискретно, то можно было бы соотнести разность левой и правой границ графика по времени с шириной графика в пикселях. Обычная пропорция.
Хотя думаю, что вряд ли Вам нужно знать количество секунд. Наверное, все-таки, количество свечей. А эта задача решается элементарно - пропорцией (количество свечей на графике относится к ширине графика в пикселях).
Допустим, ширину текста в пикселях определили. Значит, теперь надо перевести пиксели в бары. Ширина графика в пикселях известна, в барах тоже известна.
https://www.mql5.com/ru/docs/chart_operations/chartgetinteger с идентификаторами CHART_WIDTH_IN_BARS, CHART_WIDTH_IN_PIXELS
А еще можно то масштаба танцевать - от CHART_SCALE.
А еще можно то масштаба танцевать - от 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
*/
как-то очень похоже на флаги. Может и можно этим ориентироваться, но не проверял…
Я тоже так подумал, но эксперимент показал не равное расстояние между свечами.
На минутном графике
как-то очень похоже на флаги. Может и можно этим ориентироваться, но не проверял…Анекдот про слоненка?
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Я хочу знать, как получить размер текста, нарисованного на терминале, в единицах свечей.
Я знаю функцию TextGetSize (). Но это дает результат в пикселях.
Пожалуйста, предложите мне, что я могу сделать