Index Buffers are 'special'
- they are automatically extended as more bars are formed
- they are accessed in 'reverse order' i.e. [0] is 'last' one, not 'first'
I suggest that you read up on them
oh, and to stop any of the up to 8 Index Buffers displaying, use SetIndexStyle(N, DRAW_NONE);
brewmanz:
oh, and to stop any of the up to 8 Index Buffers displaying, use SetIndexStyle(N, DRAW_NONE);
oh, and to stop any of the up to 8 Index Buffers displaying, use SetIndexStyle(N, DRAW_NONE);
Thank you. But it puzzles me that my MACDSignal[i] array will not compute correctly UNLESS I have this: SetIndexBuffer(1,MACDSignal);
you should read this https://book.mql4.com/samples/icustom
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
Some code to calc MACD:
int FastEMA = 12;
int SlowEMA = 26;
int SignalSMA = 9;
if(counted_bars > 0) counted_bars--;
limit = Bars - counted_bars;
for(i=0; i < limit; i++)
MACDBuffer[i] = iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i) - iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i);
for(i=0; i < limit; i++)
MACDSignal[i] = iMAOnArray(MACDBuffer,Bars,SignalSMA,0,MODE_EMA,i);
-----------------------------------------------
MACDSignal[i] gets zeros, UNLESS I have these statements (but I don't particularly want to graph this data, just use in in computations):
SetIndexDrawBegin(1,SignalSMA);
SetIndexBuffer(0,MACDBuffer);
SetIndexBuffer(1,MACDSignal);
SetIndexStyle(0,DRAW_LINE);
SetIndexStyle(1,DRAW_LINE);
Why would linking MACDBuffer and MACDSignal to these Buffers make things calc differently?
Thank you