День добрый. Не могу сейчас поэкспериментировать, напомните, пожалуйста, при частичном исполнении заявки оба первых флага будут 1?
Пользователь
Сообщений: Регистрация: 04.03.2015
10.08.2015 21:01:05
в OnOrder
QUIK clients support
Сообщений: Регистрация: 27.01.2015
11.08.2015 08:13:45
Добрый день.
Да.
Пользователь
Сообщений: Регистрация: 04.03.2015
11.08.2015 12:30:40
Спасибо.
Пользователь
Сообщений: Регистрация: 04.03.2015
17.08.2015 20:40:21
Сейчас проверил, и требуются разъяснения. Скрипт выставил заявку. Система приняла, в онордере флаг 29, лотов 5 произошло частичное исполнение, трейд. в онордере флаг опять 29, остаток 4 (продался один контракт)
Я расчитывал, что флаг изменится и строил логику поиска нужной записи по номеру заявки и изменившемуся флагу на частичное исполнение. Вижу что по факту флаг что при выставлении, что после частичного исполнения не изменился. Проясните, в чем я не прав и как работать с флагом?
Пользователь
Сообщений: Регистрация: 29.04.2015
17.08.2015 21:52:48
,
нас здесь немного обманывает. Согласно документации, бит 0 (0x1) Заявка активна, иначе – не активна бит 1 (0x2) Заявка снята. Если флаг не установлен и значение бита «0» равно «0», то заявка исполнена
Это значит, что следующие комбинации битов 0 и 1 соответствуют статусам: "Активна" - "х1" "Снята" - "10" "Исполнена" - "00"
... что говорит о том, что если бит 0 равен 1, то бит 1 не имеет значения и анализировать его не нужно.
Частичное исполнение можно отследить с помощью полей qty (Количество в лотах) и balance (Остаток). Заявка частично исполнена, если при статусе "Активна" выполняется условие: 0 < balance < qty.
Или, цитируя со старого форума:
Добрый день. Это когда выполняется условие (Количество>Остаток && остаток!=0 && статус=="ACTIVE")
Пользователь
Сообщений: Регистрация: 04.03.2015
17.08.2015 23:03:37
Спасибо. выходит, что частичное снятие никак флагами не обозначается. Но где то я это видел. Однако факт, что не работает)
Пользователь
Сообщений: Регистрация: 04.03.2015
18.08.2015 00:02:53
да, и еще на понятен смысл битовых флагов в онтрэйд. У меня выдает 4 ( это 00) При частичном исполнении заявки. Документация отсылает к тому же описанию, что и онордер. Но вижу, что работает иначе, проясните, пожалуйста.
Это не обязательное условие. Частично исполненная заявка может быть снята.
Надо делать так, как надо. А как не надо - делать не надо.
Пользователь
Сообщений: Регистрация: 31.01.2015
18.08.2015 11:02:37
Частично исполненную заявку надо определять не по флагам, а по другим полям. Не помню как поле называется, но что-то типа "Исполнено" или "Осталось".
Пользователь
Сообщений: Регистрация: 04.03.2015
18.08.2015 16:27:47
Да, я понял уже, что статус не будет меняться. А по статусу в онтрэйд есть информация?
Пользователь
Сообщений: Регистрация: 29.04.2015
18.08.2015 18:00:26
Цитата
Viktor MMM пишет: Да, я понял уже, что статус не будет меняться. А по статусу в онтрэйд есть информация?
Для сделок эти биты неприменимы, ибо к сделкам они отношения не имеют. Просто по формату используется тот же набор флагов. У сделок будет существенен только бит 2: "Данный флаг для сделок и сделок для исполнения определяет направление сделки (BUY/SELL)". Остальные пропускаем.
Пользователь
Сообщений: Регистрация: 04.03.2015
18.08.2015 19:10:08
Понял, спасибо. Непонятно только почему разработчики не ответили, вроде поиском не нашел подобных тем. Получилось, что пользователи, которым я благодарен, ответили на вопросы, в сущности, касающиеся самого продукта.
Пользователь
Сообщений: Регистрация: 02.07.2015
19.08.2015 07:18:31
Цитата
Viktor MMM пишет: да, и еще на понятен смысл битовых флагов в онтрэйд. У меня выдает 4 ( это 00) При частичном исполнении заявки. Документация отсылает к тому же описанию, что и онордер. Но вижу, что работает иначе, проясните, пожалуйста.
онТрейд - это совершенная сделка? флаги = 4 = 0100b, верно? биты: 2й = 1 продажа 1й = 0 - не отменена, а исполнена. 0й = 0 - не активна. т.е. исполнено на продажу. Что не так?
Цитата
SDL пишет: Это значит, что следующие комбинации битов 0 и 1 соответствуют статусам: "Активна" - "х1" "Снята" - "10" "Исполнена" - "00"
Вариант не противоречит документации. Но... он не менее спорный, чем первый. Всё зависит от того, как интерпретировать комбинацию "11": "снята" + "активна" (?!). В первом варианте алгоритм обработки флагов такой: 1. Бит 0 == 1 ? "Активна" : "Не активна" 2. Если "Не активна". Бит 1 == 1 ? "Снята" : "Исполнена".
Второй вариант анализа. 1. Бит 1 == 1 ? "Снята" : "Не снята" 2. Если "Не снята". Бит 0 == 1 ? "Активна" : "Исполнена".
Лично мне кажется первый вариант логичнее. Пускай разработчики ответят, какие комбинации битов возможны в приходящих данных.
Вариант не противоречит документации. Но... он не менее спорный, чем первый. Всё зависит от того, как интерпретировать комбинацию "11": "снята" + "активна" (?!). В первом варианте алгоритм обработки флагов такой: 1. Бит 0 == 1 ? "Активна" : "Не активна" 2. Если "Не активна". Бит 1 == 1 ? "Снята" : "Исполнена".
Второй вариант анализа. 1. Бит 1 == 1 ? "Снята" : "Не снята" 2. Если "Не снята". Бит 0 == 1 ? "Активна" : "Исполнена".
Лично мне кажется первый вариант логичнее. Пускай разработчики ответят, какие комбинации битов возможны в приходящих данных.
Интерпретатор языка Lua.pdf страница 75
5. Описание битовых флагов 5.1 Флаги для таблиц Заявки, Заявки на внебиржевые сделки, Сделки, Сделки для исполнения Флаг установлен Значение бит 0 (0x1) Заявка активна, иначе – не активна бит 1 (0x2) Заявка снята. Если флаг не установлен и значение бита «0» равно «0»,
т.е. русским по белому написано: если бит 1 установлен - заявка снята!. Все. Нет других вариантов. Снятая заявка не может быть активной.
А если бит 1 не установлен - то значение бита 0 определяет состояние активна (=1), либо исполнена(=0).
бит 0 (0x1) Заявка активна, иначе – не активна бит 1 (0x2) Заявка снята. Если флаг не установлен и значение бита «0» равно «0»,
т.е. русским по белому написано: если бит 1 установлен - заявка снята!. Все. Нет других вариантов. Снятая заявка не может быть активной.
Речь не о том, может быть снятая заявка активной или нет. Нет, не может. И точно так же русским по белому написано, что если бит 0 установлен - заявка активна! Повторяю, вопрос в том, как интерпретировать комбинацию "11" по факту ее появления? Вопрос в приоритете битов при анализе этой комбинации - бит 0 или бит 1? Вот как раз это в документации не разъяснено. Заявка активна ИЛИ (исключающее или, XOR, если так понятнее) снята? Разработчики, возможна в реальности эта комбинация или нет?