Development plans for the MetaTrader 5 Strategy Tester - page 19

 

Hello.

I suggest adding an additional testing mode to the Strategy Tester.

1. Name: "With periodic profit withdrawal".

2. Implementation:

2.1 Choose a period, after which the profit will be withdrawal

2.1.1. Week, month, quarter, optional

2.2 Select the percentage of profit made during the period to be shown on the graph.

2.3 To distinguish a profit a different colour on a graphic, than the loss curve.

2.4 In the Backtest report add the column showing profit in the account currency;

3. summary

I think that this mode will give an applied estimation of strategy, showing not only that the EA is profitable (mathematically), but also if the EA is able towithdraw profit and what is the size of this profit and how this withdrawal volume will influence the EA stability. Actually, this is why advisors are created, to understand how much you can earn, not what profit curve will be shown on some time interval.
 
KoDim:

Hello.

I suggest adding an additional testing mode to the Strategy Tester.

1. Name "With periodic profit withdrawal".

TesterWithdrawal

 
KoDim:

Hello.

I suggest adding an additional testing mode to the Strategy Tester.

1. Name: "With periodic profit withdrawal".

2. Implementation:

2.1 Choose a period, after which the profit will be withdrawal

2.1.1. Week, month, quarter, optional

2.2 Select the percentage of profit made during the period to be shown on the graph.

2.3 To distinguish a profit a different colour on a graphic, than the loss curve.

2.4 In the Backtest report add the column showing profit in the account currency;

3. summary

I think that this mode will give an applied estimation of strategy, showing not only that the EA is profitable (mathematically), but also if the EA is able to withdraw profit and what is the size of this profit and how this withdrawal volume will influence the EA stability. Actually, this is why advisors are created, to understand how much you can earn, not what profit curve will be shown on some time interval.
TesterWithdrawal(), TesterDeposit()
Документация по MQL5: Общие функции / TesterWithdrawal
Документация по MQL5: Общие функции / TesterWithdrawal
  • www.mql5.com
Общие функции / TesterWithdrawal - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Artyom Trishkin:
TesterWithdrawal(), TesterDeposit( )

Artem, thank you for your reply. I was not aware of such a function.

But I'm far from being a programmer, although I'm constantly modifying my EA myself.

I've made this suggestion from the point of view of an MT5 user who buys Expert Advisors and determines the efficiency of a potential purchase.

And from the point of view of terminal and Market developers, I suggested that visualization of advisor's practical efficiency for potential clients (not programmers) will improve rating of the project...

 

Hi all!

Are there plans to add functions like TesterGet...?

For example, TesterGetDouble(TESTER_MAX_DRAWDOWN) would be useful

You can get it all without these queries, but it would be convenient to get these values directly.

 
https://www.mql5.com/ru/docs/constants/environment_state/statistics
Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Статистика тестирования
Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Статистика тестирования
  • www.mql5.com
Максимальная просадка баланса в процентах. В процессе торговли баланс может испытать множество просадок, для каждой фиксируется относительное значение просадки в процентах. Возвращается наибольшее значение Максимальная...
 
Rashid Umarov:
https://www.mql5.com/ru/docs/constants/environment_state/statistics


THANK YOU!

 

Gentlemen developers! Faced with a problem in the tester, help me find a solution!

I have a 16 core processor (32 threads), 64GB of memory so far. I was planning to use it for optimization on real ticks. But here is what I found out:

1. Each MT5 agent allocates a separate piece of memory for itself, even if the test is run on one pair, not on different ones. And, for example, if we test on crosses, it loads more majors. As a result, when testing on real ticks for the period of 2 years, each agent takes 7GB of memory. Yes, it's worth saying that I tried it on a popular broker, which has 70% of ticks repeating (with the same Ask and Bid), then I will use custom filtered history. So to load 64GB of memory, you can only test on 8 agents. Exit - custom history with filtered repeating ticks, constant control of memory size and hence testing period, plus 64GB of memory and test on 16 agents. Is that how it works!? So this is me testing for two years.... what if we take a longer period...?!


2. I put a temporary SSD from another computer EVO 860. When running optimization even of 8 passes, agents try to access the SSD at the same time to pump for themselves in the RAM tick history. No queuing is provided, which causes the SSD to go "red" and the MT5 logs are riddled with errors:

I used 16GB of memory with 8 threads and the drive swapped instantly, no such errors occurred, but it was impossible to test this way for a long time. Now the tester cannot run its passes because it cannot download ticks, though it writes that it has not enough memory! Really, if I estimate that my SSD was pushing at that time up to 600MB/s, even 64GB RAM would take more than 100 seconds to fill. Consequently, old SSD is not suitable at all, I'm waiting for a faster one (up to 3500MB/s), but even with it, if I add another 64GB, all the memory will fill in more than 30 seconds. I.e. the errors will remain.


So, Gentlemen Developers. We need your attention to this problem, otherwise using multi-core processors is extremely inconvenient, and even useless! Maybe I'm doing something wrong or there are some options I'm not aware of? I would appreciate it!

If possible, it would be wonderful to use RAM memory more economically. Even if only when optimizing on one currency pair! After all, if the test is run on one pair, surely all agents can refer to one and the same memory space. Why would each of them produce copies? Then there will be no problem in memory shortage, in speed of reading from the hard disk and the design will be cheaper!

If it is not possible, is it possible to organize some kind of queue for access of agents to hard disk and (or) increase time of waiting time of copying, or, if one pair is tested, make a copy of identical blocks from RAM to RAM. But optimising the memory usage would of course be much more efficient! Tell me, are there any similar improvements planned for RAM? Or it cannot be and it is necessary to increase its volume?

Thank you!

 
dsfx:

The developers promised to think about it after the New Year.

 
Is there any way to assign a commission to custom characters, something I can't find? Markup won't be exactly what I need