//+------------------------------------------------------------------+
//| Åñëè èíòåðåñíû ïîäðîáíîñòè, ïèøèòå íà faza9109@mail.ru |
//+------------------------------------------------------------------+
#property indicator_chart_window
//+------------------------------------------------------------------+
extern int Per=8000, //Êîëè÷åñòâî áàðîâ äëÿ ðàñ÷åòà
Sft=1000; //Èíäåêñ ïîñëåäíåãî áàðà äëÿ ðàñ÷åòà
//+------------------------------------------------------------------+
int Count, //Ñ÷åò÷èê êîëè÷åñòâà ðàç, êîãäà âñòðå÷àåòñÿ êîíêðåòíàÿ êîòèðîâêà j
i; //Ñ÷åò÷èê
double Hg,Lw, //Ìàêñèìóì è ìèíèìóì ðàñ÷åòíîãî ïåðèîäà
j; //Êîòèðîâêà
string name; //Èìÿ îáúåêòà
color clr; //Öâåò ïîëîñû
//+------------------------------------------------------------------+
int start()
{
if (IndicatorCounted()<Per+Sft)return;
ObjectCreate("gr",0,0,Time[Sft],0); //Ðèñóåì âåðòèêàëüíóþ ëèíèþ,
ObjectSet ("gr",6,Green); //îãðàíè÷èâàþùóþ îáëàñòü ðàñ÷åòà ñëåâà.
ObjectSet ("gr",8,2); //È îïðåäåëÿåì åé öâåò è òîëùèíó.
Hg=High[iHighest(NULL,0,MODE_HIGH,Per,Sft)]; //Èùåì ìàêñèìóì ðàñ÷åòíîãî ïåðèîäà
Lw=Low [iLowest (NULL,0,MODE_HIGH,Per,Sft)]; //Èùåì ìèíèìóì ðàñ÷åòíîãî ïåðèîäà
for(j=Lw; j<=Hg; j+=Point) //Öèêë ïî êîòèðîâêàì ìåæäó Lw è Hg
{
Count=0;
for(i=Per+Sft; i>=Sft; i--) //Öèêë ïî âñåì áàðàì ðàñ÷åòíîãî ïåðèîäà
{
if(j>=Low [i] && j<=High[i]) //Îïðåäåëÿåì, âõîäèò ëè íàøà êîòèðîâêà j â áàð i
Count++; //Ñ÷èòàåì, ñêîëüêî ðàç äàííàÿ êîòèðîâêà âñòðå÷àåòñÿ â ðàñ÷åòíîì ïåðèîäå
}
name="price="+j;
clr=Clrr(Count); //Âûçûâàåì ôóíêöèþ îïðåäåëåíèÿ öâåòà
ObjectCreate(name,16,0,Time[Per+Sft],j+Point,Time[0],j); //Ðèñóåì ïîëîñó
ObjectSet (name,6,clr); //È îïðåäåëÿåì åé öâåò
}
return(0);
}
//+------------------------------------------------------------------+
int init()
{
Print(Bars);
if(Bars<(Per+Sft))
Alert("Èçìåíèòå âõîäíûå ïàðàìåòðû, íåäîñòàòî÷íî áàðîâ íà ãðàôèêå");
return(0);
}
//+------------------------------------------------------------------+
int deinit()
{
ObjectsDeleteAll(); //Ïðè óäàëåíèè èíäèêàòîðà èç îêíà, óäàëÿåì âñå îáúåêòû
return(0);
}
//+------------------------------------------------------------------+
color Clrr(int c) //Ôóíêöèÿ îïðåäåëåíèÿ öâåòà
{
color A;
int v= MathCeil(c/2);
switch(v)
{
case 0: A=C'0,0,100'; break;
case 1: A=C'0,0,102'; break; case 21: A=C'0,0,142'; break; case 41: A=C'0,0,182'; break;
case 2: A=C'0,0,104'; break; case 22: A=C'0,0,144'; break; case 42: A=C'0,0,184'; break;
case 3: A=C'0,0,106'; break; case 23: A=C'0,0,146'; break; case 43: A=C'0,0,186'; break;
case 4: A=C'0,0,108'; break; case 24: A=C'0,0,148'; break; case 44: A=C'0,0,188'; break;
case 5: A=C'0,0,110'; break; case 25: A=C'0,0,150'; break; case 45: A=C'0,0,190'; break;
case 6: A=C'0,0,112'; break; case 26: A=C'0,0,152'; break; case 46: A=C'0,0,192'; break;
case 7: A=C'0,0,114'; break; case 27: A=C'0,0,154'; break; case 47: A=C'0,0,194'; break;
case 8: A=C'0,0,116'; break; case 28: A=C'0,0,156'; break; case 48: A=C'0,0,196'; break;
case 9: A=C'0,0,118'; break; case 29: A=C'0,0,158'; break; case 49: A=C'0,0,198'; break;
case 10: A=C'0,0,120'; break; case 30: A=C'0,0,160'; break; case 50: A=C'0,0,200'; break;
case 11: A=C'0,0,122'; break; case 31: A=C'0,0,162'; break; case 51: A=C'0,0,202'; break;
case 12: A=C'0,0,124'; break; case 32: A=C'0,0,164'; break; case 52: A=C'0,0,204'; break;
case 13: A=C'0,0,126'; break; case 33: A=C'0,0,166'; break; case 53: A=C'0,0,206'; break;
case 14: A=C'0,0,128'; break; case 34: A=C'0,0,168'; break; case 54: A=C'0,0,208'; break;
case 15: A=C'0,0,130'; break; case 35: A=C'0,0,170'; break; case 55: A=C'0,0,210'; break;
case 16: A=C'0,0,132'; break; case 36: A=C'0,0,172'; break; case 56: A=C'0,0,212'; break;
case 17: A=C'0,0,134'; break; case 37: A=C'0,0,174'; break; case 57: A=C'0,0,214'; break;
case 18: A=C'0,0,136'; break; case 38: A=C'0,0,176'; break; case 58: A=C'0,0,216'; break;
case 19: A=C'0,0,138'; break; case 39: A=C'0,0,178'; break; case 59: A=C'0,0,218'; break;
case 20: A=C'0,0,140'; break; case 40: A=C'0,0,180'; break; case 60: A=C'0,0,220'; break;
default: A=C'0,0,222';
}
return(A);
}
Comments