I will write an advisor free of charge - page 147

 
I haven't attached it to a timeframe, it searches there.
 

Aleksei Stepanenko:
Я его не привязывал к таймфрейму, на какой прикрепишь, там и ищет.

But for some reason the fake alert was buzzing all night long, no signal but it kept popping up, I only threw it on euros, I can imagine if it was on all currencies.

What could be wrong?

 
It works fine for me, maybe it was thrown somewhere for a minute or a long distance, so it's beeping. Take a screenshot of the experts' tab.
 

Knock-knock Indicator Ver 3

Added a timeframe to the alert, you can see where the signal is coming from.

 

i.e. if there is a difference in seles or bays i should always have a pendent for the difference of say 13 pips.

I.e. if there is a difference in settlements or bays there should always be a pending order for a difference of say 13 pips. thanks in advance for your help.

 
Aleksei Stepanenko:

Knock-knock Indicator Ver 3

Added a timeframe to the alert, you can see where the signal is coming from.

I think I have it figured out.

For example, our candlesticks were properly placed at 8:35 but Alert was triggered at 9 o'clock, when the price had already moved.

We will not be able to work that way, if we set it on m5, it will be hell, there will be a lot of signals.

Ch1 is the best for intraday (my personal opinion), and as I've already asked, is it possible to do customisation?

Different pairs definitely have different volumes

Files:
22222.JPG  96 kb
 


Just now, at 11:00 Moscow time, a new candle appeared, only then did the alert come out

 
Ivan:

I think I understand what is going on.

It turns out that alert is linked to the time frame, if it is at H1, it gives a signal once per hour, for example, our candlesticks were properly set at 8:35 and alert was triggered only at 9 o'clock, when the price had already gone.

We will not be able to work that way, if we set it on m5, it will be hell, there will be a lot of signals.

Ch1 is the best for intraday (my personal opinion), and as I've already asked, is it possible to do customisation?

Different pairs definitely have different volumes

No, that's not it. You are looking at the trend reversal point. And there, there is often a double bottom/top. But if you look at the WHOLE chart, there too, the bars will often have close extrema. If you want the result according to your idea, you should also introduce a filter, or even several filters, then the accuracy of identifying tops/troughs will increase.

 
Александр:

No, that's not it. You are looking at a trend reversal point. And there, there is often a double bottom/top. But if you look at the WHOLE chart, there too will often be bars with close extrema. If you want results according to your idea, you should also introduce a filter, or even several, then the accuracy of identifying tops/troughs will increase.

We're just getting started, what I wrote above. I understand what this is about.

The alert goes out exactly every hour (if Ch1 is set) it cannot give a signal at 9:25, exactly at the start of a new hour.

first it needs to be corrected and then test

 
Ivan:

We have just started, what I wrote above I understand what is wrong

Namely the alert goes out exactly every hour (if Ch1 stands) it can not give a signal at 9:25, exactly at the beginning of a new hour.

First you need to fix it and then test

I would also change the code a bit.

int OnInit()
   {
   IndicatorDigits(Digits); //Чтобы точнее индюк показывал
   symbol=Symbol();
   frame=(ENUM_TIMEFRAMES)Period();
   str=symbol+" "+EnumToString(frame);
   StringReplace(str,"PERIOD_","");
   point=SymbolInfoDouble(symbol,SYMBOL_POINT);
   SetIndexBuffer(0,up);
   SetIndexStyle(0,DRAW_ARROW);
   SetIndexArrow(0,159);
   SetIndexBuffer(1,dn);
   SetIndexStyle(1,DRAW_ARROW);
   SetIndexArrow(1,159);
   return(INIT_SUCCEEDED);
   }
...................
if(MathAbs(iHigh(symbol,frame,shift)-iHigh(symbol,frame,shift+1))/point<= Distance) //Чтобы  нулевое расхождение тоже показывало
         {
         up[shift]=MathMax(iHigh(symbol,frame,shift),iHigh(symbol,frame,shift+1));
         up[shift+1]=up[shift];
         if(fin==calc) Alert("Тук-тук вверх на "+str);
         }
      if(MathAbs(iLow(symbol,frame,shift)-iLow(symbol,frame,shift+1))/point<= Distance)//Чтобы  нулевое расхождение тоже показывало
         {
         dn[shift]=MathMin(iLow(symbol,frame,shift),iLow(symbol,frame,shift+1));
         dn[shift+1]=dn[shift];
         if(fin==calc) Alert("Тук-тук вниз на "+str);
         }