Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Но если документация НЕ даёт гарантии, то придётся все функции, использующие Хистори, переписать.
Я бы не стал ориентироваться на Документацию в данном вопросе. Особенно, когда отсутствует какая-либо информация по нему.
Поищите ветки на mql4.com - там много разговоров было на этот счёт.
Хронологически по MT4:
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Вопрос по SELECT_BY_POS
Renat Fatkhullin, 2007.07.17 17:46
Сделки в Account History сортируются по дате (исправлено) закрытия, а не по номеру тикета.Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Вопрос по SELECT_BY_POS
Renat Fatkhullin, 2007.07.18 05:49
Дело в том, что основной объем Account History приходит с сервера, а потом история совершенных сделок накапливается (если не было перелогинов) на торговом терминале транзакция за транзакцией без соблюдения правила пересортировки по закрытию. Вообще-то не имеет значения, в какой сортировке хранится массив совершенных сделок в памяти терминала, так как список "на люди" показывается уже в интерфейсе в любой нужной сортировке.Вам не стоит закладываться в правило, что в Account History сделки всегда отсортированы по дате закрытия. В любом случае, сегодня мы поглубже посмотрим на этот момент - скорее всего будет проще для всех, если мы поставим жесткое правило сортировки по дате закрытия.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Выпущен MetaTrader 4 Client Terminal build 600 с обновленным языком MQL4 и Маркетом приложений
Renat Fatkhullin, 2014.03.12 15:18
Мы давно уже привели историю сделок в упорядоченный вид, но детали надо по коду смотреть. Сразу ответить не смогу.Хронологически по MT5:
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Ошибки, баги, вопросы
Slava, 2013.05.01 05:36
Никакая сортировка сделок/ордеров не гарантируется.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Ошибки, баги, вопросы
Renat Fatkhullin, 2013.05.01 16:11
voix_kas:
Является ли номер тикета сделки/ордера сквозным автоинкрементом для всего сервера?
Является, но принципиально не гарантируется их тождественность времени.
Поясню цитату. Сортировка по ORDER_TICKET и ORDER_TIME_SETUP_MSC/ORDER_TIME_DONE_MSC - не одно и то же. Думаю, DEAL это не касается.
Подвожу итог:
MT4-история торгов отсортирована по времени закрытия и это правило меняться не будет.
ЗЫ Во время тщательного поиска встречал инфу от матерых форумчан, что есть/была зависимость от сортировки в GUI. Подтверждений этим словам (поиск говорит, что более 10 лет такие утверждения проскакивают) не было, но были конструктивные опровержения. Все похоже на то, что кто-то не до конца разобрался и написал. На его авторитете (и/или вырванном из контекста вылеченного баг-репорта) другие подхватили инфу и себе на корку записали. Повторяя и записывая на другие корки, продлевая миф.
Автор пишет "Если предыдущий ордер закрылся с минусом по стопу, то нужно перевернуться"
т.е. ваш код найдет не это, а последний закрывшийся по СЛ (и он не обязательно будет предыдущий )
И кстати формулировка у автора не совсем ясная.
Нужно именно "с минусом" или именно "по стопу"?
Потому как в плюс но со стопом может закрыться ордер с тралом СЛ.
Так же и в минус но по ТейкПрофиту может закрыться ордер, например в сеточных стратегиях.
Поправка: Нужно с минусом и по стопу! Предыдущий ордер в истории.
MT4-история торгов отсортирована по времени закрытия и это правило меняться не будет.
странный итог, как и спор на ровном месте
тут ситуация один в один как правильно писать выражение:
или
считаете, что контролируете переменные, не проверяйте, пишете код по принципу сделал и забыл - проверяйте, так и с перебором ордеров в истории
ЗЫ: и если не ошибаюсь, то сама история ордеров ведь на сервере хранится? и терминал синхронизирует эту историю? - если да, тогда все зависит не от терминала МТ4, а от того что там с серверным программным обеспечениемстранный итог, как и спор на ровном месте
Для меня итог другой - если есть хоть малейшие сомнения в корректности работы кода - следует переделать на максимально-возможно корректную работу.
Тем более там всего-то пару строк добавить.
Код ведь предназначен с работой деньгами, не для игрушек. Тем более с чужими (заказчика либо инвестора либо подписчика на сигналы).
А цикл всё-таки лучше делать наоборот, к нулю. И проверку по времени делать первую - так мы исключим лишние проверки по символу, магику и прочему. Т.е. чуть ускорим.
А цикл всё-таки лучше делать наоборот, к нулю. И проверку по времени делать первую - так мы исключим лишние проверки по символу, магику и прочему. Т.е. чуть ускорим.
не ускорите, все равно будет выполнен полный перебор по циклу, тем более MQL поддерживает сокращенную проверку условий в операторе if(), т.е. любые манипуляции с условиями проверки вряд ли дадут увеличение производительности
даже варианты с if(!=) continue; будут аналогичны по производительности if() { if() {if() }} и аналогичны if((==) && (==) && (===) )
ЗЫ: я по привычке еще со времен турбопаскаля (там директивой прекомпилятора включался режим сокращенной проверки условий и бывало, что то забудет подключить то еще какие "непонятки" были у меня в то время) - и как привык 20 лет назад писать сложные условия путем составления простых условий, так часто и пишу то сих пор, т.е. речь идет о:
if(a==b && a>c && a<d)...
аналогично:
как говорится все это дело вкуса - речи о производительности тут не идет, но бывает помогает не совершать логические ошибки
ЗЫ: наверное Вы правы, будет некий прирост за счет уменьшения переприсваивания переменной содержащей время закрытия последнего ордера
даже варианты с if(!=) continue; будут аналогичны по производительности if() { if() {if() }} и аналогичны if((==) && (==) && (===) )
Где-то год или два назад я лично читал от МетаКвоты сообщение, что с текущего билда IF прекращает дальнейшую проверку если не выполнено очередное условие.
Хотя возможно это касалось только МТ5, не помню.
Но с тех пор стараюсь именно по этой логике размещать проверки.
Поправьте, кто знает ТОЧНЫЙ ответ, пожалуйста.
Развели разговоров на 3 страницы...
"Голодающему надо ПОДСКАЗАТЬ как ловить рыбу ...."
В Вы дали её ему ))))
Где-то год или два назад я лично читал от МетаКвоты сообщение, что с текущего билда IF прекращает дальнейшую проверку если не выполнено очередное условие.
Хотя возможно это касалось только МТ5, не помню.
Но с тех пор стараюсь именно по этой логике размещать проверки.
Поправьте, кто знает ТОЧНЫЙ ответ, пожалуйста.
Оператор continue