Страшенные проблемы с написанием индюка

 

Так получилось, что мне нужно написать индикатор, а я ни сном, ни духом не знаю MQL4. Изучал в ускоренном режиме как мог, но судя по тому что индикатор не работает все это напрасно. Может взгляните на код и условие. Подскажите может чего... может не так велика проблема.
________________________________________________________________________________________________________
Условие:

Индикатор постоянно внутри дня берет в расчет формулу:  (Максимум дня+Минимум дня+Открытие последней открывшейся свечи)/3=Y. Последний расчет производится не по закрытию текущего дня а по открытию следующего дня. Потом индикатор завершает расчет этого дня и выставляет фиксированную линию на поле дня который только что открылся.
________________________________________________________________________________________________________

код:

 int start()

  {

     double   h = iHigh(Symbol(),PERIOD_H1,1);

     double   l = iLow(Symbol(),PERIOD_H1,1);

     double   o = iOpen(Symbol(),PERIOD_H1,1);

     double   y = (h+l+o)/3;

     ObjectCreate(0,0,OBJ_HLINE,0,0,0);

     ObjectSetInteger(0,0,OBJPROP_COLOR,clrRoyalBlue);

     ObjectSet(0,OBJPROP_YDISTANCE,y);

     SetLevelStyle(STYLE_SOLID,2,clrRoyalBlue);

     return 0;

}

________________________________________________________________________________________________________

Посмотрите пожалуйста. Кое что из условия я и не нашел как сделать (например: как переносить график на другой день). Может тут не так и много менять надо. Хотя глядя на другие индикаторы ясно, что это полнейшая шляпа. И всеж я очень прошу помощи. Заранее СПАСИБО. 

 
Код не нужно разрисовывать в цвета радуги - достаточно его просто правильно вставить: Правильно вставляем код на форуме
 
Так я не понял. Линия строится один раз в день или расчет происходит каждый раз на 1 баре в течении дня? Если один раз в день то алгоритм совсем не верный.В вашем случае это алгоритм скользящей с периодом 1 по цене PRICE_TYPICAL.
 
Alexander Lasygin:
Так я не понял. Линия строится один раз в день или расчет происходит каждый раз на 1 баре в течении дня? Если один раз в день то алгоритм совсем не верный.В вашем случае это алгоритм скользящей с периодом 1 по цене PRICE_TYPICAL.
Да. Она строится раз в день. А как, хотя бы ориентировочно, должно выглядеть? Просто я сейчас в замешательстве и пытаюсь быстро-быстро искать, но толку мало. 
 
Karputov Vladimir:
Код не нужно разрисовывать в цвета радуги - достаточно его просто правильно вставить: Правильно вставляем код на форуме
Понял свою ошибку. Учту. 
 
dacool731:
Да. Она строится раз в день. А как, хотя бы ориентировочно, должно выглядеть? Просто я сейчас в замешательстве и пытаюсь быстро-быстро искать, но толку мало. 

Так что НАМ НУЖЕН ДЕНЬ?

тогда

в переменные time=-1; 

start
if(time!=iTime (Symbol(),PERIOD_D0,0))
  { 
   double   h = iHigh(Symbol(),PERIOD_D1,1);
   double   l = iLow(Symbol(),PERIOD_D1,1);
   double   o = iOpen(Symbol(),PERIOD_D1,0);

// здесь ваш код 

   time=iTime (Symbol(),PERIOD_D1,0));
  }

В общем как то так .

 
dacool731:
Да. Она строится раз в день. А как, хотя бы ориентировочно, должно выглядеть? Просто я сейчас в замешательстве и пытаюсь быстро-быстро искать, но толку мало. 
Это классический Pivot, их в кодобазе много, просто тут без линий поддержки и сопротивления.