Как правильно выбрать последний ордер в истории? - страница 2

 
Konstantin Nikitin:

А дальнейшую проверку ту какая интересует разве сложно организовать. Есть направление, а применить для себя как нужно, это уже проблем не составляет.

Какую проверку если Ваш код

if( OrderComment() != "[sl]" )     continue;

отбрасывает плюсовые (точнее - закрытые не по СЛ) ордера вообще.
А именно последний может быть профитным (да и с [sl] может быть профитным по тралу), который и хочет проверить автор.



Если же Вы имели ввиду просто подсказку в каком направлении копать, то ок.

 
Так кто запрещает что-то проверить до комментария??? Я просто показал как наиболее просто определить позицию закрытую по SL. Все и ни чего более. Ну лень мне сегодня полный код писать
 
Andrei Fandeev:

И кстати формулировка у автора не совсем ясная.
Нужно именно "с минусом" или именно "по стопу"?

по стопу тяжело проверить, т.к. за счет проскальзования цена закрытия может отличаться от уровня стоплосс, как вариант проверять OrderClosePrice() относительно цены открытия отдельно для БАЙ и для СЕЛЛ ордеров, но по сути это лишний геморой, все равно будет тоже самое что проверять по OrderProfit()

найти последний ордер в истории по стопу вот пример:

https://www.mql5.com/ru/forum/131859/page4#comment_3359685

я стараюсь таким образом не искать ордер в истории закрытый по стопу, делал раньше так и даже чтобы на реальном счете правильно работал делал сравнение по Digits -1 , но не нравится мне такие конструкции, тут нужно действительно определиться, что хотим найти убыток на истории или факт срабатывания стоплосса

Только "Полезные функции от KimIV".
Только "Полезные функции от KimIV".
  • 2011.02.18
  • www.mql5.com
Все функции взяты из этой ветки - http://forum.mql4...
 
Igor Makanu:

по стопу тяжело проверить, т.к. за счет проскальзования цена закрытия может отличаться от уровня стоплосс, как вариант проверять относительно цены открытия отдельно для БАЙ и для СЕЛЛ ордеров, но по сути это лишний геморой, все равно будет тоже самое что проверять по OrderProfit()

найти последний ордер в истории по стопу вот пример:

https://www.mql5.com/ru/forum/131859/page4#comment_3359685

Я очень уважаю Игоря Кима, но тут я не пойму - зачем перебирать ВСЕ ордера в истории? А не наоборот, если ищем последний. Переставив проверку на Профит внутрь первого цикла.
Кто-то объяснит в чем я заблуждаюсь?

 
Andrei Fandeev:

Я очень уважаю Игоря Кима, но тут я не пойму - зачем перебирать ВСЕ ордера в истории? А не наоборот, если ищем последний. Переставив проверку на Профит внутрь первого цикла.
Кто-то объяснит в чем я заблуждаюсь?

Порядок ордеров в истории НЕ гарантируется. Это есть в справке.

Именно по этой причине последний ордер в советниках для реальной торговли нужно искать по времени, а не полагаться на правильную их сортировку. Сто раз уже сиё обсуждалось.

В тестере - да, рабочий вариант выбирать по индексу.

 
Andrei Fandeev:

Я очень уважаю Игоря Кима, но тут я не пойму - зачем перебирать ВСЕ ордера в истории? А не наоборот, если ищем последний. Переставив проверку на Профит внутрь первого цикла.
Кто-то объяснит в чем я заблуждаюсь?

дело в том что в тестере будет работать принцип поиска - последний в истории

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

ну и раньше МТ4 часто обновлялся новыми билдами, и сложно предположить что будет по другому работать в новом билде, обычно на все вопросы пользователей разработчики отвечают - пишите корректный код

вот и Игорь Ким делает корректный поиск последнего ордера в истории - т.е. ордер с самым большим временем закрытия, и я давно уже привык делать именно так и никак иначе - так гарантированно будет найден последний закрытый ордер

Пользовательский интерфейс - Начало работы - MetaTrader 5
Пользовательский интерфейс - Начало работы - MetaTrader 5
  • www.metatrader5.com
Интерфейс платформы предоставляет доступ ко всем инструментам, необходимым для торговли на финансовых рынках. Он включает в себя различные меню, панели инструментов и служебные окна. Главное меню В главном меню собраны практически все команды и функции, которые можно выполнять в торговой платформе. Оно позволяет работать с графиками...
 
Artyom TrishkinПорядок ордеров в истории НЕ гарантируется.
Igor Makanu:

Спасибо! Не знал о такой неприятной особенности.

 
Artyom Trishkin:

Порядок ордеров в истории НЕ гарантируется. Это есть в справке.

Именно по этой причине последний ордер в советниках для реальной торговли нужно искать по времени, а не полагаться на правильную их сортировку. Сто раз уже сиё обсуждалось.

Никогда на реале не нарывался на такие ситуации. Всегда сортировка по времени закрытия/удаления. Поэтому тупо по индексу сверху-вниз в Live MT4/5, как и в Тестере.

 
fxsaber:

Никогда на реале не нарывался на такие ситуации. Всегда сортировка по времени закрытия/удаления. Поэтому тупо по индексу сверху-вниз в Live MT4/5, как и в Тестере.

Я вроде тоже.
Но если документация НЕ даёт гарантии, то придётся все функции, использующие Хистори, переписать.
Добавить если НеТестер, тогда сравнивать по времени.
Если Тестер, то для ускорения тестирования можно оставить по индексу от наибольшего до первого найденного.

 
fxsaber:

Никогда на реале не нарывался на такие ситуации. Всегда сортировка по времени закрытия/удаления. Поэтому тупо по индексу сверху-вниз в Live MT4/5, как и в Тестере.

Поищите ветки на mql4.com - там много разговоров было на этот счёт. Давно. Впрочем, они (ветки) наверное все сюда перенесены - не интересовался конкретно по этому поводу, но вроде как слияние же было. Теперь не знаю судьбу тех обсуждений примерно десятилетней давности. Те, кто помнит эти обсуждения, те и рекомендуют искать ордера по времени, а не брать по индексу в списке. Люд в то время сильно кипел из-за зависимости от сортировки. Потом её убрали (зависимость), потом опять всплыла. Затем опять пропала. В общем - надёжно искать по времени и не зависеть. Для тестера - всегда пожалуйста - берите по индексу. Но точно не для реала.