Хочу поставить точку на чарт - страница 2

 
Что такое "чать", я не знаю, но смысл понятен. Проблема в том, что точки надо ставить автоматически, т.е. придется придумывать функцию, считающую количество пробелов. Ну, короче, смысл ясен: точно это сделать нельзя.

И все же, знатоки WinAPI, откликнитесь! Неужели таки ничего не сделать?
 
Mathemat:
Что такое "чать", я не знаю, но смысл понятен.
часть ;)
 
Mathemat, твоя проблема решается очень просто - рисованием на меньшем таймфреме. Отмечаешь значками быры начало баров старших таймфреймов и можешь ставить значки "между ними"
 
Понятно, Integer. Этот прием я уже использую для уточнения времени экстремумов, рисуемых Зигзагом на более крупном ТФ (скажем, рисую Зигзаг на 4Н и ищу экстремум 4-часового бара внутри его, рассматривая 5-минутные бары). Вот на этом же крупном ТФ я и мечтал поставить точечки.

Короче, я уже расслабился: в конечном счете эти точечки мне были нужны только для визуальной проверки моего алгоритма, т.е. играют скорее интерфейсную роль.
 
Integer писал (а):
Mathemat, твоя проблема решается очень просто - рисованием на меньшем таймфреме. Отмечаешь значками быры начало баров старших таймфреймов и можешь ставить значки "между ними"

Эти точки при переходе на более старший таймфрейм слипнутся на баре старшего таймфрейма, к которому относится интервал времени младшего таймфрейма. МТ4 не будет делать пересчётов координат по времени для старшего таймфрейма.
 
solandr писал (а):
Integer писал (а):
Mathemat, твоя проблема решается очень просто - рисованием на меньшем таймфреме. Отмечаешь значками быры начало баров старших таймфреймов и можешь ставить значки "между ними"

Эти точки при переходе на более старший таймфрейм слипнутся на баре старшего таймфрейма, к которому относится интервал времени младшего таймфрейма. МТ4 не будет делать пересчётов координат по времени для старшего таймфрейма.

Потому и предлагаю пользоваться меньшим таймфреймом. Зачем штаны через голову одевать?
 
komposter писал (а):
Можно попробовать объект "Текст" с дискрипшином типа " *". Т. е. за счет ширины пробелов перенести точку на чать бара.
Пока это единственное предложение, приблизительно решающее проблему нецелого барового смещения. Проблема тут в том, что текстовый объект не масштабируется вместе с изменением ТФ и расстояния между барами в пикселах. Очевидно, количество пробелов надо вычислять.

Кнопочки, изменяющие расстояние между барами, имеются (Zoom in/out), но программного доступа к этому параметру нет. Единственное, что есть, - это функция WindowBarsPerChart(), которая позволяет это расстояние вычислить - но только при условии, что нам известен горизонтальный размер окна чарта в пикселах (ширина окна не фиксирована).

Может быть, метаквоты подумают о том, чтобы ввести программный доступ либо к расстоянию между барами на текущем чарте, либо к горизонтальному размеру окна в пикселах? В WinUser32.mqh функции, возвращающей горизонтальный размер окна, не видно.
 
Mathemat писал (а):

Может быть, метаквоты подумают о том, чтобы ввести программный доступ либо к расстоянию между барами на текущем чарте, либо к горизонтальному размеру окна в пикселах?

Горизонтальный размер окна можно получить и сечас. Вопрос в том как барам привязаться.
 
Integer писал (а):

Горизонтальный размер окна можно получить и сечас. Вопрос в том как барам привязаться.

Стандартно, через координаты текстового объекта, которые как раз к барам и привязаны. Количество пробелов, моделирующих нецелую часть барового смещения X, можно вычислять примерно так:

Число_пробелов = Const * ( X - MathFloor(X) ) * Горизонтальный_размер_окна / WindowBarsPerChart()

Дробь - это как раз и есть расстояние между барами на текущем чарте в пикселах с небольшой погрешностью. В скобках - дробная часть числа Х. Константа Const подбирается экспериментально и переводит пиксели в количество пробелов. Она, естественно, зависит от размера и типа шрифта, который будет жестко заданным.

Кстати, WindowBarsPerChart() возвращает не фактическое число баров на чарте с учетом сдвига чарта влево, а именно максимально возможное, т.е. когда все окно ими полностью заполнено. Я это проверил.

Я прекрасно понимаю, что надеваю штаны через голову, но за неимением готового инструментария приходится этим заниматься...

P.S. А объект, который можно точно поставить на чарт, все же есть. Это OBJ_LABEL. Но вот привязать его к барам - это уже проблема... Вот было бы здорово, если бы метаквоты ввели функции типа int WindowGetX( int datetime, int anchor) и int WindowGetY( double price, int anchor), возвращающие пиксельное смещение относительно якорной точки, - и соответственно "обратные" им... Вот тогда эта дурацкая тема будет исчерпана.
 
Еще есть отступ справа. Получение ширины окна не поможет. У текстового объекта координты х у не получить.

Я бы просто на твоем месте поступил - сверху над баром текст, а в нем написано в какой момент времени бара образовался максимум.
Причина обращения: