Hello all,
Would anyone be kind enough the convert the mq4 code below into Amibeoker Code
Thank you in advance
Derek
Would anyone be kind enough the convert the mq4 code below into Amibeoker Code
Thank you in advance
Derek
Code:
//+------------------------------------------------------------------+
//| 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;
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);
}
//+------------------------------------------------------------------+
Rj_Sliding Range mq4
Aucun commentaire:
Enregistrer un commentaire