
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
И все же, знатоки 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), возвращающие пиксельное смещение относительно якорной точки, - и соответственно "обратные" им... Вот тогда эта дурацкая тема будет исчерпана.
Я бы просто на твоем месте поступил - сверху над баром текст, а в нем написано в какой момент времени бара образовался максимум.