Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Здравствуйте!
Мне нужно во время визуального тестирования посмотреть графически, как изменяется значение определенной переменной на каждом баре, т.е. нужно строить отдельный график в подокне. Например, я хочу видеть график изменения эквити на каждом баре в отдельном окне под графиком.
Как мне это лучше сделать? Писать индикатор, присоединять к графику и передавать ему значения переменных из эксперта через глобальные переменные терминала? Или есть более "красивый" способ?
Заранее, спасибо.
Здравствуйте!
Мне нужно во время визуального тестирования посмотреть графически, как изменяется значение определенной переменной на каждом баре, т.е. нужно строить отдельный график в подокне. Например, я хочу видеть график изменения эквити на каждом баре в отдельном окне под графиком.
Как мне это лучше сделать? Писать индикатор, присоединять к графику и передавать ему значения переменных из эксперта через глобальные переменные терминала? Или есть более "красивый" способ?
Заранее, спасибо.
Совсем нет, вы можете получать значения еквити или баланса прямо в индикаторе.
Задайте параметры отрисовки буфера индикатора как барный график.
и пишите в соответственные буфера все четыре значения,
опен при открытии бара, хай лоу и клосе динамично (последнем баре).
короче как то вот так: в прикрепе
можно конечно и абсолютное значение (закоментированный вариант), но думаю что на нём плохо будет видно маленькие начальные приращения, так что имхо разница между начальными средствами и текущими прикольнее.
ЗЫ а хотя нет, там же шкала динамичная так что можно и второй вариант, вполне читабельно.
Совсем нет, вы можете получать значения еквити или баланса прямо в индикаторе.
Задайте параметры отрисовки буфера индикатора как барный график.
и пишите в соответственные буфера все четыре значения,
опен при открытии бара, хай лоу и клосе динамично (последнем баре).
OBJ_LABEL на чарт выведите.
Еще можно почитать тут:
https://www.mql5.com/ru/forum/1111/40260#comment_40260
https://www.mql5.com/ru/forum/2963
Значения эквити и баланса - да, а если я хочу видеть значение переменной, рассчитываемой в эксперте?
Через пользовательское событие можно отправить, только нужно не забыть обновить после в эвенте чарт,
а то ведь тик приходит раньше чем обработается событие, в порядке очереди.
ЗЫ хотя можно и через глобалы, но таже проблема тик уже пришёл а переменная ещё в советнике обрабатывается (готовятся её изменения), конечно данные дойдут, но будет задержка на один тик, всё таки в евенте будет корректней, там есть где поставить обновление чарта постфактум когда уже точно известно что переменная имеет актуальные данные.
Вот такой вот код не компилируется с ошибкой "'return' - structure have objects and cannot be copied" из-за сторки "CTest getCopy(void) {CTest res; return res;}"
Это можно исправить 2 способами:
1) изменить "class" на "struct"
2) раскомментировать стоку с перегруженным оператором присваивания
То есть так и должно быть что роль копирующего конструктора выполняет перегруженный оператор присваивания? Почему тогда это не указано в справочнике кроме одного примера класса матрицы(детальный разбор которого кстати и позволил мне найти ошибку в своем коде)?
Вот такой вот код не компилируется с ошибкой "'return' - structure have objects and cannot be copied" из-за сторки "CTest getCopy(void) {CTest res; return res;}"
Это можно исправить 2 способами:
1) изменить "class" на "struct"
См. выше.
2) раскомментировать стоку с перегруженным оператором присваивания
Ну естественно. Перегруженный оператор возвращает хендл-указатель, а это нормально. Теперь из функции getCopy() возвращается уже не объект, а указатель (возврат из функции - неявное присваивание), что делает код правильным.
// Только синтаксически правильным.
// Возврат неинициализированной переменной из функции getCopy(), надеюсь, служит лишь для демонстрации синтаксической проблемы, и не претендует на разумность.
То есть так и должно быть что роль копирующего конструктора выполняет перегруженный оператор присваивания?
Почему тогда это не указано в справочнике кроме одного примера класса матрицы(детальный разбор которого кстати и позволил мне найти ошибку в своем коде)?
Потому что динозавр Вася 11 февраля 2096785 года до рождения Христова неаккуратно наступил на ящерицу Клаву. Это повлекло за собой длинную цепь причин и следствий которые и привели к текущей ситуации. Ничего не поделаешь.
;)
А зачем ее инициализировать? Это же экземпляр класса у которого есть конструктор как раз для этого.
Ээээ... Причём здесь роли? Можно и оператор присваивания перегрузить как угодно, и копирующий конструктор правильно написать. У вас ошибка в другом месте совсем.
И как же тогда правильно написать копирующий конструктор для этой цели?