ATR Levels4

Author: Sergey Iljukhin
Indicators Used
Indicator of the average true range
Miscellaneous
Implements a curve of type %1
2 Views
0 Downloads
0 Favorites
ATR Levels4
//+------------------------------------------------------------------+
//|                                                  ATR Levels2.mq4 |
//|                                        Sergey Iljukhin & TOPpoint|
//|                              sergey@tibet.ru & toppoint@yandex.ru|
//+------------------------------------------------------------------+
#property copyright "Sergey Iljukhin"
#property link      "mailto:sergey@tibet.ru"

#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 LightSkyBlue
#property indicator_color2 LightSkyBlue 
#property indicator_color3 LightSkyBlue 
#property indicator_color4 LightSkyBlue 

#define   LevelMaxDeep  2000 


extern int ATRPeriod = 10;         

datetime PrevTime;              
string ShortName="ATR Levels"; 

double OHLC_D1[][6];  

//---- buffers
double UpLine1[],UpLine2[],DnLine1[],DnLine2[];

ArraySetAsSeries(UpLine1,true);
ArraySetAsSeries(UpLine2,true);
ArraySetAsSeries(DnLine1,true);
ArraySetAsSeries(DnLine2,true);

//+------------------------------------------------------------------+
//| Èíèöèàëèçàöèÿ ìàññèâîâ                                           |
//+------------------------------------------------------------------+

int InitChart()
{
//---- indicator line
   SetIndexStyle(0,DRAW_LINE,EMPTY,2);
   SetIndexStyle(1,DRAW_LINE,2);
   SetIndexStyle(2,DRAW_LINE,EMPTY,2);
   SetIndexStyle(3,DRAW_LINE,2);
   SetIndexBuffer(0,UpLine1);
   SetIndexBuffer(1,UpLine2);
   SetIndexBuffer(2,DnLine1);
   SetIndexBuffer(3,DnLine2);
//---- name for DataWindow and indicator subwindow label
   IndicatorShortName(ShortName+" ("+ATRPeriod+")");
   SetIndexLabel(0,"Up Channel 1");
   SetIndexLabel(1,"Up Channel 2");
   SetIndexLabel(2,"Down Channel 1");
   SetIndexLabel(3,"Down Channel 2");
//----
   SetIndexEmptyValue(0,0);
   SetIndexEmptyValue(1,0);
   SetIndexEmptyValue(2,0);
   SetIndexEmptyValue(3,0);

//----
   return(0);
}

//+------------------------------------------------------------------+
//| Ôóíêöèÿ èíèöèàëèçàöèè - óäàëÿåì ïðåäûäóùèå ëèíèè                 |
//+------------------------------------------------------------------+
int init()
  {
   InitChart();
   return(0);
  }
//+------------------------------------------------------------------+
//| Ôóíêöèÿ äåèíèöèàëèçàöèè - óäàëÿåì ïðåäûäóùèå ëèíèè               |
//+------------------------------------------------------------------+
int deinit()
  {
   InitChart();
   return(0);
  }
//+------------------------------------------------------------------+
//| Îñíîâàÿ ôóíêöèÿ ðàñ÷åòà óðîâíåé                                  |
//+------------------------------------------------------------------+
int start()
  {
   int  counted_bars=IndicatorCounted();
   int  lastday=0, i, j, daybar=0, chartbar=0;  
   double LowYesterday, HighYesterday, LowToday, HighToday, fullatr1, fullatr2;
  
   if (PrevTime==Time[0]) return(-1);
   
   
   if(Period() > PERIOD_H4)
      {
         Comment("ATR Levels - îøèáêà: ïåðèîä ãðàôèêà áîëåå Í4 !");
         return(-1); // then exit
      }

 
   ArrayCopyRates(OHLC_D1, Symbol(), PERIOD_D1);

   lastday=TimeDay(Time[0]);
   
   for (i=0; i<Bars; i++) {
    if (lastday!=TimeDay(Time[i])) {

     
    fullatr1 = iATR(Symbol(), PERIOD_D1, ATRPeriod, daybar+1);
     fullatr2 = iATR(Symbol(), PERIOD_D1, ATRPeriod, daybar+2);
   
       
    LowYesterday  = OHLC_D1[daybar+1][3] - fullatr1;   
    HighYesterday = OHLC_D1[daybar+1][2] + fullatr1;
     LowToday  = OHLC_D1[daybar][1] - (fullatr1+fullatr2)/4;   
     HighToday = OHLC_D1[daybar][1] + (fullatr1+fullatr2)/4;

   
     
     for (j=chartbar; j<i; j++) { 
       UpLine1[j]=HighToday;
       UpLine2[j]=HighYesterday;
       DnLine1[j]=LowToday;
       DnLine2[j]=LowYesterday;
     }  

    lastday=TimeDay(Time[i]);
    daybar++;
    chartbar=i;
    }
   }
   
  
   PrevTime=Time[0];
   return(0);

  }
//+------------------------------------------------------------------+

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 ---