Ошибки, баги, вопросы - страница 2404

 
Ilya Malev:

Ну так пусть работает, кто же мешает. Она в любом случае ведь работает не так, как работал МТ4, так что Вы можете сами решать, изменять это поведение ради 90% случаев, или ради оставшихся 10%.

Дождусь примера использования этого поведения?

 
Ilya Malev:

Вам что, советник написать? Думаю, Вы и сами не хуже меня сможете.

Вы часто упоминаете SELECT_BY_TICKET, но при этом никакого практического применения не выдаете.

Сам не использую эту конструкцию. Более того, считаю, что использовать ее в MT4 - чревато.

Ilya Malev:

90% случаев - это не использование SELECT_BY_TICKET в истории, это работа с ордерами как с неделимыми сущностями. Частичное закрытие или открытие является диковинкой для большинства форекс-брокеров. Обычно они либо закрывают/открывают ордер полностью, либо дают оффквот

MT5 - и биржевая платформа, где частичное - совсем не редкое явление. Более того, выше был пример, где сам пользователь закрывает свою позицию частично. Это абсолютно нормальная практика, когда, например, трейдер прикрывает позицию частями на разных ценовых уровнях.
 
fxsaber:

Вы часто упоминаете SELECT_BY_TICKET, но при этом никакого практического применения не выдаете.

Сам не использую эту конструкцию. Более того, считаю, что использовать ее в MT4 - чревато.

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

 
Ilya Malev:

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

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

 
Ilya Malev:

Если по Вашему этот режим вообще не нужно использовать, то сделали бы так, как было в МТ4 и не рекомендовали его использовать.

Этот режим может быть полезен в определенных ситуациях.

Ещё раз на всякий случай - поведение сервера при частичном закрытии в МТ4 у разных брокеров было разным и не гарантировалось таким как Вы его описали

Вы можете попробовать поискать место, где при частичном закрытии в MT4 позиция не поменяет тикет. Код выше привел.

 
Ilya Malev:

1. Может быть мне попросить Вас теперь привести пример (только не в этой ветке, и так уже зафлудили)

В истории Терминала увидели закрытую позицию. Нужно быстро получить ее данные - прописали в скрипт тикет и готово.

Или нужно историю торгов отсортировать по-своему. Отсортировали тикеты и выбрали.

2. Мне вообще-то без разницы, поменяет она тикет при частичном закрытии или не поменяет, т.к. на выбор ордера по тикету в условиях не использования частичного закрытия это не влияет никак. А при его использовании нужно либо смотреть коммент (МТ4), либо выбирать сделки по номеру позиции (МТ5)

По тикету все выбирается. Просто тикет позиции при закрытии меняется. Это единственное отличие от MT4.

 
Ilya Malev:

Значит нужно сделать доп.функцию, позволяющую узнавать измененный номер тикета по старому номеру, а не настаивать на том, что существовавший в МТ4 функционал SELECT_BY_TICKET существовал "не правильно". Хотя это Ваше дело конечно.

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

Логично что-то предпринимать только в первом случае. Например, OrderOpenPriceRequest - супер-штука, т.к. элементарно позволяет вычислить проскальзывание на открытии.

А вот OrderTicketOld - очень простая вещь (POSITION_ID) и ни о чем. Вот тикет сделки открытия - вещь тяжелая в реализации, поэтому сделана.

 
Ilya Malev:

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

Вы не показали советник, который бы не работал.

 
Флуд
 
fxsaber:

Частичное закрытие - это не обязательно partial fill со стороны сервера.

Ну и как выбрать по тикету 0.2 закрытых лота в такой ситуации в MT5?

в МТ5 даже не представляю, а в МТ4 искал возможность сделать частичное закрытие ордера и найти новый тикет но без использования поля OrderComment()

 тут в общем как в МТ4 все работает:

- выбрали ордер в списке рыночных ордеров и получили тикет

- запросили OrderClose() - получили true

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

Тема частичного закрытия в МТ4 довольно интересная, я спрашивал, но увы, все Гуру посылали искать счастья в OrderComment() - мне это не нравится, но видимо народ не заморачивался, топик бы с обсуждением эффективного алгоритма сначала под МТ4 бы , я бы поучаствовал


ЗЫ: исходник не найду, да и реализация мне не понравилась - запоминал тикеты рыночных ордеров в массив, после частичного закрытия сразу через ArrayBsearch() находил ордер который отсутствовал в массиве - т.е. новый тикет