Попробуйте так ObjectCreate("Sell_Level",OBJ_HLINE,WinHandle_240,0,Sell_Level);
===================
bool ObjectCreate( string name, int type, int window, datetime time1, double price1, datetime time2=0, double price2=0, datetime time3=0, double price3=0)
Создание объекта с указанным именем, тип и начальные координаты в указанном подокне графика. Число координат, связываемых с объектом, может быть от 1 до 3 в зависимости от типа. При успешном создании объекта функция возвращает TRUE, иначе FALSE. Чтобы получить дополнительную информацию об ошибке, необходимо вызвать функцию GetLastError().
Объекты с типом OBJ_LABEL игнорируют координаты. Используйте функцию ObjectSet() для установки свойств OBJPROP_XDISTANCE и OBJPROP_YDISTANCE.
Замечания: нумерация подокон графика (если на графике есть подокна с индикаторами) начинается с 1. Главное окно графика есть всегда и имеет индекс 0.
Координаты должны передаваться парами - время и цена. Для примера, объекту OBJ_VLINE требуется только время, но также нужно передать и цену (любое значение).
Параметры:
name - Уникальное имя объекта.
type - Тип объекта. Может быть любым из типов объектов.
window - Индекс окна, в которое будет добавлен объект. Индекс окна должен быть большим или равным 0 и меньшим, чем WindowsTotal().
time1 - Время первой координаты.
price1 - Цена первой координаты.
time2 - Время второй координаты.
price2 - Цена второй координаты.
time3 - Время третьей координаты.
price3 - Цена третьей координаты.
Попробуйте так ObjectCreate("Sell_Level",OBJ_HLINE,WinHandle_240,0,Sell_Level);
===================
К сожалению, так ничего не получается. В функции ObjectCreate() window –это индекс окна, в которое будет добавлен объект. Это окно индикатора та том же timeframe, где и эксперт работает. А мне надо как-то обратиться к окну другого timeframe.
Взять из экспа всё необходимое для расчёта и рисования линии и перенести это в индикатор, потом цеплять этот индикатор на нужный фрейм.
Ещё вариант сообщать индикатору новый уровень через глобальную переменную или файл, в индикаторе только блок рисования.
Больше никак.
Взять из экспа всё необходимое для расчёта и рисования линии и перенести это в индикатор, потом цеплять этот индикатор на нужный фрейм.
Ещё вариант сообщать индикатору новый уровень через глобальную переменную или файл, в индикаторе только блок рисования.
Больше никак.
Спасибо, именно так и сделал. Эксперт создает/удаляет глобальные переменные, а индикатор рисует.
С другой стороны если уж есть функция определения Handle окна, должны быть и функции для работы с этим окном. Может быть в МТ5 что-нибудь будет.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Господа, подскажите, как сделать:
эксперт приклеен к определенному графику (например Н-1 GBPUSD). Эксперт рисует линию на графике, где будет открывать позицию (Sell_Level – это уровень открытия позиции)
Рисую линию в основном окне, к которому эксперт приклеен
ObjectCreate("Sell_Level",OBJ_HLINE,0,0,Sell_Level);
ObjectSet("Sell_Level",OBJPROP_COLOR,LimeGreen);
ObjectSet("Sell_Level",OBJPROP_STYLE,STYLE_DASHDOTDOT);
Далее вопрос: как эту линию перенести на все остальные графика этой пары? (если открыты D1, например или М15, или новое окно открою с GBPUSD). Хочу, что бы линия отображалась на всех ТФ этой пары. Что-то у меня ничего не получается.
Или подскажи, как обратится к окну графика, Handle которого я знаю.
Например:
int WinHandle_240 =WindowHandle(“GBPUSD”,240); // получил Handle нужного мне окна
А дальше что? Как к этому окну обратится, чтобы нарисовать там что-нибудь?