Тестер стратегий MetaTrader 5: ошибки, баги, предложения по улучшению работы - страница 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:

Бана не было

Была жесткая блокировка по IP - сервер недоступен. Через анонимайзер невозможно было залогиниться - якобы пароль неверный.

В общем, стандартная автоматическая защита от недобросовестных юзеров.

 
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 \

У меня такае же ошибка в тестере стратегий!

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

если переименовать библиотеку (добавить расширение .ex5), выдает другую ошибку:

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:

Воспроизвёл именно с нажатием стопа.

Если нужно сделать ответственную оптимизацию, то, наверное, лучше делать это после перезапуска Терминала, без нажатий на кнопку Стоп.

 
fxsaber:

Если нужно сделать ответственную оптимизацию, то, наверное, лучше делать это после перезапуска Терминала, без нажатий на кнопку Стоп.

Возможно. Но мы не должны от этого зависеть.

Это поведение (с нажатим кнопки стоп) исправили, и исправление вошло в последний релиз

 
Slava:

Возможно. Но мы не должны от этого зависеть.

Это поведение (с нажатим кнопки стоп) исправили, и исправление вошло в последний релиз

Тогда нужно искать снова причину, почему оптимизационный проход не совпадает с одиночным.

 
fxsaber:

Тогда нужно искать снова причину, почему оптимизационный проход не совпадает с одиночным.

Тестовый эксперт, подсчитывающий миллисекунды тиков, даёт расхождения?

На нём и поймали проблему, потом этим же экспертом и проверяли

 
Slava:

Тестовый эксперт, подсчитывающий миллисекунды тиков, даёт расхождения?

На нём и поймали проблему, потом этим же экспертом и проверяли

Этот советник в 2340 не показывал больше расхождений.


Не совпадение проходов возникло в боевом советнике. Буду использовать метод, зарекомендовавший себя хорошо в прошлый раз.

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Тестер стратегий MetaTrader 5: ошибки, баги, предложения по улучшению работы

fxsaber, 2020.02.20 08:57

Сопоставил стейт, полученный через фрейм во время ГА-оптимизации. И стейт одиночного прохода.


Во фрейм-стейте исполнение идет по тикам, которых нет в истории: сразу обратил внимание, что очень много сделок/ордеров, которые совершаются по времени ровно в секунду.

Например, одиночный проход в истории имеет запись в 2019.06.04 02:00:00.206, а фрейм-проход - 2019.06.04 02:00:00.000 (история тиков не имеет тика в это время).


Времени на это уходит немало...

 
Experiment environment:

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


Experiment 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: optimization pass number
D: quantity of ticks processed
F: sum of all ask price
H: sum of all bid price
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 sequences?

 

Почему сюда не прибегает модератор и не удаляет сообщение, оставив вместо него:

<DELETED>

This is an English language forum

Post in English

? Двойные стандарты?