Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Совершил прорыв? Напиши статью об этом и получи 200 USD!
Igor Zenchenko
165
Igor Zenchenko 2013.09.10 18:23 
Подскажите, как можно реализовать в советнике обработку уровней Фибоначчи. Уровни Фибоначчи натягиваю на график руками. И только после этого советник должен определить уровни и дать сигнал. Либо же где можно читнуть про это? Спасибо!!
Artyom Trishkin
Модератор
73941
Artyom Trishkin 2013.09.11 05:01  
drziv:
Подскажите, как можно реализовать в советнике обработку уровней Фибоначчи. Уровни Фибоначчи натягиваю на график руками. И только после этого советник должен определить уровни и дать сигнал. Либо же где можно читнуть про это? Спасибо!!

Ищите на графике объект, в имени которого присутствует "Fibo" - МТ присваивает имена для сетки Fibo как Fibo ХХХХХ, где ХХХХХ - произвольное число

Когда объект будет найден, берите с него данные:

ObjectGet("Имя найденного объекта Fibo", OBJPROP_FIRSTLEVEL+n); 

где n - порядковый номер линии фибо от 0 до 31. Количество линий можно узнать через:

ObjectGet("Имя найденного объекта Fibo", OBJPROP_FIBOLEVELS); 

вернёт число от 1 до 32.

Igor Zenchenko
165
Igor Zenchenko 2013.09.11 16:46  
Спасибо! С этим все ясно. Вы очень помогли. Но вот беда: Я натянул сетку на график и увидел название сетки Fibo 33295. В советнике вбил название сетки и все нормально нашлось. Но со временем когда цена уйдет, нужно будет старую сетку фибо удалить, а новую натянуть и номер уже будет другой. Как можно будет либо номер оставить сетки либо же чтобы советник сам определял номера? Такое возможно? Спасибо!
Igor Zenchenko
165
Igor Zenchenko 2013.09.11 16:55  
Вроде допер. Можно с помощью ObjectsTotal(); Я правильно мыслю? Но вот если будет несколько объектов на графике, то уже наверно не выбрать нужный
220Volt
1175
220Volt 2013.09.11 16:56  
Создавайте сетку при помощи скрипта, будет возможность формировать имя по своим правилам. Можно сделать весьма удобно https://www.mql5.com/ru/forum/146112.
Igor Zenchenko
165
Igor Zenchenko 2013.09.11 17:37  

Отличное решение. Спасибо. Но вот для собственной образованности интересуюсь ручным способом нанесения сетки и дальнейшей обработки её советником.

Дмитрий
1046
Дмитрий 2013.09.11 17:47  
А вообще лучше в советнике вбейте формулами уровни фибоначи (потом на другие уровни легче перейти будет)
Igor Zenchenko
165
Igor Zenchenko 2013.09.12 19:08  

Подскажите, можно ли сделать так чтобы уровни фибоначи ровнялись ценам графика. Не получатся создать условие

if (Ask < ObjectGet (name,OBJPROP_FIRSTLEVEL+4)

{

Alert ("сообщение");

}

как бы не двигал сетку выше уровня или ниже уровня цены Алерт не срабатывает. И это понятно, потому что цена - 1,3300 больше, чем уровень фибо 0,618 как бы я не передвигал сетку по графику. Нужно чтобы уровни фибо равнялись ценам на которых они расположены, что бы условие стало истинным. Можно ли такое организовать? Спасибо.

Mikhail Kozhemyako
1223
Mikhail Kozhemyako 2013.09.12 19:22  
drziv:

Подскажите, можно ли сделать так чтобы уровни фибоначи ровнялись ценам графика. Не получатся создать условие

if (Ask < ObjectGet (name,OBJPROP_FIRSTLEVEL+4)

{

Alert ("сообщение");

}

как бы не двигал сетку выше уровня или ниже уровня цены Алерт не срабатывает. И это понятно, потому что цена - 1,3300 больше, чем уровень фибо 0,618 как бы я не передвигал сетку по графику. Нужно чтобы уровни фибо равнялись ценам на которых они расположены, что бы условие стало истинным. Можно ли такое организовать? Спасибо.

Да тут у Вас вообще ошибка...Навскидку так лучше:

if (Ask < NormalizeDouble(ObjectGet (name,OBJPROP_FIRSTLEVEL))+4*Point) 
Artyom Trishkin
Модератор
73941
Artyom Trishkin 2013.09.12 23:48  
drziv:
Спасибо! С этим все ясно. Вы очень помогли. Но вот беда: Я натянул сетку на график и увидел название сетки Fibo 33295. В советнике вбил название сетки и все нормально нашлось. Но со временем когда цена уйдет, нужно будет старую сетку фибо удалить, а новую натянуть и номер уже будет другой. Как можно будет либо номер оставить сетки либо же чтобы советник сам определял номера? Такое возможно? Спасибо!

Для поиска части имени в имени объекта используйте StringSubstr(); Также сетки фибо можно идентифицировать по времени и значению их точек 0 и 100 на графике. Можно использовать только одну сетку фибо для советника: когда вы её натягиваете на график, в поле её имени введите своё, ну или удалите из её имени число, оставив только "Fibo".


По сути-то вариантов множество. И каждый в большей/меньшей степени подходит под конкретные требования ТС

Alexey Subbotin
4998
Alexey Subbotin 2013.09.13 06:52  
artmedia70:

Для поиска части имени в имени объекта используйте StringSubstr();

Еще лучше StringFind()
/ /12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий