pascalboy:
Hi,
Let us say in an indicator there are three buffers.
Can we attend buf_0 (i) minus buf_1 (i-1) to buf_2 (i).
Buf_2(i)=buf_0(i)-buf_(i-1).
It says out of range error.
Why? Notice time difference . (i), (i-1).
You can only do this if you have already calculated buf_1[i - 1] . . . so which way does you loop go, increment or decrement ?
Hi,
Let us say in an indicator there are three buffers.
Can we attend buf_0 (i) minus buf_1 (i-1) to buf_2 (i).
Buf_2(i)=buf_0(i)-buf_(i-1).
It says out of range error.
Why? Notice time difference . (i), (i-1).
Decrement
pascalboy:
Hi,
Let us say in an indicator there are three buffers.
Can we attend buf_0 (i) minus buf_1 (i-1) to buf_2 (i).
Buf_2(i)=buf_0(i)-buf_(i-1).
It says out of range error.
Why? Notice time difference . (i), (i-1).
Hi,
Let us say in an indicator there are three buffers.
Can we attend buf_0 (i) minus buf_1 (i-1) to buf_2 (i).
Buf_2(i)=buf_0(i)-buf_(i-1).
It says out of range error.
Why? Notice time difference . (i), (i-1).
When i = 0 buf[i-1] will give the out of range error
With (i+1) the same result.
No change.
Your indicator loop is decrementing ?
If Indicator loop i starts at the highest bar index what is i + 1 ? Bar does not exist.
When indicator gets down to calculating zero bar i what is i - 1 ? Bar does not exist.
How can its logic be then?
Logic goes like this,
The highest available Bar is Bars-1.
If buffer1[i] begins from Bars-1 and you want buffer2 to call buffer1[i+1] all through the chart, then buffer2[i] should begin from Bars-2
or
If you want buffer2[i] to call Buffer1[i-1] you can only do that when buffer2[i] > 0 unless you make buffer1 calculate a value for Bar -1.
Thanks .
You right.
You have a lookback of 1 for buffer2. Test for it.
int counted = IndicatorCounted(); // if(counted < LB0) counted = LB0; // Do you look at earlier values for buf_0? for(int iBuf0 = Bars - 1 - counted; iBuf0 >= 0; iBuf0--) buf_0[iBuf0] = ... #define LB1 1 if(counted < LB1) counted = LB1; // You DO look at earlier values for buf_1 for(int iBuf1 = Bars - 1 - counted; iBuf1 >= 0; iBuf1--) buf_1[iBuf1] = ... buf_0[iBuf1+LB1] ... // Look back 1
You are missing trading opportunities:
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
Registration
Log in
You agree to website policy and terms of use
If you do not have an account, please register
Let us say in an indicator there are three buffers.
Can we attend buf_0 (i) minus buf_1 (i-1) to buf_2 (i).
Buf_2(i)=buf_0(i)-buf_(i-1).
It says out of range error.
Why? Notice time difference . (i), (i-1).