MT4-Tester VS MT5-Tester - страница 4

 
fxsaber:

Не буду спорить. Прошу форумчан, знакомых с MQL4, посмотреть этот короткий исходник и объяснить, что имеет в виду Ренат.


Наверное, я ошибаюсь, но в упор не вижу, в каком месте идет работа с историей в MT4. Прошу помощи.

Это несерьезно.

И таки наброс. Полное "непонимание" четких объяснений (любая OrderXXX функция, лазающая за данными сделок - это обращения к истории МТ4/МТ5 в полный рост) и тупой цикл на сотни миллиардов бесполезных вызовов ясно указывают на это.

 
fxsaber :

I will not argue. I ask members of the forum who are familiar with of MQL4, watch this short source code and explain what is meant Renat.


Perhaps I'm wrong, but I do not see at close range, where we are working with the history in MT4. Please help.

Renat is perfectly clear and right. Write your mql5 EA without "mql4" library and you will see the huge difference.There are enough real issues with mql5/MT5 without invent new ones.

Translation:

Ренат совершенно ясно и правильно. Написать mql5 EA без «mql4 библиотеки», и вы увидите огромную разницу. Есть достаточно реальные проблемы с mql5 / MT5, не изобретают новые.

 
Renat Fatkhullin:

Это несерьезно.

И таки наброс. Полное "непонимание" четких объяснений (любая OrderXXX функция, лазающая за данными сделок - это обращения к истории МТ4/МТ5 в полный рост) и тупой цикл на сотни миллиардов бесполезных вызовов ясно указывают на это.

Из документации

OrdersTotal

Возвращает общее количество открытых и отложенных ордеров.

int  OrdersTotal();

Возвращаемое значение

Общее количество открытых и отложенных ордеров.

OrdersHistoryTotal

Возвращает количество закрытых и удаленных ордеров в истории текущего счета, загруженной в клиентском терминале.

int  OrdersHistoryTotal();

Возвращаемое значение

Количество закрытых и удаленных ордеров в истории текущего счета, загруженной в клиентском терминале. Размер списка истории зависит от текущих настроек вкладки "История счета" терминала.

Торговые функции - Справочник MQL4
Торговые функции - Справочник MQL4
  • docs.mql4.com
Торговые функции - Справочник MQL4
 

Ну чего упираетесь?

У вас больше десятка функций OrderSelect, OrderProfit и тд. Вы в упор не понимаете, что такое ВыбратьОрдерИзВсейБазы (OrderSelect) ?

В базе больше 200 000 сделок, а вы делаете ВыбратьОрдерИзВсейБазы 200 000 раз на каждом тике. Тиков 1 800 000 штук в одном прогоне.

Так что тест исключительно про тупое сканирование истории сделок.


И еще - в тестере история доступна на всю глубину вне зависимости от настроек самого терминала.
 
У вас больше десятка функций OrderSelect, OrderProfit и тд. Вы в упор не понимаете, что такое ВыбратьОрдерИзВсейБазы (OrderSelect) ? В базе больше 200 000 сделок, а вы делаете ВыбратьОрдерИзВсейБазы 200 000 раз на каждом тике. Тиков 1 800 000 штук в одном прогоне. Так что тест исключительно про тупое сканирование истории сделок.
И еще - в тестере история доступна на всю глубину вне зависимости от настроек самого терминала.

Понимаю Рената. Оптимально написанный алгоритм , не должен лезть в историю на каждом тике. Особенно весело будет , если история состоит из тысяч и даже сотен сделок. Достаточно залезть в историю одни раз при старте можно в  OnInit  , а затем просто отслеживать только короткое пополнение истории.

 
Renat Fatkhullin:

Ну чего упираетесь?

У вас больше десятка функций OrderSelect, OrderProfit и тд. Вы в упор не понимаете, что такое ВыбратьОрдерИзВсейБазы (OrderSelect) ?

Чувствую, бан не за горами. Все молчат...

Еще цитата из документации

OrderSelect

Выбирает ордер для дальнейшей работы с ним.

bool  OrderSelect(
   int     index,            // индекс или тикет ордера
   int     select,           // флаг способа выбора
   int     pool=MODE_TRADES  // источник данных для выбора
   );

Параметры

ticket

[in]  Индекс ордера или номер ордера в зависимости от второго параметра.

select

[in]  Флаг способа выбора. Mожет быть одним из следующих величин:

SELECT_BY_POS - в параметре index передается порядковый номер ордера в списке,
SELECT_BY_TICKET - в параметре index передается номер тикета.

pool=MODE_TRADES

[in]  Источник данных для выбора. Используется, когда параметр select равен SELECT_BY_POS. Mожет быть одной из следующих величин:

MODE_TRADES (по умолчанию) - ордер выбирается среди открытых и отложенных ордеров,
MODE_HISTORY - ордер выбирается среди закрытых и удаленных ордеров.

OrderSelect - Торговые функции - Справочник MQL4
OrderSelect - Торговые функции - Справочник MQL4
  • docs.mql4.com
OrderSelect - Торговые функции - Справочник MQL4
 
Yuriy Zaytsev:

Понимаю Рената. Оптимально написанный алгоритм , не должен лезть в историю на каждом тике.

В каком месте?
 

Точно, оказывается проверка только открытых ордеров идет. Я не стал влезать в библиотеку и подумал, что сканируется история.

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

Извините, что просмотрел.
 
Renat Fatkhullin:

Точно, оказывается проверка только открытых ордеров идет. Я не стал влезать в библиотеку и подумал, что сканируется история.

Это MQL4, который многие стали забывать. Не ради кроссплатформенности на нем пишу, а просто наглядный он очень, когда пишешь под MT5 (под MT4 практически не пишу).

Повторюсь, делать набросы  - не мое. Хочется конструктивной дискуссии. Пока так

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

MT4-Tester VS MT5-Tester

fxsaber, 2017.05.08 09:13

1598 отрабатывает значительно быстрее, чем 1596. При этом даже там, где History-функции совсем не используются. Видимо, сам терминал в своих потрохах во время прогона вызывал эти ранее тормозные функции.

Исправили и хорошо. Будет очень хорошо, если и без того замечательный MT5-тестер станет еще лучше, покрыв возможности MT4+TDS

Такие настройки тестера, действительно, иногда востребованы. И будет прекрасно, если MT5 позволит делать такое не в далеком будущем.


ЗЫ А пока же один бонус от сравнения почти сразу получили. Похоже, зреет еще один.

 

Речь не о Вас ,   а о том - что правильно написанный алгоритм не должен на каждом тике ходить в историю.