indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 Aqua
#property indicator_color2 Lime
#property indicator_color3 Yellow
#property indicator_color4 Salmon
//------- ?????????? ?????????? --------------------------------------
//------- ?????????? ??????? ??????? ---------------------------------
//------- ??????? ????????? ?????????? -------------------------------
extern int NumberOfBars=1000; // ?????????? ????? ??????? (0-???)
//------- ?????? ?????????? ------------------------------------------
double buf24[];
double buf38[];
double buf62[];
double buf76[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
void init()
{
SetIndexBuffer(0, buf24);
SetIndexStyle (0, DRAW_LINE, STYLE_DOT);
SetIndexEmptyValue(0, EMPTY_VALUE);
SetIndexBuffer(1, buf38);
SetIndexStyle (1, DRAW_LINE, STYLE_DOT);
SetIndexEmptyValue(1, EMPTY_VALUE);
SetIndexBuffer(2, buf62);
SetIndexStyle (2, DRAW_LINE, STYLE_DOT);
SetIndexEmptyValue(2, EMPTY_VALUE);
SetIndexBuffer(3, buf76);
SetIndexStyle (3, DRAW_LINE, STYLE_DOT);
SetIndexEmptyValue(3, EMPTY_VALUE);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
void start()
{
double dMax, dMin;
int loopbegin, nsb, prevDay, shift;
//----
if (NumberOfBars==0) loopbegin=Bars - 1;
else loopbegin=NumberOfBars - 1;
for(shift=loopbegin; shift>=0; shift--)
{
if (prevDay!=TimeDay(Time[shift]))
{
nsb=iBarShift(NULL, PERIOD_D1, Time[shift]);
dMax=iHigh(NULL, PERIOD_D1, nsb);
dMin=iLow (NULL, PERIOD_D1, nsb);
}
buf24[shift]=dMin-(dMin-dMax)*0.236;
buf38[shift]=dMin-(dMin-dMax)*0.382;
buf62[shift]=dMin-(dMin-dMax)*0.618;
buf76[shift]=dMin-(dMin-dMax)*0.764;
prevDay=TimeDay(Time[shift]);
}
}
//+------------------------------------------------------------------+
|