Будущее пересечение трендовой линии и уровня фибо.

 

Будущее пересечение трендовой линии и определённого уровня фибо или другого графического объекта, а еще лучше сразу нескольких.

Никак не пойму с какой стороны подойти, чтобы определить время и цену этого события . Может кто натолкнет на путь истинный? 

 
Uladzimir Izerski:

Будущее пересечение трендовой линии и определённого уровня фибо или другого графического объекта, а еще лучше сразу нескольких.

Никак не пойму с какой стороны подойти, чтобы определить время и цену этого события . Может кто натолкнет на путь истинный? 

найти точку пересечения двух прямых. (прям как в школе..)

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

 
Увеличьте таймфрейм  . Фибо можно в екселе рассчитывать.
 
Может надо учитывать как-то выходные?
 
Veniamin Skrepkov:
Увеличьте таймфрейм  . Фибо можно в екселе рассчитывать.

Фибо рассчитаны не вопрос. Мне важно определить точки пересечения в будущем.

Может у кого есть готовый вариант и готов поделиться буду вечно признателен. 

 
Uladzimir Izerski:

Будущее пересечение трендовой линии и определённого уровня фибо или другого графического объекта, а еще лучше сразу нескольких.

Никак не пойму с какой стороны подойти, чтобы определить время и цену этого события . Может кто натолкнет на путь истинный? 

С этой задачей легко справляются излучения: Построение излучений индикаторов в MQL5 , Расчёт интегральных характеристик излучений индикаторов.

 

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

Если у кого есть решение попроще, предлагайте не стесняйтесь. Думаю не только мне одному  интересна эта задача. 

 
Uladzimir Izerski:

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

Если у кого есть решение попроще, предлагайте не стесняйтесь. Думаю не только мне одному  интересна эта задача. 

Да задача на самом деле ни о чём...

Смысл в том, что к времени открытия текущего бара надо прибавить количество баров *PeriodSeconds() и определить ObjectGetValueByTime()

void OnStart()
{
   MqlRates mqlRates[];
    do while(CopyRates(_Symbol, PERIOD_CURRENT, 0, 1, mqlRates) < 1);
     double newPrice = NormalizeDouble(ObjectGetValueByTime(0, name, mqlRates[0].time+3*PeriodSeconds()), _Digits);
 
    Comment("Пересечение линии ", name, " на 3м баре будет при цене  ", newPrice);
}/*******************************************************************/


Это из советника который отправлен в CodeBase только вынесено в скрипт.

 

 Вот выдержка из первой статьи:

И вот мы подошли к тому моменту, когда осталось только вычислить координаты пересечения этих линий и нарисовать в них соответствующие точки излучения. Для этого создадим следующую функцию:

void Draw_Point(
                string   P_name,     // имя объекта OBJ_ARROW
                double   P_y1,       // Y-координата 1 прямой на [1] баре
                double   P_y0,       // Y-координата 1 прямой на [0] баре
                double   P_yy1,      // Y-координата 2 прямой на [1] баре 
                double   P_yy0,      // Y-координата 2 прямой на [0] баре
                char     P_code1,    // код символа точки справа от [0] бара
                char     P_code2,    // код символа точки слева  от [0] бара
                color    P_color1,   // цвет точки точки справа от [0] бара
                color    P_color2    // цвет точки точки слева  от [0] бара
                )
  {
   double   P,X;
   datetime P_time;
   if(MathAbs((P_yy0-P_yy1)-(P_y0-P_y1))>0)
     {
      P=P_y1+(P_y0-P_y1)*(P_y1-P_yy1)/((P_yy0-P_yy1)-(P_y0-P_y1));
      X=(P_y1-P_yy1)/((P_yy0-P_yy1)-(P_y0-P_y1));
      if(X>draw_period)
        {
         P_time=T[0]+(int)(X*PeriodSeconds());
         ObjectCreate(0,P_name,OBJ_ARROW,0,0,0);
         ObjectSetDouble(0,P_name,OBJPROP_PRICE,P);
         ObjectSetInteger(0,P_name,OBJPROP_TIME,P_time);
         ObjectSetInteger(0,P_name,OBJPROP_WIDTH,0);
         ObjectSetInteger(0,P_name,OBJPROP_ARROWCODE,P_code1);
         ObjectSetInteger(0,P_name,OBJPROP_COLOR,P_color1);
         if(X<0)
           {
            ObjectSetInteger(0,P_name,OBJPROP_ARROWCODE,P_code2);
            ObjectSetInteger(0,P_name,OBJPROP_COLOR,P_color2);
           }
        }
     }
  }

 Вот Вам готовая функция расчёта координат.

 
Sergey Pavlov:

 Вот выдержка из первой статьи:

 Вот Вам готовая функция расчёта координат.

Полезная статья и хорошая функция. Всем известно что любая графика на чарте тормозит визуальный тест, а без визуализации я вообще не знаю можно-ли вставить линию и прочесть её свойства, никогда не пользовался. Только проблема в том, что для фибо надо ещё пересчитать её уровни и эти данные занести в эти формулы. А если брать уровни с графического объекта, то проще воспользоваться штатными функциями.
 
Sergey Pavlov:

 Вот выдержка из первой статьи:

 Вот Вам готовая функция расчёта координат.

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

Еще вопрос остается. А если три объекта? Рассчитывать по очереди парами?