I made one of these things once ... - page 8

 
Candid:
Most often the reason for stopping calculation is division by zero, you just need to be patient (if the code is long), charge search "/" and bluntly insert check for divider by zero everywhere and print an error message if 0....

I tried to substitute the minimum value, the indicator explodes (like eurodollar exchange rate in 5 minutes, six digits) the algorithm is iterative, I started to check with matcad, but it is not 0, it is an imaginary number, I tried to put a minimum value in it and the indicator explodes (like EURUSD, six-digit number). I started to compare it with the matcad, but it's not 0, it's imaginary, matcad doesn't care about it, but MQL should write a library that spins matrices of imaginary numbers - I gave up and burned it. That's why I wrote, I limited it to a reasonable limit, it works fine for me, I understand how it works, how to run it and how to interpret it...

I don't think it's enough for manual trading, i have many ideas, i want to test it, i want to see, test it, but this Kalman is not the only one.

i have an idea for a round level check, i think i'll try it tomorrow, maybe something interesting will come out, i can't sleep any more, the heat is getting too hot, my brain is melting

I hope if alexei (mathematician) has been following the message he won't lie.

 
Prival:

I tried to substitute the minimum value, the indicator explodes (like eurodollar exchange rate in 5 minutes, six digits) the algorithm is iterative, I started to compare it with matcad, but it is not 0, it is an imaginary number, I tried to put a minimum value in it and the indicator explodes (like EURUSD price in six-digits per minute). I started to check it with matcad and it's not 0, it's imaginary, matcad doesn't care about it, but MQL should write a library that spins matrices of imaginary numbers - I gave up immediately, it won't be worth it, that's why I wrote, I brought it to a reasonable limit, I got enough for it, I understand how it works, how to run it and how to interpret it...

I don't think it's enough for manual trading, i have many ideas, i want to test it, i want to see, test it, but this Kalman is not the only one.

i have an idea for a round level check, i think i'll try it tomorrow, maybe something interesting will come out, i can't sleep any more, the heat is getting worse, my brain is melting

I hope if alexei (mathematician) keeps a close eye on the message he won't lie.

Sometimes there is rubbish in the price stream.

I personally recommend not to blindly trust time series.

In Mt5 this problem is even more serious.

That's why "division by zero" occurs in an unthinkable place...

;)

 
Prival:

exactly 0, yes there is a division, ... I tried substituting the minimum value, the indicator explodes (like the eurodollar exchange rate in 5 minutes of work is a six-digit figure) the algorithm is iterative,

Of course I don't know all the specificity of the indicator, but it is more logical in this situation, just skip a step, ie restore the state at the beginning of the failed iteration and start the next one from it.
 
Prival:

I tried to substitute the minimum value, the indicator explodes (like the eurodollar exchange rate in 5 minutes, six digits), the algorithm is iterative, i started to check it with matcad, but it is not 0, it is an imaginary number; matcad does not care about it and i should write a library in MQL that spins matrices of imaginary numbers.

Why not do something simpler - just import quotes into Matcad and write a simple tester there to calculate statistics - without getting involved in MQL?

If the algorithm works on a more or less long history - rewriting it in MQL will not be a problem.

 
Candid:
I agree that zig-zagging is not exactly a straightforward test of 'round' levels. It's not really easy to work out how to get such statistics right. Nevertheless, the effect of the 00 levels zigzag feels, so we can agree that there is an effect, but the question of its strength remains open.

The spike in 00 of course takes place, but the slump in the next 6 values is quite obvious. And the dip for 99 compensates this spike almost completely. IMHO, to move the market by 1 point in order to reach the round level seems to be quite possible for the market makers. The question is, is it worth the attention?
 

By the way, yes, I have somehow mechanically given the figure, but the situation with 99, 00 and 01 shows a clear asymmetry with respect to up and down, which is odd. Closer construction gives a slightly different diagram.


Alas, no trace of the effect.

 
Candid:

By the way, yes, I have somehow mechanically given the figure, but the situation with 99, 00 and 01 shows a clear asymmetry with respect to up and down, which is odd. Closer construction gives a slightly different diagram.


Alas, no trace of the effect.


can you tell me more about what this graph is and how it is constructed ?
 
Prival:

Can you explain in more detail what kind of chart it is and how it is built?

The data at the moment of fixing the ZZ vertex is recorded like this:

              IExt = CurMax*100;
              CExt = MathRound(CurMax*10000);
              FileWrite(h,Time[Bars-CurMaxBar],CExt-IExt*100);

              ...

              IExt = CurMin*100;
              CExt = MathRound(CurMin*10000);
              FileWrite(h,Time[Bars-CurMinBar],CExt-IExt*100);

I then imported the file into matlab and plotted the distribution. It can probably be built in matcadab as well.

By the way, it can also be built in the terminal, the induke is in the attachment


P.S. It would be nice to add this line to the header.

#property indicator_minimum 0.0
Files:
 

As I understand it, this test shows where the zigzag breaks more often. Near the level or not. But this is a test of the zigzag but not of the performance (significance) of the circular levels.

The zigzag has nothing to do with it at all. It seems to me that we should check from the viewpoint of efficiency for entering the market; there is such an indicator https://www.mql5.com/ru/forum/126953/page10

I will explain here in the figure


I took the circular level 1.29 as an example

  1. We take the simplest case. Without any filters. The price has broken through the level upwards - let us buy. On the chart, it is point 1 and 2 (there are more points, I chose two, so as not to overload the figure)
  2. the exit after 1 hour, it is not important, we may take another number. The main thing is the same for all, this parameter should be fixed otherwise there will be ambiguity in the analysis of results statistics.
  3. for the time of existence of the deal in the market, from point 1 to point 1-1, fix (remember) the point of maximum and minimum price, as well as the value of the deal itself, all in points.
  4. We run through the history and memorize all these data. Using them we calculate the effectiveness of entry, exit and effectiveness of the transaction. Calculate the average.
  5. Repeat the same steps 1 through 4 for sell.

Now we take other levels 00+10, 00+20.... etc. obtain statistics for each level and compare these statistics with zero = rounded level.

For the extracted points.

#1 drawdown 10 points = entry point - minimum,

Exit efficiency (maximum - exit point = 8 pips)

Profit value (exit - entry point=22 pips)

Movement range (max-min=38 pips)

At point number 2, the drawdown will be = 0, because (entry = minimum), this is the perfect entry, there is no better, the price did not go against you a single pip.

S.I., that's how you need to check, + the number of entry points should be large, so you can get a statistically significant result.

 

Well, you could do something like this, then you could do it with options without any unnecessary inputs on the chatter around the level. I wonder if there will be any volunteers to write an expert? :)

By the way, coming back to this topic, it may be just the algorithm of basic set of inputs-outputs. I have to think about it, maybe it's really worth a look.