Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 643

[Удален]  
Artyom Trishkin:

Хоспидя... Доказательства им подавай...

Видать, вы не совсем помните такие ситуации, будучи давно обсуждаемыми на mql4.com. Вот тогда-то и пришли к выводу, что лучше всё же искать по времени ордер для однозначного определения его времени открытия/закрытия. Уже устал повторять, что была зависимость от сортировки. Потом сделали так, что перестала быть. Народ расслабился, и начал делать так, как предлагаете вы. А потом бац.., и опять появилась зависимость от сортировки. Народ взвыл - роботы с ума сошли. А потом опять зависимость пропала от сортировки.

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

Только не нужно говорить о том, что дилер может мухлевать со временем открытия/закрытия - это уже вопрос из другой плоскости.

Удачи.

Да, подобных обсуждений не помню, форум четверки читал не часто. Возможно, когда-то, что-то подобное и было. Но, если закладываться на все, что было "когда-то" никаких ресурсов не хватит.

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

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

А принимать мой способ или нет - пусть каждый для себя решает сам. Самый лучший вариант, открыть много ордеров и посмотреть, как же СЕЙЧАС происходит сортировка.

И Вам удачи. 

 
Artyom Trishkin:

Вы уверены, что показали надёжный способ пропуска последней позиции в списке?

Если торговать реально, то не беспокоит, что от сортировки может вдруг появиться зависимость?

Всё же, ИМХО, тут нужны два цикла - в первом ищем по времени открытия самую свежую позицию, во втором модифицируем все, кроме той, тикет которой нашли в первом цикле.

Нет, не уверен, но логически правильный.

Ниже прочел о коварстве MQ - появилась тревожность. Спасибо за предостережение.

 
Alexey Kozitsyn:

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

Зачем каждый раз перебирать? Вот это и есть не рационально.

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

И пользуйтесь данными, полученными на этом тике. После их изменения на этом тике, на следующем вы получите новые данные и новые поля двух структур. Мне кажется - это нормальный баланс между надёжностью и скоростью. Вот это и есть оптимальность. А то, что вы называете оптимальностью, ИМХО - это шапкозакидательство ;)

[Удален]  
Artyom Trishkin:

Зачем каждый раз перебирать? Вот это и есть не рационально.

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

И пользуйтесь данными, полученными на этом тике. После их изменения на этом тике, на следующем вы получите новые данные и новые поля двух структур. Мне кажется - это нормальный баланс между надёжностью и скоростью. Вот это и есть оптимальность. А то, что вы называете оптимальностью, ИМХО - это шапкозакидательство ;)

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

 
Alexey Kozitsyn:

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

Ваши же слова:

Повсюду, где потребуется быстро определить последний ордер перебирать их все по времени, имхо, крайне не рационально...

"Повсюду" - разве в данном контексте обсуждения не синоним "каждый раз"?

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

Может я не так вас понял? Но ваше, мною процитированное выражение, ИМХО, исключает неоднозначность понимания.

[Удален]  
Artyom Trishkin:

Ваши же слова:

"Повсюду" - разве в данном контексте обсуждения не синоним "каждый раз"?

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

Может я не так вас понял? Но ваше, мною процитированное выражение, ИМХО, исключает неоднозначность понимания.

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

В любом случае, как я уже сказал, никто Вас не отговаривает, но бывают случаи, когда Ваш вариант будет менее предпочтительным (мультивалютные/мультиордерные системы). А перестраховываться на то, что MQ опять поменяют порядок сортировки (учитывая, что он такой и в mql4, и в mql5), я считаю, не нужно.

 
Alexey Kozitsyn:

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

В любом случае, как я уже сказал, никто Вас не отговаривает, но бывают случаи, когда Ваш вариант будет менее предпочтительным (мультивалютные/мультиордерные системы). А перестраховываться на то, что MQ опять поменяют порядок сортировки (учитывая, что он такой и в mql4, и в mql5), я считаю, не нужно.

Уже давно сделан класс, который позволяет легко и не напрягаясь иметь данные по любым символам и любым магикам. И ничего таскать не нужно, тем более целый массив, а лишь ДВА ордера - последний открытый и последний закрытый. Каждый раз, после долгих расчётов или ожидания, нужно перезаполнять поля структур, что впрочем, и вам приходится делать, или вы не обновляете окружение?

Ладно. Разговор "ниочём"... Делайте как вам удобнее. Не заморачивайтесь о надёжности - ну её...

[Удален]  
Artyom Trishkin:

Уже давно сделан класс, который позволяет легко и не напрягаясь иметь данные по любым символам и любым магикам. И ничего таскать не нужно, тем более целый массив, а лишь ДВА ордера - последний открытый и последний закрытый. Каждый раз, после долгих расчётов или ожидания, нужно перезаполнять поля структур, что впрочем, и вам приходится делать, или вы не обновляете окружение?

Ладно. Разговор "ниочём"... Делайте как вам удобнее. Не заморачивайтесь о надёжности - ну её...

А я и обновляю окружение, просто Ваш метод поиска будет занимать гораздо больше времени, вот и все, а на счет надежности - это спорно.
 
Alexey Kozitsyn:
А я и обновляю окружение, просто Ваш метод поиска будет занимать гораздо больше времени, вот и все, а на счет надежности - это спорно.
"Гораздо больше" это сколько дней? Можно уточнить не переходит-ли в несколько недель?
[Удален]  
Alexey Viktorov:
"Гораздо больше" это сколько дней? Можно уточнить не переходит-ли в несколько недель?
А данных недостаточно... но у Вас, скорее всего, перейдет в месяцы:)