HIGH - LOW (2)

 
Kontra писал (а) >>

Привет.

Понравилась мне тема вычисления уровней. И задался я целью написать индикатор, который бы уровни эти рисовал. Однако столкнулся со следующей проблемой. Линия уровня не должна начинаться в начале истории и заканчиваться текущим моментом, хочется, чтобы месячные экстремумы были толстыми и длинными, а дневные и недельные короткими на чарте (по 50 пикселов или по 20 баров). Плюс хочется, чтобы эти уровни можно было видеть на всей истории, или хотя бы на очень большом промежутке (2-3 года). Хочется также, чтобы эти линии подписывались, дневной, недельный или месячный это экстремум. Плюсы этого индикатора ИМХО неоспоримы - мы увидим на экране все критичные и переломные уровни. Спасибо всем, кто заинтересуется и поможет.

Вот то, что на данный момент получилось.

 
 
//+------------------------------------------------------------------+
 //| Уровни  
 //+------------------------------------------------------------------+
 #property copyright "Николай Ставинов"
 #property link "mail to: kontrik@mail.ru"
 #property indicator_chart_window
 #property indicator_buffers 8
 #property indicator_color1 DarkOrange
 #property indicator_color2 Orange
 #property indicator_color3 Gold
 #property indicator_color5 Yellow
 #property indicator_color6 Chartreuse
 #property indicator_color7 Lime
 #property indicator_color8 SpringGreen
 #property indicator_width1 1
 #property indicator_width2 2
 #property indicator_width3 1
 #property indicator_width4 2
 #property indicator_width5 1
 #property indicator_width6 2
 #property indicator_width7 1
 #property indicator_width8 2
 #property indicator_style1 DRAW_HISTOGRAM
 #property indicator_style2 DRAW_HISTOGRAM
 #property indicator_style3 DRAW_LINE
 #property indicator_style4 DRAW_LINE
 #property indicator_style5 DRAW_LINE
 #property indicator_style6 DRAW_LINE
 #property indicator_style7 DRAW_LINE
 #property indicator_style8 DRAW_LINE
 double HighBuffer1[];
 double HighBuffer2[];
 double HighBuffer3[];
 double HighBuffer4[];
 double LowBuffer1[];
 double LowBuffer2[];
 double LowBuffer3[];
 double LowBuffer4[];
 //+------------------------------------------------------------------+
 //| Custom indicator initialization function |
 //+------------------------------------------------------------------+
 int init()
 {
 IndicatorShortName("Layers");  
 SetIndexBuffer(0,HighBuffer1);
 SetIndexBuffer(1,HighBuffer2);
 SetIndexBuffer(2,HighBuffer3);
 SetIndexBuffer(3,HighBuffer4);
 SetIndexBuffer(4,LowBuffer1);
 SetIndexBuffer(5,LowBuffer2);
 SetIndexBuffer(6,LowBuffer3);
 SetIndexBuffer(7,LowBuffer4);
 return(0);
 }
 //+------------------------------------------------------------------+
 //| Custor indicator deinitialization function |
 //+------------------------------------------------------------------+
 int deinit()
 {
 return(0);
 }
 //+------------------------------------------------------------------+
 //| Custom indicator iteration function |
 //+------------------------------------------------------------------+
 int start()
 {
 int counted_bars=IndicatorCounted();
 int limit;
 int i,r,y;
 //----
 if(counted_bars<0) return(-1);
 if(counted_bars>0) counted_bars--;
 limit=Bars-counted_bars;
 //уровни за предыдущую неделю
 double LastWeek_Low1 =iLow(NULL,PERIOD_W1,1);
 double LastWeek_High1 =iHigh(NULL,PERIOD_W1,1);
 // уровни за предыдущие 5 дней
 double LastDay_Low1 =iLow(NULL,PERIOD_D1,1);
 double LastDay_High1 =iHigh(NULL,PERIOD_D1,1);
 double LastDay_Low2 =iLow(NULL,PERIOD_D1,2);
 double LastDay_High2 =iHigh(NULL,PERIOD_D1,2);
 double LastDay_Low3 =iLow(NULL,PERIOD_D1,3);
 double LastDay_High3 =iHigh(NULL,PERIOD_D1,3);
 double LastDay_Low4 =iLow(NULL,PERIOD_D1,4);
 double LastDay_High4 =iHigh(NULL,PERIOD_D1,4);
 double LastDay_Low5 =iLow(NULL,PERIOD_D1,5);
 double LastDay_High5 =iHigh(NULL,PERIOD_D1,5);
 //уровни за предыдущий и текущий месяц
 double LastMonth_Low0 =iLow(NULL,PERIOD_MN1,0);
 double LastMonth_High0 =iHigh(NULL,PERIOD_MN1,0);
 double LastMonth_Low1 =iLow(NULL,PERIOD_MN1,1);
 double LastMonth_High1 =iHigh(NULL,PERIOD_MN1,1);
 for(i=0;i<limit;i++)
 {
 HighBuffer1[i]=LastWeek_High1;
 LowBuffer1[i]=LastWeek_Low1;
 HighBuffer2[i]=LastMonth_High0;
 LowBuffer2[i]=LastMonth_Low0;
 HighBuffer3[i]=LastMonth_High1;
 LowBuffer3[i]=LastMonth_Low1;
 }
 Comment(
 "Экстремумы ", " D1, "," D2, "," D3, "," D4, "," D5, "," W1, "," M0, "," M1 ","\n",
 "Максимумы: ", DoubleToStr(LastDay_High1, Digits) + ", " + DoubleToStr(LastDay_High2, Digits) + ", " +
 DoubleToStr(LastDay_High3, Digits) + ", " + DoubleToStr(LastDay_High4, Digits) + ", " +
 DoubleToStr(LastDay_High5, Digits) + ", " + DoubleToStr(LastWeek_High1, Digits) + ", " +
 DoubleToStr(LastMonth_High0, Digits) + ", " + DoubleToStr(LastMonth_High1, Digits)
 + "\n" +
 "Минимумы: " + DoubleToStr(LastDay_Low1, Digits) + ", " + DoubleToStr(LastDay_Low2, Digits) + ", " +
 DoubleToStr(LastDay_Low3, Digits) + ", " + DoubleToStr(LastDay_Low4, Digits) + ", " +
 DoubleToStr(LastDay_Low5, Digits) + ", " + DoubleToStr(LastWeek_Low1, Digits) + ", " +
 DoubleToStr(LastMonth_Low0, Digits) + ", " + DoubleToStr(LastMonth_Low1, Digits));
 }


