- www.mql5.com
Ребят, вы чего?
Это же обычный индикатор.
В подокне (и растянуть его повыше) или на основном графике, скрыв свечи (но тогда с той же шкалой).
Ребят, вы чего?
Это же обычный индикатор.
В подокне (и растянуть его повыше) или на основном графике, скрыв свечи (но тогда с той же шкалой).
Если на канве, то тогда нет зависимости от горизонтальной шкалы графика и можно уместить все данные по ширине окна/подокна.
P.S. Правда там есть один неприятный моментик, который пока придётся исправлять самостоятельно (в стандартной библиотеке), но кто говорил, что будет легко. )
- www.mql5.com
Если на канве, то тогда нет зависимости от горизонтальной шкалы графика и можно уместить все данные по ширине окна/подокна.
P.S. Правда там есть один неприятный моментик, который пока придётся исправлять самостоятельно (в стандартной библиотеке), но кто говорил, что будет легко. )
Так человеку не надо чего-то сверх-сложного, он же написал:
есть ЦВР (вообще любой ряд), применяем к нему опр. фильтр (изменяем) и хотим отобразить измененную версию
Это HeikenAshi. В более сложном случае (со своей шкалой) - в отдельном подокне.
P.S. Правда там есть один неприятный моментик, который пока придётся исправлять самостоятельно (в стандартной библиотеке), но кто говорил, что будет легко. )
что за моментик, ты о чём ? подробнее можно ?
Я об использовании графиков из стандартной библиотеки. Легко обнаружить в динамике при поступлении новых данных. Постоянно происходит смещение серий от правой части графика построенного на канве. Частично удалось решить (победил пока только смещение, которое доходит до полного исчезновения серий), но нужно ещё корректировать алгоритм сжатия, так как при поступлении большего количества данных или при уменьшении ширины графика-канвы, серии становятся "пушистыми".
То есть, вот так нормально:
//---
...а вот так уже нет:
//---
Пока занят другими задачами, но потом нужно решить. )
В Сервисдеске всё это уже подробно осветил и даже есть одобрение. Выложу здесь тоже список предложений, см. ниже. Просто разработчики сейчас видимо более важные задачи выполняют, так что мы наедине со своими запросами. :)
Предложения и замечания по построению диаграмм:
1. При увеличении массива данных происходит смещение от правого края графика.
2. В какой-то момент (зависит от ширины графика), если данных становится довольно много, то они просто не отображаются. Данных может понадобиться отобразить очень много. Пусть будет ограничение, как в Excel. То есть, насколько хватит оперативной памяти.
3. Предлагаю добавить метод ScaleDigits() в класс CChartCanvas:
//+------------------------------------------------------------------+ //| Set scale digits | //+------------------------------------------------------------------+ void CChartCanvas::ScaleDigits(int value) { m_scale_digits=value; }
4. Предлагаю дать выбор пользователю, какой метод для отрисовки серий использовать.
На текущий момент используется метод LineAA(), но кому-то может понадобиться Line(). Line() более чёткий. Что-то вроде этого по смыслу: chart.ModeDrawLine(LINE_AA); или chart.ModeDrawLine(LINE);
5. То же самое и со стилем линии для сетки в методе DrawGrid(). Нужно примерно так:
- chart.DrawGridStyle(STYLE_DOT);
- chart.DrawGridStyle(STYLE_DASH);
- chart.DrawGridStyle(STYLE_SOLID);
6. Нужно добавить горизонтальную шкалу, а также возможность показывать вертикальные полосы сетки. Значения для шкалы желательно тоже настраивать. То есть, устанавливать их либо около оси, либо внизу области построения.
7. Непонятно, что должен делать метод DataOffset(). При изменении значения ничего не меняется.
8. Нужен метод для изменения толщины линии.
9. Сейчас есть возможность задавать цвет фона для области диаграммы. Нужно ещё отдельно задавать цвет для области построения.
10. Нужна заливка градиентом. Для начала линейный для прямоугольников. Это очень преобразит внешний вид диаграмм. Также для диаграмм типа гистограмма тоже желательно сделать метод заливки градиентом для столбиков гистограммы.
11. Нужны более гибкие настройки для легенды. Сейчас это довольно большие квадраты. Нужна возможность настраивать размер, а может даже и форму (кружки, линии, треугольники).
12. Сейчас есть возможность установить рамку для области диаграммы. Нужно отдельно ещё настраивать рамку для области построения. Сейчас цвет для рамки области построения общий с цветом текста вертикальной шкалы и самой оси. В общем, нужно вот так:
- Цвет для текста шкалы настраивается отдельно.
- Цвет для рамки области построения тоже отдельно. Сейчас рамка устанавливается для каждой стороны отдельно методами ShowScaleTop(), ShowScaleBottom(). Это неудобно. Нужно устанавливать сразу все по всем сторонам, а отображение шкалы уже устанавливается сверху методами ShowScaleRight() и ShowScaleLeft().
- Цвет шкалы тоже нужно настраивать отдельно.
13. Максимум и минимум области построения конечно желательно, чтобы подстраивался автоматом в зависимости от максимального и минимального значения в сериях.
14. Для каждого значения отображать маркер, как в Excel. Это может быть фигура на выбор (кружок, квадрат, треугольник).
Предлагайте свои идеи по этой теме.
- www.mql5.com
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Приветы,
Вопрос : как вы обычно визуализируете данные, более конкретно - есть ЦВР (вообще любой ряд), применяем к нему опр. фильтр (изменяем) и хотим отобразить измененную версию - как это сделать?
Варианты, которые точно возможны, но не очень удобны :
- писать измененные значения в файл в формате CSV и открывать в Excel
- писать свою DLL с графикой
Но интересней всего - можно ли это сделать стандартными средствами МТ5, т.е. открыть окно, в котором ничего не рисуется, есть только ось Х - время, ось У - цена и, передав этому окну свои значения, получить график измененного ЦВР?