Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Кажется, Вы меня не поняли =)
Я интересовался может ли только что закрытый ордер помещаться не в конец списка в истории?
Да! Но не в тестере.
Да!
Тогда, думаю можно считать вопрос решенным.
А можно узнать почему так? Думаю подобная тема уже поднималась
Кстати кто еще хочет найти проблему, но не хочет просматривать весь лог в поисках аномалий. То предлагаю регулярку, которую я применял к 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. Да, я псих! :)
В таком случае Вам не кажется подозрительным что ваш эксперт ставит позиции только лотами 1.00 и 2.10 ? =)
Извиняйте, накосячил. Исправил. Перезалил.
Integer писал(а) >>
Кажется, Вы меня не поняли =)
Я интересовался может ли только что закрытый ордер помещаться не в конец списка в истории?
Да! Но не в тестере.
Проверил гипотезу Integer, т.е. вставил в init() вывод времени открытия и закрытия ордеров и запустил советника на реальном счету. Выяснилось, что сортировка в истории идет по времени открытия, т.е. время закрытия может быть и не по порядку. Причем независимо от того, как отсортирована история счета в терминале.
Но это сути не меняет, т.к. в советник может открывать на символе и с уникальным магиком только одну позу. А следовательно, если выбирать из истории ордера по магику и символу, то сортировка времени открытия и времени закрытия абсолютно одинакова (иначе ордер должен закрыться раньше, нежели открыться).
У меня предположение, что причина не в неправильной сортировке позиций в истории, а в брокере. Т.е. встречаются иногда брокеры, которые при переходах через день закрывают старую позу и открывают новую со сдвигом цены открытия на размер свопа. При этом магик обнуляется. Если старая поза закроется с профитом, а новая по лосю, то вполне возможна вышеописанная ситуация, т.е. сброс размера лота к первоначальному объему.
Т.е. рандом или есть какой-то критерий?
По тикету. Тикеты не всегда идут с увеличением. Один вопрос остается - сортируются ли они всегда по мере закрытия ордеров, или, во время работы, закрытые ордера добавляются в конец списка. Поэтому лучше всегда собирать в массив и сортировать как надо.
Открою страшную тайну, ордера в истории сортируются ни по времени открытия, ни по времени закрытия.
Наверное это действительно страшная тайна, т.к. у меня все позы в истории отсортированы строго по времени открытия. Хотя от разработчиков было другое объяснение (см. https://forum.mql4.com/ru/7453 ):
Никакого бага нет. Сделки в Account History сортируются по дате (исправлено) закрытия, а не по номеру тикета.
В общем, черт его знает, как там сортируются позы в этой самой истории. Разработчики могут сделать и так и эдак. Проще их взять и отсортировать самостоятельно.
Готовую функцию нашел на блоге Rosh-a: http://simple-testing.blogspot.com/2007/07/blog-post_3924.html
Ее и придется воткнуть.
По меньшей мере, это наиболее приемлемое решение.
Проще их взять и отсортировать самостоятельно.