Что такое "чать", я не знаю, но смысл понятен. Проблема в
том, что точки надо ставить автоматически, т.е. придется придумывать
функцию, считающую количество пробелов. Ну, короче, смысл ясен:
точно это сделать нельзя.
И все же, знатоки WinAPI, откликнитесь! Неужели таки ничего не сделать?
Mathemat, твоя проблема решается очень просто - рисованием на меньшем
таймфреме. Отмечаешь значками быры начало баров старших таймфреймов
и можешь ставить значки "между ними"
Понятно, Integer. Этот прием я уже использую для уточнения времени экстремумов,
рисуемых Зигзагом на более крупном ТФ (скажем, рисую Зигзаг
на 4Н и ищу экстремум 4-часового бара внутри его, рассматривая
5-минутные бары). Вот на этом же крупном ТФ я и мечтал поставить точечки.
Короче, я уже расслабился: в конечном счете эти точечки мне были
нужны только для визуальной проверки моего алгоритма, т.е. играют
скорее интерфейсную роль.
Integer писал (а): Mathemat, твоя проблема решается очень просто - рисованием на меньшем
таймфреме. Отмечаешь значками быры начало баров старших таймфреймов
и можешь ставить значки "между ними"
Эти точки при переходе на более старший таймфрейм слипнутся
на баре старшего таймфрейма, к которому относится интервал
времени младшего таймфрейма. МТ4 не будет делать пересчётов
координат по времени для старшего таймфрейма.
Integer писал (а): Mathemat, твоя проблема решается очень просто - рисованием на меньшем
таймфреме. Отмечаешь значками быры начало баров старших таймфреймов
и можешь ставить значки "между ними"
Эти точки при переходе на более старший таймфрейм слипнутся
на баре старшего таймфрейма, к которому относится интервал
времени младшего таймфрейма. МТ4 не будет делать пересчётов
координат по времени для старшего таймфрейма.
Потому и предлагаю пользоваться меньшим таймфреймом. Зачем
штаны через голову одевать?
komposter писал (а):
Можно попробовать объект "Текст" с дискрипшином типа "
*". Т. е. за счет ширины пробелов перенести точку на чать бара.
Пока это единственное предложение, приблизительно решающее
проблему нецелого барового смещения. Проблема тут в том, что
текстовый объект не масштабируется вместе с изменением ТФ и
расстояния между барами в пикселах. Очевидно, количество пробелов надо вычислять.
Кнопочки, изменяющие расстояние между барами, имеются (Zoom in/out), но программного доступа к этому параметру нет. Единственное,
что есть, - это функция WindowBarsPerChart(), которая позволяет это расстояние вычислить - но только при
условии, что нам известен горизонтальный размер окна чарта
в пикселах (ширина окна не фиксирована).
Может быть, метаквоты подумают о том, чтобы ввести программный
доступ либо к расстоянию между барами на текущем чарте, либо
к горизонтальному размеру окна в пикселах? В WinUser32.mqh функции, возвращающей горизонтальный размер окна,
не видно.
Может быть, метаквоты подумают о том, чтобы ввести программный
доступ либо к расстоянию между барами на текущем чарте, либо
к горизонтальному размеру окна в пикселах?
Горизонтальный размер окна можно получить и сечас. Вопрос в
том как барам привязаться.
Горизонтальный размер окна можно получить и сечас. Вопрос в
том как барам привязаться.
Стандартно, через координаты текстового объекта, которые как
раз к барам и привязаны. Количество пробелов, моделирующих нецелую
часть барового смещения X, можно вычислять примерно так:
Дробь - это как раз и есть расстояние между барами на текущем
чарте в пикселах с небольшой погрешностью. В скобках - дробная
часть числа Х. Константа Const подбирается экспериментально и
переводит пиксели в количество пробелов. Она, естественно, зависит
от размера и типа шрифта, который будет жестко заданным.
Кстати, WindowBarsPerChart() возвращает не фактическое число баров на чарте с учетом сдвига
чарта влево, а именно максимально возможное, т.е. когда все окно
ими полностью заполнено. Я это проверил.
Я прекрасно понимаю, что надеваю штаны через голову, но за неимением
готового инструментария приходится этим заниматься...
P.S. А объект, который можно точно поставить на чарт, все же есть.
Это OBJ_LABEL. Но вот привязать его к барам - это уже проблема... Вот было бы здорово, если бы метаквоты
ввели функции типа int WindowGetX( int datetime, int anchor) иint WindowGetY( double price, int anchor), возвращающие пиксельное смещение относительно якорной точки,
- и соответственно "обратные" им... Вот тогда эта дурацкая
тема будет исчерпана.
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
И все же, знатоки WinAPI, откликнитесь! Неужели таки ничего не сделать?
Что такое "чать", я не знаю, но смысл понятен.
Короче, я уже расслабился: в конечном счете эти точечки мне были нужны только для визуальной проверки моего алгоритма, т.е. играют скорее интерфейсную роль.
Mathemat, твоя проблема решается очень просто - рисованием на меньшем таймфреме. Отмечаешь значками быры начало баров старших таймфреймов и можешь ставить значки "между ними"
Эти точки при переходе на более старший таймфрейм слипнутся на баре старшего таймфрейма, к которому относится интервал времени младшего таймфрейма. МТ4 не будет делать пересчётов координат по времени для старшего таймфрейма.
Mathemat, твоя проблема решается очень просто - рисованием на меньшем таймфреме. Отмечаешь значками быры начало баров старших таймфреймов и можешь ставить значки "между ними"
Эти точки при переходе на более старший таймфрейм слипнутся на баре старшего таймфрейма, к которому относится интервал времени младшего таймфрейма. МТ4 не будет делать пересчётов координат по времени для старшего таймфрейма.
Потому и предлагаю пользоваться меньшим таймфреймом. Зачем штаны через голову одевать?
Можно попробовать объект "Текст" с дискрипшином типа " *". Т. е. за счет ширины пробелов перенести точку на чать бара.
Кнопочки, изменяющие расстояние между барами, имеются (Zoom in/out), но программного доступа к этому параметру нет. Единственное, что есть, - это функция WindowBarsPerChart(), которая позволяет это расстояние вычислить - но только при условии, что нам известен горизонтальный размер окна чарта в пикселах (ширина окна не фиксирована).
Может быть, метаквоты подумают о том, чтобы ввести программный доступ либо к расстоянию между барами на текущем чарте, либо к горизонтальному размеру окна в пикселах? В WinUser32.mqh функции, возвращающей горизонтальный размер окна, не видно.
Может быть, метаквоты подумают о том, чтобы ввести программный доступ либо к расстоянию между барами на текущем чарте, либо к горизонтальному размеру окна в пикселах?
Горизонтальный размер окна можно получить и сечас. Вопрос в том как барам привязаться.
Горизонтальный размер окна можно получить и сечас. Вопрос в том как барам привязаться.
Стандартно, через координаты текстового объекта, которые как раз к барам и привязаны. Количество пробелов, моделирующих нецелую часть барового смещения X, можно вычислять примерно так:
Число_пробелов = Const * ( X - MathFloor(X) ) * Горизонтальный_размер_окна / WindowBarsPerChart()
Дробь - это как раз и есть расстояние между барами на текущем чарте в пикселах с небольшой погрешностью. В скобках - дробная часть числа Х. Константа Const подбирается экспериментально и переводит пиксели в количество пробелов. Она, естественно, зависит от размера и типа шрифта, который будет жестко заданным.
Кстати, WindowBarsPerChart() возвращает не фактическое число баров на чарте с учетом сдвига чарта влево, а именно максимально возможное, т.е. когда все окно ими полностью заполнено. Я это проверил.
Я прекрасно понимаю, что надеваю штаны через голову, но за неимением готового инструментария приходится этим заниматься...
P.S. А объект, который можно точно поставить на чарт, все же есть. Это OBJ_LABEL. Но вот привязать его к барам - это уже проблема... Вот было бы здорово, если бы метаквоты ввели функции типа int WindowGetX( int datetime, int anchor) и int WindowGetY( double price, int anchor), возвращающие пиксельное смещение относительно якорной точки, - и соответственно "обратные" им... Вот тогда эта дурацкая тема будет исчерпана.
Я бы просто на твоем месте поступил - сверху над баром текст, а в нем написано в какой момент времени бара образовался максимум.