PChannel





//+------------------------------------------------------------------+
//|                                                   PChannel_m.mq4 |
//+------------------------------------------------------------------+

#property indicator_chart_window //Íàçíà÷àåì îêíî äëÿ âûâîäà ãðàôèêà (òàì, ãäå áàðû)
#property indicator_buffers 3 //Âûäåëÿåì äëÿ èíäèêàòîðà òðè áóôåðà
#property indicator_color1 DodgerBlue //Íàçíà÷àåì öâåò äëÿ îòîáðàæåíèÿ äàííûõ 1 áóôåðà
#property indicator_color2 DodgerBlue //Íàçíà÷àåì öâåò äëÿ îòîáðàæåíèÿ äàííûõ 2 áóôåðà
#property indicator_color3 DodgerBlue //Íàçíà÷àåì öâåò äëÿ îòîáðàæåíèÿ äàííûõ 3 áóôåðà
//---- input parameters //îáúÿâëåíèå ââîäèìûõ âíåøíèõ ïàðàìåòðîâ
extern int Range=14; //ïî óìîë÷àíèþ ââîäèìîå çíà÷åíèå ðàâíî 14
//---- buffers
double UpBuffer[]; //îáÿâëåíèå ïåðåìåííîé UpBuffer òèïà "ìàññèâ ñ ïëàâàþùåé òî÷êîé"
double DnBuffer[]; //îáÿâëåíèå ïåðåìåííîé DnBuffer òèïà "ìàññèâ ñ ïëàâàþùåé òî÷êîé"
double MdBuffer[]; //îáÿâëåíèå ïåðåìåííîé MdBuffer òèïà "ìàññèâ ñ ïëàâàþùåé òî÷êîé"
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init() //èíèöèàëèçàöèÿ ïåðåìåííûõ
  {
   string short_name; //îáÿâëåíèå ïåðåìåííîé short_name òèïà "ñòðîêîâûé"
//---- indicator line
   SetIndexStyle(0,DRAW_LINE,1,2); //óñòàíîâêà ñòèëÿ äëÿ ïåðâîãî çíà÷åíèÿ èíäèêàòîðà
   SetIndexStyle(1,DRAW_LINE,1,2); //óñòàíîâêà ñòèëÿ äëÿ âòîðîãî çíà÷åíèÿ èíäèêàòîðà
   SetIndexStyle(2,DRAW_LINE,2); //óñòàíîâêà ñòèëÿ äëÿ òðåòüåãî çíà÷åíèÿ èíäèêàòîðà
   SetIndexBuffer(0,UpBuffer); //çíà÷åíèå çàïèñûâàåìîå â 0 áóôåð ðàâíî ïåðåìåííîé UpBuffer
   SetIndexBuffer(1,DnBuffer); //çíà÷åíèå çàïèñûâàåìîå â 1 áóôåð ðàâíî ïåðåìåííîé DnBuffer
   SetIndexBuffer(2,MdBuffer); //çíà÷åíèå çàïèñûâàåìîå â 2 áóôåð ðàâíî ïåðåìåííîé MdBuffer
//---- name for DataWindow and indicator subwindow label
   short_name="PriceChannel("+Range+")";  //ïåðåìåííîé short_name ïðèñâàèâàåì ñòðîêîâîå
                                                  //çíà÷åíèå ðàâíîå âûðàæåíèþ
   IndicatorShortName(short_name);  //äëÿ îòîáðàæåíèÿ íà ãðàôèêå ïðèñâîèì èíäèêàòîðó êðàòêîå
                                    //íàèìåíîâàíèå
   SetIndexLabel(0,"Up Channel");   //äëÿ îòîáðàæåíèÿ íà ãðàôèêå ïðèñâîèì ìåòêå îòîáðàæàþùåé
                                    //çíà÷åíèÿ 0 áóôåðà èìÿ Up Channel
   SetIndexLabel(1,"Down Channel"); //äëÿ îòîáðàæåíèÿ íà ãðàôèêå ïðèñâîèì ìåòêå îòîáðàæàþùåé
                                    //çíà÷åíèÿ 1 áóôåðà èìÿ Down Channel
   SetIndexLabel(2,"Middle Channel"); //äëÿ îòîáðàæåíèÿ íà ãðàôèêå ïðèñâîèì ìåòêå îòîáðàæàþùåé
                                      //çíà÷åíèÿ 2 áóôåðà èìÿ Middle Channel
//----
   SetIndexDrawBegin(0,0); //óñòàíîâêà íà÷àëüíîé òî÷êè ïðîðèñîâêè äëÿ 0 áóôåðà
   SetIndexDrawBegin(1,0); //óñòàíîâêà íà÷àëüíîé òî÷êè ïðîðèñîâêè äëÿ 1 áóôåðà
   SetIndexDrawBegin(2,0); //óñòàíîâêà íà÷àëüíîé òî÷êè ïðîðèñîâêè äëÿ 2 áóôåðà
//----
   return(0); //âîçâðàò èç ñåêöèè èíèöèàëèçàöèè
  }
//+------------------------------------------------------------------+
//| PriceChannel                                                     |
//+------------------------------------------------------------------+
int start() //íà÷àëî ïðîãðàììû (ðàñ÷åòà)
  {
   int i; //îáúÿâëåíèå öåëî÷èñëåííîé ïåðåìåííîé i,k,sch

//----
   
   for(i=Bars-1;i>=0;i--)
   {
      UpBuffer[i]=High[Highest(NULL,0,MODE_HIGH,Range,i)];
      DnBuffer[i]=Low[Lowest(NULL,0,MODE_LOW,Range,i)];
      MdBuffer[i]=(UpBuffer[i]+DnBuffer[i])/2;
   }
   return(0);
  }
//+------------------------------------------------------------------+



Sample





Analysis



Market Information Used:

Series array that contains the highest prices of each bar
Series array that contains the lowest prices of each bar


Indicator Curves created:

Implements a curve of type DRAW_LINE


Indicators Used:



Custom Indicators Used:

Order Management characteristics:

Other Features: