Strategy tester (question for the future) - page 5

 
Kos:
Will it be possible to define the type of agent programmatically - Local/Remote ?

Why?
 
stringo:
Why?

The use of this option would be useful in organizing the distribution of logs of MQL programs during testing, limiting function calls from external DLL modules, etc.

IMHO If the concept of the tester is such that you can use it in different modes, then accordingly there is a need or desire to define these modes programmatically.

 

1. Early binding will not allow ex5 loading on remote agents using functions imported from a DLL

2) Testing must be done in exactly the same way on both local and remote agents. Otherwise, we're all in for some miraculous results

 
stringo:

1. Early binding will not allow ex5 loading on remote agents using functions imported from a DLL

2) Testing must be done in exactly the same way on both local and remote agents. Otherwise, we're all in for some miraculous results

Thank you for the clarification
 

In my practice I always use the extended log messages when opening and modifying positions/orders.

Of course, as it happens, the terminal itself also outputs its own information about the event. But in many cases this information is unnecessary.

It is important exactly for tracking tester messages (of course, we are not talking about real logs).
because we have too many messages + our own messages and the resulting log doubles.

Therefore there is a request to make output of tester messages configurable (possibility to turn off output for some events and replacement with user defined strings)

For a start, I think it will be sufficient to disable message display for different types of trade events (read different functions) in the tester.
This can be done by creating and filling in the structure of tester behavior (of _TesterInfo type) for different trade events.

Or alternatively

void OnLog(
   ushort  send_id,     // идентификатор запрошенного события // например модификация  ордера
   ushort  rec_id,     // идентификатор возвращенного события // например ошибка модификации
   long    lparam,    // параметр типа long // например тикет ордера
   string  sparam     // сформированная строка на вывод самим тестером 
{
   /*
   здесь можно переопределить выводимую строку в лог журнала Тестера по своему усмотрению
   на основании тикета в параметр sparam, и передать её дальше на вывод в базовую функцию  
   
   Например, по событию MODIFY_SLTP и возвращенному ответу + известному тикету lparam пользователь сам сможет 
   сформировать и вывести ту информацию, которая ему больше всего интересна для данного случая
   
   */

   return(::OnLog(send_id, rec_id, lparam, sparam)); // вызов базовой функции вывода в журнад тестера

}
 
I would very much like to see in the tester in the future the ability to add your own columns in the optimization results.
Since my criterion "Custom max" (as well as many others, I'm sure) consists of several custom indicators,
which I wanted to see not only in single pass mode, but during optimization as well.

So that you can really see which parameter has caused the "Custom max" to increase in one passage or another.

And not only because of this. I'm sure that many people will share my opinion that during optimization of parameters it would be desirable to track such indicators as:
- different types of drawdowns
- percentage ratio of profitable trades to loss-making ones (in different directions)
- stability
- linear regression of the balance growth line (remind of the theme)
- criterion of trades quality as the ratio of points to the time of the open position
etc ... each has its own development of indicators ...

I would like to ask developers...
Is there any hope that this useful option will one day be available?

Математика в трейдинге. Оценка результатов торговых сделок - Статьи по MQL4
  • www.mql5.com
Математика в трейдинге. Оценка результатов торговых сделок - Статьи по MQL4: автоматическая торговля
 
It is not clear from your post whether you are aware of the OnTester() function.
 
Rosh:
It's not clear from your post - do you know about the OnTester() function.

It's strange how it's not clear. I clearly described in the beginning about "custom max", which is directly connected with OnTester().
Not only do I know, but I consider this innovation to be almost half of the whole value of the new version of MT.
I'm very interested (and I'm sure not only me, but many people) in the main question... the essence of which was described earlier...
Tell me please, is there any hope?
 
Shurik740:
It's strange, how it is not clear. I've explicitly described in the beginning about "custom max" which is directly tied to OnTester().
Not only do I know, but I consider this innovation to be almost half of the whole value of the new version of MT.
I'm very interested (and I'm sure not only me, but many people) in the main question... the essence of which was described earlier...
Tell me please, is there any hope?

So implement the calculation of your own fitness function in OnTester, and optimise with it. Or is that not the question? There is a separate column for OnTester() values in the "Optimisation results" report.


 
Rosh:

So, implement your own fitness function in OnTester and optimize by it. Or the question is not about it? For values of OnTester() function a separate column is output in report "Optimization results".

Right, that's not the question.
I really wanted to see, apart from the result, a lot of other useful indicators, which are not in the standard set. As well as the actual developed ones, which many, I'm sure, have.

My formula for calculating "custom max" consists of a combination of 7 different indicators (I'm sure like many). Each pass "custom max" grows more and more, and to check which indicators are improving, I have to stop the optimization and look at a single pass, no other way (((

Open the possibility to view any of your developed indicators without stopping the optimization, directly in the separate (enabled/disabled) columns.
Every trader will thank and bow to you for that. I'm sure there is no one who finds it superfluous.

Tell me, is there any hope? Or is it not worth the trouble...