Скачать MetaTrader 5

Как растягивать фибо автоматом?

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
sic20101
28
sic20101  
Подскажите пожалуйста, или ткните носом. Имеем точки для построения фибо уровней, дата текущая, верх низ цены отрезка есть(локальные уровни) хочу кинуть на них фибо и тащить его по ним. Пока ничего точного, но очень интересно что выйдет... в приоритете найти точки возможного пробоя уровней и работе на коррекции. 
Есть ли какая стандартная функция для осуществления желаемого? Чтоб не городить огород усложняя и нагромождая код? Так же интересен момент, отдаёт ли просто прорисованная линия фибо значения цены или их в дальнейшем надо будет постоянно просчитывать? 
Как мне кажется на фибо также можно реализовать не плохой трал открытых сделок...
Alexey Viktorov
20721
Alexey Viktorov  

Здесь всё описано.

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_FIBO
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_FIBO
  • www.mql5.com
//| Cоздает "Уровни Фибоначчи" по заданным координатам               |               time1=0,                            price1=0,                         time2=0,                            price2=0,                        width=1,            //| Задает количество уровней и их параметры                         |...
sic20101
28
sic20101  
Alexey Viktorov:

Здесь всё описано.

Здесь. Это я уже встречал, именно об этом и сказано про разрастание кода. Не кажется ли что слишком много для одной линии? Хотел бы уместиться в пару строк)))
Alexey Viktorov
20721
Alexey Viktorov  
sic20101:
Здесь. Это я уже встречал, именно об этом и сказано про разрастание кода. Не кажется ли что слишком много для одной линии? Хотел бы уместиться в пару строк)))

Там написано так, чтобы и ежу было понятно, а на самом деле немного проще. Но парой строк всё равно не обойдёшься.

sic20101
28
sic20101  
Помогите побороть функцию ObjectMove(), кто с ней встречался. Цель передвинуть точки фибо от старых значений на новые. Затык происходит в значении point_index 
А именно, как я понимаю это индекс точки тоесть первая и вторая точки отрезка фибо. По при вызове функции меняется значение. Тоесть например было от 1.2054 до 1.2260, надо сделать 1.2054 переместить на 1.2117... в итоге получаем от 0 или 1 до 1.2260??? Что я делаю не правильно подскажите пожалуйста.
Ihor Herasko
16469
Ihor Herasko  
sic20101:
Помогите побороть функцию ObjectMove(), кто с ней встречался. Цель передвинуть точки фибо от старых значений на новые. Затык происходит в значении point_index 
А именно, как я понимаю это индекс точки тоесть первая и вторая точки отрезка фибо. По при вызове функции меняется значение. Тоесть например было от 1.2054 до 1.2260, надо сделать 1.2054 переместить на 1.2117... в итоге получаем от 0 или 1 до 1.2260??? Что я делаю не правильно подскажите пожалуйста.

Покажите код функции, в которой это происходит. На словах трудно понять, что там не так. Догадки, конечно, есть, но их несколько.

sic20101
28
sic20101  
Ihor Herasko:

Покажите код функции, в которой это происходит. На словах трудно понять, что там не так. Догадки, конечно, есть, но их несколько.

if(srUTen==UpTenBuffer[rates])
     {
      Movefibo(0,srUTTime,srUTen,"L-U");
      Movefibo(1,srUTTime,srUTen,"U-L");
      ChartRedraw();
     }
   if(srLTen==LowTenBuffer[rates])
     {
      Movefibo(1,srLTTime,srLTen,"L-U");
      Movefibo(0,srLTTime,srLTen,"U-L");
      ChartRedraw();
     }
   
 
 
   
   return(rates_total);
 } 
 //
 //---функции
 //
 bool Movefibo(const int point_index,datetime time,double price, string name1)   // point индекс точки привязки    
               {
                  const long chart_ID=0;                  // ID графика  
                  string name=name1;         // имя объекта  
                  ObjectMove(chart_ID,name,point_index,time,price);   
                             
                  return(true);
               }

sic20101
28
sic20101  
srUTen, srLTen это средняя цена
SrTTime это время когда определили среднюю цену.
Ihor Herasko
16469
Ihor Herasko  
sic20101:
if(srUTen==UpTenBuffer[rates])
     {
      Movefibo(0,srUTTime,srUTen,"L-U");
      Movefibo(1,srUTTime,srUTen,"U-L");
      ChartRedraw();
     }
   if(srLTen==LowTenBuffer[rates])
     {
      Movefibo(1,srLTTime,srLTen,"L-U");
      Movefibo(0,srLTTime,srLTen,"U-L");
      ChartRedraw();
     }
   
 
 
   
   return(rates_total);
 } 
 //
 //---функции
 //
 bool Movefibo(const int point_index,datetime time,double price, string name1)   // point индекс точки привязки    
               {
                  const long chart_ID=0;                  // ID графика  
                  string name=name1;         // имя объекта  
                  ObjectMove(chart_ID,name,point_index,time,price);   
                             
                  return(true);
               }

Насколько я понимаю, при выполнении условия нужно переместить весь объект. Но в приведенном коде получается, что перемещаются точки разных объектов. 

P. S. Для сравнения вещественных чисел нельзя использовать сравнение напрямую. Нужно вводить точность сравнения.

P. P. S. Для вставки кода используйте кнопку SRC.

sic20101
28
sic20101  
Ihor Herasko:

Насколько я понимаю, при выполнении условия нужно переместить весь объект. Но в приведенном коде получается, что перемещаются точки разных объектов. 

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