20

i learn to code mql5 and trying to create indicator. i know there is tons indi on this web that i can use. But i just want to learn how to code it. Here i try to draw histogram and line based on average of 3 high - low value of 3 candles. But i got this weird look on my script. Could some body please explain to me why i got this..? And if possible please fix my code.. Thanks alot.. Sorry for my bad spell..
Files:
278

```//int i;
//if(prev_calculated==0) i=0;
//else i=prev_calculated-1;

//for (i = 0; i < prev_calculated;i++)

int i, limit;
if(prev_calculated==0) limit=0;
else limit=prev_calculated-1;

for (i = limit; i < rates_total;i++)```
2156

It's more than just that. OP's issue is that he is working with the buffers as if they are MT4. MT5 is reversed so the entire logic needs to be reversed.

```{
int limit = rates_total - 1;
if(prev_calculated == 0)
limit = 3;
for(int i=limit; i<rates_total; ++i)
{
double ihl = high[i] - low[i];
double jhl = high[i-1] - low[i-1];
double khl = high[i-2] - low[i-2];
double x = (ihl + jhl + khl) / 3.0;
BlockBuffer[i] = x;
PowerBuffer[i] = x;
}
return(rates_total);
}```
278

nicholi shen:

It's more than just that. OP's issue is that he is working with the buffers as if they are MT4. MT5 is reversed so the entire logic needs to be reversed.

Surely you are right.
However, this method does not cause problems when communication is interrupted? It always calculates only the last buffer.

`int limit = rates_total - 1;`
2156

Surely you are right.
However, this method does not cause problems when communication is interrupted? It always calculates only the last buffer.

The last buffer is always the most recent bar in MT5. Indexes run opposite of MT4.

278

nicholi shen:

The last buffer is always the most recent bar in MT5. Indexes run opposite of MT4.

Yes, I know it.

But your program is the same as following because in your program (limit = rates_total - 1).

`for (int i=ratos_total - 1; i < ratos_total; i++)`

It always calculates only last index except for the first calculation.

I think that (limit = prev_calculated - 1) is the best.

20

nicholi shen:

It's more than just that. OP's issue is that he is working with the buffers as if they are MT4. MT5 is reversed so the entire logic needs to be reversed.

Thanks very much...
it work now....

and you GOD DAMN RIGHT,, i got the error bcz i followed the mql4 tuts...
20

Cipud:
Thanks very much...
it work now....

and you GOD DAMN RIGHT,, i got the error bcz i followed the mql4 tuts...

you all are my angel...

1030

KDE is love, KDE is life.

You can make all things dark in winecfg and MetaEditor Tools/Properties/Colors.

Let the darkness flow through you.

36551

kypa:

KDE is love, KDE is life.

You can make all things dark in winecfg and MetaEditor Tools/Properties/Colors.

Let the darkness flow through you.

What's that off-topic useless comment ?