Конкурс для программеров на 100 WMZ - страница 2

 
GarF1eld писал(а) >>

Кажется, Вы меня не поняли =)

Я интересовался может ли только что закрытый ордер помещаться не в конец списка в истории?

Да! Но не в тестере.

 
Integer >>:

Да!

Тогда, думаю можно считать вопрос решенным.

А можно узнать почему так? Думаю подобная тема уже поднималась


Кстати кто еще хочет найти проблему, но не хочет просматривать весь лог в поисках аномалий. То предлагаю регулярку, которую я применял к html коду отчета тестера. Использовал Expresso

<tr\sbgcolor=\"#E0E0E0\"\salign=right><td>\d+</td><td\sclass=msdate>[\d\.\s\:]+</td><td>s\/l</td><td>\d+</td><td\sclass=mspt>[\d\.]+</td><td\sstyle=\"mso-number-format:0\\\.0000;\">[\d\.]+</td><td\sstyle="mso-number-format:0\\\.0000;\"\salign=right>[\d\.]+</td><td\sstyle=\"mso-number-format:0\\\.0000;\"\salign=right>[\d\.]+</td><td\sclass=mspt>[\d\.]*</td><td\sclass=mspt>[\d\.]*</td></tr>[\n\s]*
<tr\salign=right><td>\d+</td><td\sclass=msdate>[\s\d\.\:]+</td>(?#<td.*?</td>)<td>(buy|sell)</td><td>\d+</td><td\sclass=mspt>1\.00</td><td\sstyle=\"mso-number-format:0\\\.0000;\">[\d\.]+</td><td\sstyle=\"mso-number-format:0\\\.0000;\"\salign=right>[\d\.]+</td><td\sstyle=\"mso-number-format:0\\\.0000;\"\salign=right>[\d\.]+</td><td\scolspan=2></td></tr>

P.S. Да, я псих! :)

 
GarF1eld писал(а) >>

В таком случае Вам не кажется подозрительным что ваш эксперт ставит позиции только лотами 1.00 и 2.10 ? =)

Извиняйте, накосячил. Исправил. Перезалил.

 

Integer писал(а) >>


GarF1eld писал(а) >>

Кажется, Вы меня не поняли =)

Я интересовался может ли только что закрытый ордер помещаться не в конец списка в истории?



Да! Но не в тестере.

Проверил гипотезу Integer, т.е. вставил в init() вывод времени открытия и закрытия ордеров и запустил советника на реальном счету. Выяснилось, что сортировка в истории идет по времени открытия, т.е. время закрытия может быть и не по порядку. Причем независимо от того, как отсортирована история счета в терминале.


Но это сути не меняет, т.к. в советник может открывать на символе и с уникальным магиком только одну позу. А следовательно, если выбирать из истории ордера по магику и символу, то сортировка времени открытия и времени закрытия абсолютно одинакова (иначе ордер должен закрыться раньше, нежели открыться).


У меня предположение, что причина не в неправильной сортировке позиций в истории, а в брокере. Т.е. встречаются иногда брокеры, которые при переходах через день закрывают старую позу и открывают новую со сдвигом цены открытия на размер свопа. При этом магик обнуляется. Если старая поза закроется с профитом, а новая по лосю, то вполне возможна вышеописанная ситуация, т.е. сброс размера лота к первоначальному объему.

 
Открою страшную тайну, ордера в истории сортируются ни по времени открытия, ни по времени закрытия.
 
Т.е. рандом или есть какой-то критерий?
 
goldtrader писал(а) >>
Т.е. рандом или есть какой-то критерий?

По тикету. Тикеты не всегда идут с увеличением. Один вопрос остается - сортируются ли они всегда по мере закрытия ордеров, или, во время работы, закрытые ордера добавляются в конец списка. Поэтому лучше всегда собирать в массив и сортировать как надо.

 
Integer >>:
Открою страшную тайну, ордера в истории сортируются ни по времени открытия, ни по времени закрытия.

Наверное это действительно страшная тайна, т.к. у меня все позы в истории отсортированы строго по времени открытия. Хотя от разработчиков было другое объяснение (см. https://forum.mql4.com/ru/7453 ):



Renat >>:
Никакого бага нет. Сделки в Account History сортируются по дате (исправлено) закрытия, а не по номеру тикета.
 

В общем, черт его знает, как там сортируются позы в этой самой истории. Разработчики могут сделать и так и эдак. Проще их взять и отсортировать самостоятельно.


Готовую функцию нашел на блоге Rosh-a: http://simple-testing.blogspot.com/2007/07/blog-post_3924.html



Ее и придется воткнуть.


По меньшей мере, это наиболее приемлемое решение.
 
Reshetov писал(а) >>
Проще их взять и отсортировать самостоятельно.
И это будет правильно. Нельзя надеяться на умолчания!
Причина обращения: