Скачать MetaTrader 5

Состояние ордера в истории (прочтите объяснение)

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Mikhail Filimonov
5931
Mikhail Filimonov  
  • 37%
    (21)
  • 12%
    (7)
  • 51%
    (29)
Всего проголосовало: 57
Mikhail Filimonov
5931
Mikhail Filimonov  

Добрый день!

Объяснение.

 

 

Покупая 3 контракта ЛИМИТНЫМ ордером с исполнением ORDER_FILLING_IOC,

складывается следующая ситуация:

1. Если мы купили все три контракта, то ордер в истории имеет состояние = ORDER_STATE_FILLED

2. Если мы ничего не купили, то в истории состояние =  ORDER_STATE_CANCELED

3. Если мы купили первых два контракта (28449), а 1 контракт не купили (28450), то в истории состояние =  ORDER_STATE_CANCELED

4. Если мы не купили первых два контракта (28449), а купили 1 (28450), то в истории состояние = ORDER_STATE_PARTIAL

 Сам вопрос голосования:

Каково должно быть состояние ордера в истории, если мы купили по пункту 3 ? 

Ihor Herasko
10674
Ihor Herasko  

Вроде бы очевидно - частичное исполнение...

Хотя вот эта приписка к объяснению режима IOC ("В случае невозможности полного исполнения ордер будет исполнен на доступный объем, а неисполненный объем ордера будет отменен.") как раз указывает на то, почему в результате операции получен статус "отменен". Правда, в таком случае непонятно, как же определить, имела ли место покупка или ордер был отменен в полном объеме.

Mikhail Filimonov
5931
Mikhail Filimonov  
Игорь Герасько:

Вроде бы очевидно - частичное исполнение...

Хотя вот эта приписка к объяснению режима IOC ("В случае невозможности полного исполнения ордер будет исполнен на доступный объем, а неисполненный объем ордера будет отменен.") как раз указывает на то, почему в результате операции получен статус "отменен". Правда, в таком случае непонятно, как же определить, имела ли место покупка или ордер был отменен в полном объеме.

Понять можно по начальному и текущему объёмам ордера, но сам факт, что частично исполненный ордер

хранится как ORDER_STATE_CANCELED, побудил меня сделать этот опрос.

 

P/S Может быть разработчики обратят внимание, что в данном вопросе нет ЧЁТКОЙ логики.... 

Vasiliy Sokolov
24202
Vasiliy Sokolov  
Михаил:

4. Если мы не купили первых два контракта (28449), а купили 1 (28450), то в истории состояние = ORDER_STATE_PARTIAL

...

Не может такого быть. Вы не можете купить по 28450, не купив перед этим по 28449.

Михаил:

3. Если мы купили первых два контракта (28449), а 1 контракт не купили (28450), то в истории состояние =  ORDER_STATE_CANCELED

Сам вопрос голосования:

Каково должно быть состояние ордера в истории, если мы купили по пункту 3 ? 

 ORDER_STATE_PARTIAL, очевидно. Но можно обойти это свойство, посчитав, сколько сделок относятся к этому ордеру.

З.Ы. Это еще что, у меня позавчера функция Symbol() весь день NULL возвращала (и это на реальном счете фортс!). Поэтому любая функция в MQL может вернуть все что угодно и когда угодно.

Mikhail Filimonov
5931
Mikhail Filimonov  
Vasiliy Sokolov:

Не может такого быть. Вы не можете купить по 28450, не купив перед этим по 28449.

 ORDER_STATE_PARTIAL, очевидно. Но можно обойти это свойство, посчитав, сколько сделок относятся к этому ордеру.

З.Ы. Это еще что, у меня позавчера функция Symbol() весь день NULL возвращала (и это на реальном счете фортс!). Поэтому любая функция в MQL может вернуть все что угодно и когда угодно.

Василий!

Не может быть? - Проверьте.

Выставляя ЛИМИТНЫЙ ордер на покупку 3 контрактов,  по цене 28450 с исполнением  ORDER_FILLING_IOC, вы можете купить два контракта по цене 28449, а можете и не купить.

И как Вы всегда говорите: "Не вводите людей в заблуждение"! 

 

P/S интересно знать мнение людей, проголосовавших за  ORDER_STATE_CANCELED

По Вашему выходит, что вовсе не исполненный ордер = частично исполненному ордеру

И соответственно   частично исполненный ордер != частично исполненному ордеру?

Vasiliy Sokolov
24202
Vasiliy Sokolov  
Михаил:

Василий!

Не может быть? - Проверьте.

Выставляя ЛИМИТНЫЙ ордер на покупку 3 контрактов,  по цене 28450 с исполнением  ORDER_FILLING_IOC, вы можете купить два контракта по цене 28449, а можете и не купить.

И как Вы всегда говорите: "Не вводите людей в заблуждение"! 

В таком случае срочно в сервис деск. Если это действительно проявляется - это грубейшая ошибка работы терминала. 
Mikhail Filimonov
5931
Mikhail Filimonov  
Vasiliy Sokolov:
В таком случае срочно в сервис деск. Если это действительно проявляется - это грубейшая ошибка работы терминала. 
А Ренат так не считает (https://www.mql5.com/ru/forum/38456/page18#comment_1404308), как и двое проголосовавших (правда это могли бьть сами разработчики) за ORDER_STATE_CANCELED
ФОРТС. Вопросы по исполнению
ФОРТС. Вопросы по исполнению
  • www.mql5.com
С большими проблемами удалось это сделать (начальник отдела по работе с профессиональными клиентами ДЦ Открытие Евгений Сергеевич,. - Страница 18 - Категория: автоматические торговые системы
Vasiliy Sokolov
24202
Vasiliy Sokolov  
Михаил:
А Ренат так не считает, как и двое проголосовавших за ORDER_STATE_CANCELED
Я в шоке. У Вас есть конкретная его цитата по этой ситуации? На уровне биржи, технически невозможно обойти покупку по 28449. Интересно, как умудряется делать это МТ5?
Mikhail Filimonov
5931
Mikhail Filimonov  
Vasiliy Sokolov:
Я в шоке. У Вас есть конкретная его цитата по этой ситуации? На уровне биржи, технически невозможно обойти покупку по 28449. Интересно, как умудряется делать это МТ5?

Василий!

Вы, вероятно, не знаете, как исполняется ордер ORDER_FILLING_IOC !

Для этого ордера НЕ ВАЖНЫ предыдущие цены!

Важна ТОЛЬКО цена указанная в ордере, если есть что-то ниже этой цены, то купит (конечно же), если нет (кто-то опередил), то не купит,

а купит 1 контракт по цене 28500, если нет и этой цены(28500), то вовсе НИЧЕГО не купит. 

 

P/S В том то и прелесть этого исполнения, что Вы точно уверены, что купите именно то той цене, которую

указали в ордере или по более лучшей (если успели, а не успели, то ничего не купите) ! 

Dmitry Fedoseev
44542
Dmitry Fedoseev  
Михаил:

Добрый день!

Объяснение.

 

 

Покупая 3 контракта ЛИМИТНЫМ ордером с исполнением ORDER_FILLING_IOC,

складывается следующая ситуация:

1. Если мы купили все три контракта, то ордер в истории имеет состояние = ORDER_STATE_FILLED

2. Если мы ничего не купили, то в истории состояние =  ORDER_STATE_CANCELED

3. Если мы купили первых два контракта (28449), а 1 контракт не купили (28450), то в истории состояние =  ORDER_STATE_CANCELED

4. Если мы не купили первых два контракта (28449), а купили 1 (28450), то в истории состояние = ORDER_STATE_PARTIAL

 Сам вопрос голосования:

Каково должно быть состояние ордера в истории, если мы купили по пункту 3 ? 

Если случай 3 отмечен как CANCELED, то почему случай 4 помечен как PARTIAL? Тогда уж должен быть FILLED, по аналогии со случаем 3, по последнему действию. 

Короче, 3 и 4 должны быть PARTIAL, или PARTIAL'а вообще быть не должно. 

Почему в случае 4-ре как бы помним что было и потому PARTIAL, а не FILLED. А в случае 3 не помним что было, и поэтому не PARTIAL, а CANCELED?

1234
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий