MQL4: как работать с Графическими Объектами в советнике?

 

Уважаемые гуру!

Научите, плз, как что-нибудь осмысленное вывести из советника на график?

Объясняю зачем: При отладке/осмыслении советника полезно видеть графически кое-какую информацию, касающуюся принятия решения.

Сунулся я было в Графические объекты, но не понял ни фига, как их использовать в мирных целях. Т.е. функций и свойств там как грязи, но что куда втыкается, и главное зачем то или иное надо - нет нигде.Так и отвалил, не солоно хлебавши.

Но, голь на выдумки хитра, дай думаю через индикатор эту штуку сваяю. Потыкался, благо кое-какие примеры были - и победил. Неудобно правда, параметры для советника и параметры для индикатора согласованно вводить, но я даже придумал, как их заставить через глобальные переменные дружить.

И тут вылезла главная засада - в тестере мой индикатор ни фига не показывает, а когда пытаюсь как-то его через параметры оживить, то тестер и вообще виснет. Один раз (наверно с перепуга), что-то показал, но такое, что к тестируемым данным никакого отношения не имеет.

Так что вопрос: Как из советника вывести линию на график? (ну и конечно тащить ее по барам с течением времени).

Если кто решал похожего рода проблему, научите! Лучше всего, конечно бы фрагмент работающего кода.

Заранее признателен. У меня МТ: 4.0 - 229

ЗЫ.

Только не надо рассуждений типа что оно нафиг никому не надо. Конкретный вопрос.

 
kegegk:

Уважаемые гуру!

Научите, плз, как что-нибудь осмысленное вывести из советника на график?


А учебник не устраивает?
 
PapaYozh:

А учебник не устраивает?

А попробуйте с помощью имеющейся там информации решить поставленную задачку. Например вывести на график линию на 10% выше цены.

 
kegegk:

А попробуйте с помощью имеющейся там информации решить поставленную задачку. Например вывести на график линию на 10% выше цены.


Если Вам нужна горизонтальная линия, то это - OBJ_HLINE

Если отрезок между бара - OBJ_TREND

 
kegegk:

А попробуйте с помощью имеющейся там информации решить поставленную задачку. Например вывести на график линию на 10% выше цены.


Например так:

color ColorGrObj = Green;
string NameOfGrObj = "TESTLINE";

if ( ObjectFind( NameOfGrObj ) > -1 )
{
   ObjectSet( NameOfGrObj, OBJPROP_TIME1, Time[0] ); 
   ObjectSet( NameOfGrObj, OBJPROP_PRICE1, Close[0]*1.10 ); 
   ObjectSet( NameOfGrObj, OBJPROP_WIDTH, 1 );
   ObjectSet( NameOfGrObj, OBJPROP_STYLE, STYLE_DOT );
}
else if ( ObjectCreate( NameOfGrObj, OBJ_HLINE, 0, Time[0], Close[0]*1.10 ) )
{
   ObjectSet( NameOfGrObj, OBJPROP_WIDTH, 1 );
   ObjectSet( NameOfGrObj, OBJPROP_STYLE, STYLE_DOT );
   ObjectSet( NameOfGrObj, OBJPROP_COLOR, ColorGrObj );
}

Рисует горизонтальную пунктирную линию на 10% выше текущей цены.

 
kegegk:

Чудненько. И как же решить задачку про линию == (бид +_ 10%)
пятницо?
 
PapaYozh:


Например так:

Рисует горизонтальную пунктирную линию на 10% выше текущей цены.


Спасибо. Попробую. По результату доложусь. А то я как-то не очень с объектами дружу....
 
Вот пример, даже чуть сложнее Вашей задачи.
 
PapaYozh:


Например так:

Рисует горизонтальную пунктирную линию на 10% выше текущей цены.

Попробовал.

И конечно, выяснилось, что дьявол в деталях.

Я то имел в виду ломанную линию, отслеживающую указанный уровень на графике, а не прямую, ползающую по экрану. Вышла недосказанность формулировки...

Так что воз и ныне там.



-----
granit77:
Вот пример, даже чуть сложнее Вашей задачи.

Вы не очень внимательно прочитали. Речь шла про советника, а не про индикатор
 
kegegk:
Вы не очень внимательно прочитали. Речь шла про советника, а не про индикатор

Самое простое - открывать в советнике шаблон с самописным индикатором, заполняющим свой буфер из файла. Файл писать в этом же советнике.

Жалобы на "тормознутость" метода сочту програмерскими понтами, ибо на практике никакая тормознутость не наблюдается, всё летает.

 

Плохому танцору...

https://www.mql5.com/ru/forum/107476

ищите, и да обрящете.

Причина обращения: