Флаги при частичном исполнении заявки

Страницы: 1
RSS
Флаги при частичном исполнении заявки
 
День добрый.
Не могу сейчас поэкспериментировать, напомните, пожалуйста, при частичном исполнении заявки оба первых флага будут 1?
 
в OnOrder
 
Добрый день.

Да.
 
Спасибо.
 
Сейчас проверил, и требуются разъяснения.
Скрипт выставил заявку. Система приняла, в онордере флаг 29, лотов 5
произошло частичное исполнение, трейд.
в онордере флаг опять 29, остаток 4 (продался один контракт)

Я расчитывал, что флаг изменится и строил логику поиска нужной записи по номеру заявки и изменившемуся флагу на частичное исполнение.
Вижу что по факту флаг что при выставлении, что после частичного исполнения не изменился.
Проясните, в чем я не прав и как работать с флагом?  
 
Viktor MMM,

Egor Zaytsev нас здесь немного обманывает. Согласно документации,
бит 0 (0x1) Заявка активна, иначе – не активна
бит 1 (0x2) Заявка снята. Если флаг не установлен и значение бита «0» равно «0», то заявка исполнена

Это значит, что следующие комбинации битов 0 и 1 соответствуют статусам:
"Активна" - "х1"
"Снята" - "10"
"Исполнена" - "00"

... что говорит о том, что если бит 0 равен 1, то бит 1 не имеет значения и анализировать его не нужно.

Частичное исполнение можно отследить с помощью полей qty (Количество в лотах) и balance (Остаток). Заявка частично исполнена, если при статусе "Активна" выполняется условие: 0 < balance < qty.

Или, цитируя со старого форума:

Булычев Михаил 13/02/07 11:15
Re: Частично исполненная заявка
 Добрый день.
 Это когда выполняется условие (Количество>Остаток && остаток!=0 && статус=="ACTIVE")
 
Спасибо.
выходит, что частичное снятие никак флагами не обозначается.
Но где то я это видел.
Однако факт, что не работает)
 
да, и еще на понятен смысл битовых флагов в онтрэйд. У меня выдает 4 ( это 00) При частичном исполнении заявки. Документация отсылает к тому же описанию, что и онордер. Но вижу, что работает иначе, проясните, пожалуйста.
 
Цитата
SDL пишет:
статус=="ACTIVE"
Это не обязательное условие. Частично исполненная заявка может быть снята.
Надо делать так, как надо. А как не надо - делать не надо.
 
Частично исполненную заявку надо определять не по флагам, а по другим полям. Не помню как поле называется, но что-то типа "Исполнено" или "Осталось".
 
Да, я понял уже, что статус не будет меняться.
А по статусу в онтрэйд есть информация?
 
Цитата
Viktor MMM пишет:
Да, я понял уже, что статус не будет меняться.
А по статусу в онтрэйд есть информация?
Для сделок эти биты неприменимы, ибо к сделкам они отношения не имеют. Просто по формату используется тот же набор флагов.
У сделок будет существенен только бит 2: "Данный флаг для сделок и сделок для исполнения определяет направление сделки (BUY/SELL)". Остальные пропускаем.
 
Понял, спасибо. Непонятно только почему разработчики не ответили, вроде поиском не нашел подобных тем.
Получилось, что пользователи, которым я благодарен, ответили на вопросы, в сущности, касающиеся самого продукта.
 
Цитата
Viktor MMM пишет:
да, и еще на понятен смысл битовых флагов в онтрэйд. У меня выдает 4 ( это 00) При частичном исполнении заявки. Документация отсылает к тому же описанию, что и онордер. Но вижу, что работает иначе, проясните, пожалуйста.
онТрейд - это совершенная сделка?
флаги = 4 = 0100b, верно?
биты:
2й = 1 продажа
1й = 0 - не отменена, а исполнена.
0й = 0 - не активна.
т.е. исполнено на продажу.
Что не так?
Цитата
SDL пишет:
Это значит, что следующие комбинации битов 0 и 1 соответствуют статусам:
"Активна" - "х1"
"Снята" - "10"
"Исполнена" - "00"
Не так:
"1х" - снята
"01" - активна
"00" - исполнена
 
Цитата
Imersio Arrigo пишет:
Цитата
SDL пишет:
Это значит, что следующие комбинации битов 0 и 1 соответствуют статусам:
"Активна" - "х1"
"Снята" - "10"
"Исполнена" - "00"
Не так:
"1х" - снята
"01" - активна
"00" - исполнена
Вариант не противоречит документации. Но... он не менее спорный, чем первый. Всё зависит от того, как интерпретировать комбинацию "11": "снята" + "активна" (?!).
В первом варианте алгоритм обработки флагов такой:
1. Бит 0 == 1 ? "Активна" : "Не активна"
2. Если "Не активна". Бит 1 == 1 ? "Снята" : "Исполнена".

Второй вариант анализа.
1. Бит 1 == 1 ? "Снята" : "Не снята"
2. Если "Не снята". Бит 0 == 1 ? "Активна" : "Исполнена".

Лично мне кажется первый вариант логичнее. Пускай разработчики ответят, какие комбинации битов возможны в приходящих данных.
 
Цитата
SDL пишет:

Вариант не противоречит документации. Но... он не менее спорный, чем первый. Всё зависит от того, как интерпретировать комбинацию "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).
 
Цитата
Imersio Arrigo пишет:

бит 0 (0x1) Заявка активна, иначе – не активна
бит 1 (0x2) Заявка снята. Если флаг не установлен и значение бита «0» равно «0»,

т.е. русским по белому написано: если бит 1 установлен - заявка снята!. Все. Нет других вариантов. Снятая заявка не может быть активной.
Речь не о том, может быть снятая заявка активной или нет. Нет, не может. И точно так же русским по белому написано, что если бит 0 установлен - заявка активна! Повторяю, вопрос в том, как интерпретировать комбинацию "11" по факту ее появления? Вопрос в приоритете битов при анализе этой комбинации - бит 0 или бит 1? Вот как раз это в документации не разъяснено. Заявка активна ИЛИ (исключающее или, XOR, если так понятнее) снята?
Разработчики, возможна в реальности эта комбинация или нет?
Страницы: 1
Читают тему
Наверх