Indicators Used
Miscellaneous
0
Views
0
Downloads
0
Favorites
ATR Levels2
//+------------------------------------------------------------------+
//| ATR Levels2.mq4 |
//| Sergey Iljukhin |
//| sergey@tibet.ru |
//+------------------------------------------------------------------+
#property copyright "Sergey Iljukhin"
#property link "mailto:sergey@tibet.ru"
#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 Magenta
#property indicator_color2 IndianRed
#property indicator_color3 Magenta
#property indicator_color4 IndianRed
#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);
SetIndexStyle(1,DRAW_LINE,2);
SetIndexStyle(2,DRAW_LINE);
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, fullatr;
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])) {
// Âû÷èñëÿåì çíà÷åíèå ATR ïðåäûäóùåãî áàðà
fullatr = iATR(Symbol(), PERIOD_D1, ATRPeriod, daybar+1);
LowYesterday = OHLC_D1[daybar+1][3] - fullatr;
HighYesterday = OHLC_D1[daybar+1][2] + fullatr;
LowToday = OHLC_D1[daybar][3] - fullatr;
HighToday = OHLC_D1[daybar][2] + fullatr;
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 Formatting Guide
# H1
## H2
### H3
**bold text**
*italicized text*
[title](https://www.example.com)

`code`
```
code block
```
> blockquote
- Item 1
- Item 2
1. First item
2. Second item
---