OBJ_TRENDBYANGLE - не берет значение угла

 
// Создаем prefan
ObjectCreate("prefan",OBJ_TRENDBYANGLE,0,0,0,0,0);
ObjectSet("prefan",OBJPROP_TIME1,Time[H2]);ObjectSet("prefan",OBJPROP_TIME2,Time[H1]);
ObjectSet("prefan",OBJPROP_PRICE1,High[H2]);ObjectSet("prefan",OBJPROP_PRICE2,High[H1]);
ObjectSet("prefan",OBJPROP_COLOR,col);
ObjectSet("prefan",OBJPROP_WIDTH,3-MathMin(2,Step));

//вот строка взятия угла.
angle_=ObjectGet("prefan",OBJPROP_ANGLE);
Comment(angle_);


//не пашет!

//вопрос: почему?
 

я только что проверил  - пашет родимая.

У вас вероятно некоректные H2, H1

 
sergeev >>:

шутите...

ну да, глупость сморозил. удалил уже свой пост

 

Для трендовой линии по углу не надо задавать вторую координату. В крайнем случае половину второй координаты и задать угол.

В Вашем случае перед тем, как брать значение угла, необходимо, чтобы этот угол посчитался. Угол пересчитывается при отрисовке. Для этого вызовите функцию WindowRedraw(). А только потом спрашивайте значение угла.

 

stringo

Для трендовой линии по углу не надо задавать вторую координату. В крайнем случае половину второй координаты и задать угол.

В Вашем случае перед тем, как брать значение угла, необходимо, чтобы этот угол посчитался. Угол пересчитывается при отрисовке. Для этого вызовите функцию WindowRedraw(). А только потом спрашивайте значение угла.

знаю что для TRENDBYANGLE можно указывать угол и одну координату.

зы. при построении фибовеера mql саппорт сказал что фибовеер является только визуальным объектом и зацепиться к нему через ValueByShift нельзя. вот и приходится выворачиваться)))

ззы. все равно нули рисует.

sergeev

я только что проверил - пашет родимая.
У вас вероятно некоректные H2, H1

не составит труда показать ваш вариант...

зы. надо чтобы TRENDBYANGLE задавался 2 координатами

 
sanmaG писал(а) >>

зы. надо чтобы TRENDBYANGLE задавался 2 координатами

WindowRedraw() не помогает?

 

вот эксперт и картинка. В углу (как и говорит уважаемый stringo) после создания линии- был 0, на следующим тике - появилось значение.

int start()
{
	// Создаем prefan
	ObjectCreate("prefan",OBJ_TRENDBYANGLE,0,0,0,0,0);
	ObjectSet("prefan",OBJPROP_TIME1,Time[2]);ObjectSet("prefan",OBJPROP_TIME2,Time[1]);
	ObjectSet("prefan",OBJPROP_PRICE1,High[2]);ObjectSet("prefan",OBJPROP_PRICE2,High[1]);

	//вот строка взятия угла.
	Comment(ObjectGet("prefan",OBJPROP_ANGLE));
}
Файлы:
 
stringo >>:

WindowRedraw() не помогает?

к сожалению нет. он и до этого был в индюке, just я не указал.

sergeev >>:

вот эксперт и картинка. В углу (как и говорит уважаемый stringo) после создания линии- был 0, на следующим тике - появилось значение.



сенкс. все работает...значит в индюке чет неладно. будем чесать репу.

 

я допер почему не работало, точнее не я, а вместе с 525i. :).

у меня в деините стояло ObjectDeleteAll()

убрал эту строчку - и все заработало.

странно. косячки компилятора?;)


только вот теперь возник другой вопрос...

точнее не вопрос а интересная картина:

угол острый.

угол тупой.

непонятен алгоритм выбора этих углов. т.е почему иногда острый а иногда тупой....

можно ил это побороть?

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