MetaTrader 5 Strategy Tester: bugs, bugs, suggestions for improvement - page 64

 

It seems that when starting the test (ie by clicking "Start" in the Strategy Tester), the Tester agent is not copying the required files (including the DLL) to its internal MQL{Libraries folder. I've identified two events:

If I have a "Test.dll" file in my EA, then

1) Strategy Tester complains that the Test.dll.ex5 file is not found

2) The Test agent does not copy Test.dll to its internal folder and thus, the Strategy Tester complains that Test.dll cannot be found

% appdata% \ Roaming \ MetaQuotes \ Tester \ <MT5 ID> \ Agent-127.0.0.1-3000 \ MQL5 \ Libraries \

 
Rashid Umarov:

There was no ban

There was a hard IP blocking - the server was unavailable. It was impossible to log in through an anonymizer, as the password was supposed to be wrong.

In general, standard automatic protection from unscrupulous users.

 
Luis:

It seems that when starting the test (ie by clicking "Start" in the Strategy Tester), the Tester agent is not copying the required files (including the DLL) to its internal MQL{Libraries folder. I've identified two events:

If I have a "Test.dll" file in my EA, then

1) Strategy Tester complains that the Test.dll.ex5 file is not found

2) The Test agent does not copy Test.dll to its internal folder and thus, the Strategy Tester complains that Test.dll cannot be found

% appdata% \ Roaming \ MetaQuotes \ Tester \ <MT5 ID> \ Agent-127.0.0.1-3000 \ MQL5 \ Libraries \

I have the same error in Strategy Tester!

2020.02.25 02:03:35.725 Tester file ***.dll.ex5 open error [2]

If you rename the library (add the .ex5 extension), you get another error:

2020.02.25 02:09:32.567 2020.02.18 00:00:00 Cannot call 'Receive_Information', '***.dll' is not loaded

2020.02.25 02:09:32.568 2020.02.18 00:00:00 unresolved import function call



 
Slava:

Reproduced exactly with the stop button pressed.

If you need to do a responsible optimisation, it's probably better to do it after restarting the Terminal, without hitting the Stop button.

 
fxsaber:

If you need to do a responsible optimisation, it is probably better to do it after restarting the Terminal, without pressing the Stop button.

Possibly. But we shouldn't depend on it.

This behaviour (with pressing the stop button) has been fixed, and the fix is included in the latest release

 
Slava:

Possibly. But we should not depend on it.

This behaviour (with the stop button) has been fixed, and the fix is included in the latest release

Then you have to look again for the reason why the optimisation pass is not the same as the single pass.

 
fxsaber:

Then we have to look again for the reason why the optimisation pass does not match the single pass.

Is the test expert counting milliseconds of ticks giving discrepancies?

That's what we caught the problem with, and then we checked it with the same Expert Advisor

 
Slava:

Is the test EA counting milliseconds of ticks giving discrepancies?

Caught the problem on it, then checked by the same expert

This EA in 2340 did not show more discrepancies.


The pass mismatch occurred in the live EA. I will use the method that proved itself last time.

Forum on trading, automated trading systems & strategy testing

MetaTrader 5 Strategy Tester: bugs, bugs, suggestions for improvement

fxsaber, 2020.02.20 08:57

I have compared the timeframe stats obtained during GA optimization. And the stait of the single pass.


In the frame-state the execution goes by ticks that are not in the history: I noticed at once that there are a lot of deals/orders, which are executed by exactly one second.

For example, a single pass in history has an entry at 2019.06.04 02:00:00.206, and a frame pass at 2019.06.04 02:00:00.000(tick history has no tick at that time).


It takes a lot of time to do that...

 
Experiment environment:

MT5 build 2342 beta
an EA without market order (pending order only)
16487771 ticks custom symbol data
4 local test agents
4 physical CPU core, 32g ram, Windows 7 x64


Experimental method:

Set up a corresponding virtual tranding operation for each real trading operation.

Using the FrameAdd () and FrameNext () functions to output some information from the optimization process and log it to a local text file (Excel A to T).


Experiment result:

There is less than 20% chance that the optimization task will be completed perfectly, with the same correct results as a single test.

But in the vast majority of cases, all the results returned by the optimization task are wrong.



During a single test and successful optimization test, all the results of real and virtual trading operations are identical.

During the failed optimization test, only the virtual tradings can return the correct transaction result, while all the data returned by the real trading operations, such as the number of transactions and the profit amount, are all wrong.

(Under normal circumstances, a real trading operation would call the OrderSend () function correctly and feedback the transaction status information in OnTradeTransaction () and OnTrade ().

B: order pass number
D: quantity of ticks processed
F: sum of all ask prices
H: sum of all bid prices
J: quantity of virtual pending orders
L: quantity of virtual trades
N: net profit of virtual trading

P: quantity of real pending orders
R: quantity of real trades
T: net profit of real trading


All values from column D to N are correct (green box) means tick data processing in the optimization task always works properly.


Wrong values in red box:

1. about P:
P should be exactly the same as J, because both virtual and real should count the number of pending orders under the same preconditions.
The preconditions are met, enter the code block for pending, P ++ immediately. After that, enter OrderSend ().
The extremely abnormal P results means that the subsequent instructions sometimes jump correctly (J) and sometimes do not jump correctly when the program is running under the same conditions.

2. about R:
R is counted in OnTradeTransaction ().
The order in P, if triggered, should be counted in R.
All R zeros mean that the real trading activities in the EA running never entered OnTradeTransaction ().
Perhaps this is because the current P results are only random errors, not meaningful pendings?

3. about T:
The profit or loss in T should come from the position in R.
If the positions counter in R are all zero, where does the profit/loss calculations in T come from?


4. One final note:
The value of P is very close to the "Total Trades" value returned by the strategy tester, but not exactly the same.
Based on my multiple tests, it seems that the value of "Total Trades" is always in the same arithmetic sequence as the input optimization parameter of EA, and has the same step value.
It is normal for input parameters to be arithmetic sequences, but the value of a variable whose meaning is completely irrelevant is also a similar arithmetic sequence?

 

Why doesn't a moderator come running in here and delete the post and leave it instead:

<DELETED>

This is an English language forum

Post in English

? Double standards?