Multicurrency expert test results - page 2

 
Yedelkin:

If so, I don't really understand phrases like "Test on EURUSD instrument from GBPUSD chart". Which symbol in this case serves as a signal source, and which one has a signal handler attached to it?

From the available options we can logically suppose that the first symbol works, and the second one is used to receive signals and make trades.
 
Interesting:
From the available options, it is logical to assume that the first symbol is working and the second one is used to receive signals and make trades.
So, the second symbol is the source of the signal, on the basis of which the signal handler makes the trade? But then the signals coming from different symbols are compared. What kind of identical trading results are we talking about?
 
Interesting:
You have to take into account a possible lag in event handling, or even a possible LOSS of an event.

Of course, this also has to be taken into account. In a programme designed to trade automatically, everything has to be taken into account. At least as much as possible. At the moment there are two modes: Normal and Arbitrary delay. The developers have already announced that they will gradually bring the testing process closer to reality. That's encouraging. Illusions need to be cut at the root.

The results shown were obtained in Normal mode. For this test, this is what was needed.

papaklass

From the given codes it is not clear how you open positions (pending orders or from the market). Look at the time of opening and closing positions in your tests and respectively open/close price. I assume that they will be different. This is the reason for the divergence of results.

Positions are opened from the market. Your assumption would be correct if none of the methods has identical results. But on the timer the results coincide exactly.

Yedelkin

Like, the second symbol is the source of the signal, on the basis of which the signal handler trades? But then the signals coming from different symbols are compared. What kind of identical trading results are we talking about?

No. The phrase "Test on EURUSD from GBPUSD chart" means that I am trading onEURUSD, but my Expert Advisor is onGBPUSD chart. All the results are onEURUSD, I just switched from one symbol to another.

-----

The data is the same, conditions are not changed, parameters are the same, test modes are the same. The results should be the same. The only difference is which instrument the Expert Advisor is on. We just need to implement the method that will correctly perform the test. There is one. This is the OnTimer() function with the minimum interval. But it is the longest. The next in priority is OnChartEvent(). But it produces incorrect results. Perhaps I am using this method incorrectly. What is the right way then? Looking at the code everything looks logical, but it doesn't work.

 

tol64:

...... You just need to implement a method that will run the test correctly. There is one. It is OnTimer() function with minimum interval. But it is the longest.

It seems to me that 10 seconds is too short an interval. If only generated bars are of interest, the interval should be at least one minute.

There is no sense in making it shorter. A minute is a reasonable minimal interval.

 
papaklass:
The non coincidence of results when you open positions by bars and the coincidence of results when you open positions by timer, on the contrary, confirms my assumption. When you open positions by timer (especially from the market, rather than by pending orders at a fixed price), the time of opening positions coincides, and therefore the price coincides. If you open positions by bars, then due to the fact that the time of bar formation is not the same in different charts, the time shift occurs when you open positions. It means that there is also a shift in price. This shift gives a divergence of results. Compare the time of opening the positions and the price at which they are opened. You will see the difference.

This makes sense.

I have an idea in mind: why don't we suggest adding a"close price" testing mode to the meta-quotes?

This would solve the problem with synchronization of quotes when testing on formed bars (not on ticks).

 
MetaDriver:

This is all understandable.

I have a thought in connection with this whole epic: should we suggest adding a"close price" testing mode to the meta-quotes?

This would solve the problems with quote synchronisation when testing on formed bars (not ticks).

No.

How in real life (not in the tester) would you determine: "Here is the moment of bar closing" ?

 
stringo:

No.

How in real life (not in the tester) would you determine, "Here's the moment the bar closes"?

By the clock. And don't argue with me - you'll only spoil your karma. ;)

The difference between testing by timer and testing "by close prices" will only be that sampling of time (and omission of weekends and holidays) can be performed only once - at generation of the FXT-file, after that all optimization will be performed using ready-made time points that need not be calculated in a timer during each run.
You should do it - if only for the love of beauty!

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы - Документация по MQL5
 
MetaDriver:

It seems to me that 10 sec. is too short an interval. If you are interested only in formed bars, the interval should be no less than one minute.

There is no point in making it shorter, only to slow it down.

Yes, I agree. But I got down to 10 seconds by going through the options from the D1 interval (86400 seconds). Anything above 10 seconds showed a discrepancy, the bigger the interval. For me I need maximum accuracy. As if the same copy of the EA was at all symbols simultaneously. In principle, you can trade like that in real life. But before I start trading, I need to adequately test everything. Before that, while writing the system in MQL4, I was testing each symbol separately and the data was being exported to Excel. All the calculations and the analysis of the obtained results I performed in Excel. Unfortunately, nowadays the terminal does not allow to fully analyze the obtained results. That's why I did it all in Excel.

This is, for example, what I need to correctly estimate the test results:

And then the results of all instruments are displayed on another chart where I can see the aggregate result.

And after that the capital management system is applied in the end:

And the parameters can be changed and the result can be updated. In other words, the money management system is customizable. And all this in Excel.

After that I started to study MQL5, because it all can be done quicker. )) I wish the developers of the terminal would implement such a representation of test results. It would be a super global trading platform then)).

 
MetaDriver:

By the hour. And don't argue with me - you'll only spoil your karma. ;)

What's wrong with opening the next bar then?

 
papaklass:
The non coincidence of the results when opening positions by bar and the coincidence of the results when opening positions by timer, on the contrary, confirms my assumption. When you open positions by timer (especially from the market, rather than by pending orders at a fixed price), the timing of opening positions coincides, and therefore the price coincides. If you open positions by bars, then due to the fact that the time of bar formation is not the same in different charts, the time shift occurs when you open positions. It means that there is also a shift in price. This shift gives a divergence of results. Compare the time of opening the positions and the price at which they are opened. You will see a discrepancy.
This is all true.The matter is that I stopped at the timer, as the most accurate method. But I found Konstantin Gruzdev's method very convincing. The article describes it all in detail. And the events are clearly recorded in the log. So I am using his method incorrectly. It is interesting to hear the author's comment then.
Reason: