Miscellaneous
0
Views
0
Downloads
0
Favorites
Rj_SlidingRange
//+------------------------------------------------------------------+
//| Rj_SlidingRange.mq4 |
//| Copyright © 2011,RJ Rjabkov Alexander |
//| rj-a@mail.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011,RJ Rjabkov Alexander"
#property link "rj-a@mail.ru"
#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 Aqua
#property indicator_color2 Red
#property indicator_color3 Aqua
#property indicator_color4 Red
#property indicator_width1 1
#property indicator_width2 1
#property indicator_width3 2
#property indicator_width4 2
#property indicator_style1 2
#property indicator_style2 2
extern int CalcPeriodRange=5;
double UpperLimit[];
double LowerLimit[];
double AwlUpper[];
double AwlLower[];
double Current[];
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int init()
{
IndicatorBuffers(5);
SetIndexBuffer(0,UpperLimit);
SetIndexBuffer(1,LowerLimit);
SetIndexBuffer(2,AwlUpper);
SetIndexBuffer(3,AwlLower);
SetIndexBuffer(4,Current);
SetIndexStyle(0,DRAW_LINE);
SetIndexStyle(1,DRAW_LINE);
SetIndexStyle(2,DRAW_LINE);
SetIndexStyle(3,DRAW_LINE);
return(0);
}
int deinit() {return(0);}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int start()
{
int i,cb;
int counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
cb=Bars-counted_bars;
if(counted_bars==0) cb-=1+CalcPeriodRange;
while(cb>=0)
{
i=cb+CalcPeriodRange-1;
double b1=0,b2=0;
while(i>=cb)
{
b1 += High[iHighest(NULL, 0, MODE_HIGH, CalcPeriodRange, i)];
b2 += Low[iLowest(NULL, 0, MODE_LOW, CalcPeriodRange, i)];
i--;
}
UpperLimit[cb]=b1/CalcPeriodRange;
LowerLimit[cb]=b2/CalcPeriodRange;
Current[cb]=NormalizeDouble((UpperLimit[cb]+LowerLimit[cb])/2,5);
AwlUpper[cb]=EMPTY_VALUE;
AwlLower[cb]=EMPTY_VALUE;
if(Current[cb]>Current[cb+1]) {AwlUpper[cb]=Current[cb]; AwlUpper[cb+1]=Current[cb+1];}
if(Current[cb]<Current[cb+1]) {AwlLower[cb]=Current[cb]; AwlLower[cb+1]=Current[cb+1];}
if(Current[cb]==Current[cb+1] && AwlLower[cb+1]!=EMPTY_VALUE) {AwlLower[cb]=Current[cb];}
if(Current[cb]==Current[cb+1] && AwlUpper[cb+1]!=EMPTY_VALUE) {AwlUpper[cb]=Current[cb];}
cb--;
}
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
---