0 Views
0 Downloads
0 Favorites
iBands.Gap
/*
âûçîâ èç êîäîâ - ñòàíäàðòíûå ïîëÿ + ïîëå Gap
iCustom(
   string symbol,       // ñèìâîëüíîå èìÿ èíñòðóìåíòà (NULL- òåêóùèé)
   int timeframe,       // òàéì-ôðåéì (0- òåêóùèé)
   "iBands.Gap",        // èìÿ ýòîãî èíäèêàòîðà
   //
   int period,          // ïåðèîä MA
   double deviation     // îòêëîíåíèå îò îñíîâíîé ëèíèè
   int bands_shift,        // ñäâèã MA
   int applied_price,   // òèï öåíû:
                           // 0 - PRICE_CLOSE - öåíà çàêðûòèÿ 
                           // 1 - PRICE_OPEN - öåíà îòêðûòèÿ
                           // 2 - PRICE_HIGH - ìàêñ.öåíà
                           // 3 - PRICE_LOW - ìèí.öåíà
                           // 4 - PRICE_MEDIAN - ñðåäíÿÿ öåíà,(high+low)/2
                           // 5 - PRICE_TYPICAL - òèïè÷íàÿ öåíà,(high+low+close)/3
                           // 6 - PRICE_WEIGHTED - âçâåøåííàÿ öåíà çàêðûòèÿ,(high+low+close+close)/4
                           // 7 - îáúåì
   int GapPoints,       // ïîðîã äëÿ èäåíòèôèêàöèè ãýïà â ïï; 
                           // =0- ñòàíäàðíûé ðåæèì
                           // <0- âûâîä áåç ñìåùåíèÿ
   //
   int mode,            // mode - íîìåð áóôåðà èíäèêàòîðà:
                           // 0- MA
                           // 1- âåðõíÿÿ ãðàíèöà
                           // 2- íèæíÿÿ ãðàíèöà
   int shift            // ñäâèã
   );

==============

iCustom(NULL,0,"iBands.Gap",BandsPeriod,Method,Shift,Price,Deviation,GapPoints, 0,i); // MA
iCustom(NULL,0,"iBands.Gap",BandsPeriod,Method,Shift,Price,Deviation,GapPoints, 1,i); // âåðõíÿÿ ãðàíèöà
iCustom(NULL,0,"iBands.Gap",BandsPeriod,Method,Shift,Price,Deviation,GapPoints, 2,i); // íèæíÿÿ ãðàíèöà
*/

#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 MediumSeaGreen 
#property indicator_color2 MediumSeaGreen 
#property indicator_color3 MediumSeaGreen
// âõîäíûå ïàðàìåòðû
extern int BandsPeriod=20; // ïåðèîä MA
extern double Deviation=2; // îòêëîíåíèÿ îò MA 
extern int Shift=0; // ñäâèã
extern int Price=0; // òèï öåíû
extern int GapPoints=0; // ïîðîã èäåíòèôèêàöèè ãýïà â ïï.
 int GapHours=8; // ïîðîã ïî âðåìåíè â ÷àñàõ (>0) èëè â ìèíóòàõ (<0)
// èíä.áóôåðû
double   MA[], // MA
         Top[], // âåðõíÿÿ ãðàíèöà
         Bot[], // íèæíÿÿ ãðàíèöà
         price[], // ìàññèâ áóôåðà áåçãýïîâûõ êîòèðîâîê
         base[]; // ìàññèâ áóôåðà ñìåùåíèÿ

void init() {
   // êîðîòêîå èìÿ
   string short_name="BB("+BandsPeriod+")";
   IndicatorShortName(short_name);   
   // áóôåðû èíäèêàòîðà
   SetIndexBuffer(0,MA); // MA
   SetIndexLabel(0,short_name);
   SetIndexBuffer(1,Top); // âåðõíÿÿ ãðàíèöà
   short_name=DoubleToStr(Deviation,1);
   SetIndexLabel(1,"Top+"+short_name);
   SetIndexBuffer(2,Bot); // íèæíÿÿ ãðàíèöà
   SetIndexLabel(2,"Bot-"+short_name);
   // áóôåðû áåçãýïîâûõ êîòèðîâîê
   IndicatorBuffers(5);
   SetIndexBuffer(3,price); // êîòèðîâêè
   SetIndexBuffer(4,base); // ñìåùåíèå
  }

void start() {
   // ãðàíèöà ïåðåñ÷åòà
   int ic=IndicatorCounted();
   int limit=Bars-ic-1;  
   if(limit>1) limit=Bars-1; 
   // çàïîëíåíèå áóôåðîâ áåçãýïîâûìè êîòèðîâêàìè è ñìåùåíèåì
   for(int i=limit; i>=0; i--) {
      price[i]=iCustom(NULL,0,"KillGap",GapPoints,GapHours,Price, 0,i); // êîòèðîâêè
      base[i] =iCustom(NULL,0,"KillGap",GapPoints,GapHours,Price, 1,i); // ñìåùåíèå
     }
   // ðàñ÷åò èíäèêàòîðà ïî ìàññèâó price[]
   for(i=limit; i>=0; i--) {
      double bs=base[i];
      MA[i] =iBandsOnArray(price,Bars,BandsPeriod,Deviation,Shift,0,i)-bs;
      Top[i]=iBandsOnArray(price,Bars,BandsPeriod,Deviation,Shift,1,i)-bs;
      Bot[i]=iBandsOnArray(price,Bars,BandsPeriod,Deviation,Shift,2,i)-bs;
     }
  }

Comments

Markdown supported. Formatting help

Markdown Formatting Guide

Element Markdown Syntax
Heading # H1
## H2
### H3
Bold **bold text**
Italic *italicized text*
Link [title](https://www.example.com)
Image ![alt text](image.jpg)
Code `code`
Code Block ```
code block
```
Quote > blockquote
Unordered List - Item 1
- Item 2
Ordered List 1. First item
2. Second item
Horizontal Rule ---