Ребят помогите усовершенствовать индикатор от  Kontra.. 

Хотелось бы добавить, чтоб  все линии были ценовые, т.е. как обычные горизонтальные линии с ценами, и ещё чтоб буфер (#property indicator_buffers 8) был 12, а не 8 для того, чтоб отобразить и предидущие свечи в одном индикаторе


Сам попробовал.. вот,что получилось:

-красные прошл. месяц

-оранжевые прошл. неделя

-синие прошл. день


2 индикатора, т.к. проблема с #property indicator_buffers 8))

_1й прошлые хай и лоу - сплошные

_2й позапрошлые хай и лоу - пунктирные

Файлы:
d2w2m2_1.mq4  5 kb
d2w2m2_2.mq4  5 kb
 

и ещё чтоб буфер (#property indicator_buffers 8) был 12, а не 8 для того, чтоб отобразить и предидущие свечи в одном индикаторе

Занавес. Хелп и учебник для кого?



 
Чтоб коды вставлять - есть такая пиктограммка - SRC (рядом с пирамидой Хаоса и солнышком в квадратике). А длинные и вовсе лучше "Прикрепить файл". Многие, из тех кто может, могут иначе просто уйти с темы не дочитав. Местная вежливость в общении.
 
D500_Rised писал (а) >>

Занавес. Хелп и учебник для кого?



Спасибо, "очень признателен!"..

 
Bookkeeper писал (а) >>
Чтоб коды вставлять - есть такая пиктограммка - SRC (рядом с пирамидой Хаоса и солнышком в квадратике). А длинные и вовсе лучше "Прикрепить файл". Многие, из тех кто может, могут иначе просто уйти с темы не дочитав. Местная вежливость в общении.

Спасибо, переделал) Просто первый раз тут... вот и разошелся не подумав)))

 
ALexUfa, передалал - так выкладывай уж, поглядим что вышло....
 
Kontra писал (а) >>
ALexUfa, передалал - так выкладывай уж, поглядим что вышло....

Приветствую)) прикрепил же!... смотрите) Сам пользуюсь сейчас 2-мя индикаторами... Впринципе видно, что и какой уровень рынок пережовывает)

Кстати слово переделал не подходит, т.к. я ж не пишу индикаторы.. Просто так "подшаманил" под себя))

Ещё считаю важными отобразить цены открытия текущих свечей.. мес., недели и дня!

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