Download MetaTrader 5

[MQL4] On object create on chart

To add comments, please log in or register
gabrisal94
40
gabrisal94  
Hello guys, 
I have an indicator (.ex4) which creates dots on the chart. I'm trying to understand if it is possible to know (with MQL4) when the dots appear, and generate an alert.

This is a screen of my indicator



Thanks in advance.
Keith Watford
Moderator
10570
Keith Watford  
gabrisal94:
Hello guys, 
I have an indicator (.ex4) which creates dots on the chart. I'm trying to understand if it is possible to know (with MQL4) when the dots appear, and generate an alert.

This is a screen of my indicator



Thanks in advance.

You can use an iCustom call to find the dots if the indicator uses buffers.

Looking at that image I am almost certain that it is a repainting indicator so you may find that you cannot get an alert when the dot happens

gabrisal94
40
gabrisal94  
Keith Watford:

You can use an iCustom call to find the dots if the indicator uses buffers.

Looking at that image I am almost certain that it is a repainting indicator so you may find that you cannot get an alert when the dot happens

Thanks for the reply, the indicator in the figure is only for an example (i know that repaints!)
whroeder1
16286
whroeder1  

You want to know if a dot exists on a specific bar. Just get the value of the indicator, (one of two buffers,) and see if it is EMPTY_VALUE or not.

You should write a self documenting function instead of calling iCustom directly, see Detailed explanation of iCustom - MQL4 forum

gabrisal94
40
gabrisal94  
whroeder1:

You want to know if a dot exists on a specific bar. Just get the value of the indicator, (one of two buffers,) and see if it is EMPTY_VALUE or not.

You should write a self documenting function instead of calling iCustom directly, see Detailed explanation of iCustom - MQL4 forum

I tried this code but it does not work:


int start()
{

double buffer1 = iCustom(NULL,0,"myIndicator",10000,true,true,"alert2.wav","email.wav",false, 0, 0);
double buffer2 = iCustom(NULL,0,"myIndicator",10000,true,true,"alert2.wav","email.wav",false, 1, 0);

if(buffer1!=0 )     // I tried with -> if(buffer1!=EMPTY_VALUE) but buffer1 always returns 0 .
        Alert(buffer1);

    if(buffer2!=0)
       Alert(buffer2);


return 0;
}
whroeder1
16286
whroeder1  
gabrisal94: I tried this code but it does not work:
  1. "Doesn't work" is meaningless - just like saying the car doesn't work. Doesn't start, won't go in gear, no electrical, missing the key, flat tires - meaningless. There are no mind readers here.
  2. You previously said it repaints. Why do you expect an arrow on the currently forming bar? (The fractal indicator doesn't repaint, but it never puts a chevron on bars zero, one or two.)
gabrisal94
40
gabrisal94  
whroeder1:
  1. "Doesn't work" is meaningless - just like saying the car doesn't work. Doesn't start, won't go in gear, no electrical, missing the key, flat tires - meaningless. There are no mind readers here.
  2. You previously said it repaints. Why do you expect an arrow on the currently forming bar? (The fractal indicator doesn't repaint, but it never puts a chevron on bars zero, one or two.)
The indicator what i'm using does not repaint.
"Does not work" in the sense that the two buffers do not return a value different from zero.
There is another way to see if exists a dot on the chart?
whroeder1
16286
whroeder1  
gabrisal94:
The indicator what i'm using does not repaint.
"Does not work" in the sense that the two buffers do not return a value different from zero.
There is another way to see if exists a dot on the chart?
  1. It doesn't repaint? That's not what you previously said.
    gabrisal94: Thanks for the reply, the indicator in the figure is only for an example (i know that repaints!)

  2. We don't know your indicator, we don't know that there are only two buffers or even if it is using any buffers, and we certainly don't know if it ever paints a dot on bar zero.
  3. Open the data window, look at the values displayed when you hover over a bar with a dot and without.
gabrisal94
40
gabrisal94  
whroeder1:
  1. It doesn't repaint? That's not what you previously said.
  2. We don't know your indicator, we don't know that there are only two buffers or even if it is using any buffers, and we certainly don't know if it ever paints a dot on bar zero.
  3. Open the data window, look at the values displayed when you hover over a bar with a dot and without.

1) I have said: "the indicator in the figure is only for an example".
2) Here you are the screen with dot and without

Green dot

Red dot

without dot

 

Thanks 

Keith Watford
Moderator
10570
Keith Watford  

As WHRoeder has said, some indicators do not place any value in the buffer for the current bar. In such cases you will not get any value returned for

double buffer1 = iCustom(NULL,0,"myIndicator",10000,true,true,"alert2.wav","email.wav",false, 0, 0);


try

double buffer1 = iCustom(NULL,0,"myIndicator",10000,true,true,"alert2.wav","email.wav",false, 0, 1);


and other values
To add comments, please log in or register