Насколько я знаю функция перестановки заявок на уровне ядра ТС реализована. Как воспользоваться ей при импорте транзакций через API Квика?
Пользователь
Сообщений: Регистрация: 29.12.2018
24.06.2020 09:47:00
Здравствуйте, Alex! Транзакции перестановке на фондовом рынке Московской биржи, к сожалению, нет. Однако, есть транзакция изменения заявки и речь, вероятнее всего, идет именно о ней. Проверить заполнение параметров можно следующим образом: 1. В терминале QUIK создать таблицу "Карман транзакций". 2. В эту таблицу добавить транзакцию изменения заявки и, после, поместить подготовленную транзакцию по изменению заявки в карман. 3. После, через контекстное меню таблицы (нажатие правой кнопкой мыши) выберите пункт "Сохранить транзакции в tri-файл". В сохраненном tri-файле Вы сможете увидеть корректное заполнение всех необходимых параметров. Останется только заполнить аналогичным образом те же параметры при подаче транзакции через API.
QUIK clients support
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
11.09.2020 14:39:06
На Junior будет этот вид транзакций?
Надо делать так, как надо. А как не надо - делать не надо.
Пользователь
Сообщений: Регистрация: 23.01.2015
14.09.2020 12:15:07
Цитата
Старатель написал: На Junior будет этот вид транзакций?
на Junior нет биржевой фондовой секции и никогда не было, там работает наш эмулятор. так что у него нет ничего общего с ядром ТС, в том числе и транзакции перестановки заявок. Доработка в этом месте не планируется
Пользователь
Сообщений: Регистрация: 13.07.2023
28.12.2023 22:03:45
Нет возможности выбрать создание транзакции "изменения заявки" - нет такого типа транзакции в Квик версии 11. Это ок или ошибка?
Данная транзакция должна быть доступна в "Кармане транзакций" - проверяли ее наличие в данном окне?
При создании окна Кармана транзакций в разделе доступные транзакции есть "Изменение заявки". При выборе раздела можно задать столбцы создаваемой таблицы Кармана транзакций. В созданной таблице появляется поле "Снять исходную заявку". Далее пытаюсь добавить в созданную таблицу такую транзакцию, которая бы снимала указанную заявку и это уже никак не получается сделать. При всех разных вариациях добавления транзакций поле Снять исходную заявку всегда пустое, а заполнить руками нельзя. Как добавить в таблицу такую транзакцию?
Также Вы можете ознакомиться с более подробной информацией о данной транзакции и ее параметрах в материалах Московской биржи: .
Не могли бы вы еще привести такой же пример кода для английских наименований полей и их значений? Например, у меня используется 'ACTION': 'NEW_ORDER', а тут как будет для изменения?
Пользователь
Сообщений: Регистрация: 20.03.2023
12.01.2024 10:09:25
Код
bespalex написал:
Не могли бы вы еще привести такой же пример кода для английских наименований полей и их значений?
Например, у меня используется 'ACTION': 'NEW_ORDER', а тут как будет для изменения?
Загрузил из .tri файла в "Карман транзакций". Переключил язык терминала на английский. Сохранил в файл. Получилось такое:
К сожалению, для транзакции "Изменение заявки" описание в фиксированном формате не предусмотрено. Рекомендуем использовать описание параметров в универсальном формате, пример которого приведен выше.
К сожалению, для транзакции "Изменение заявки" описание в фиксированном формате не предусмотрено. Рекомендуем использовать описание параметров в универсальном формате, пример которого приведен выше.
Здесь "Заявка" это order_num? "Примечание" "W1//ORDER_AMEND" это значимое поле с жестко заданным значением? В поле цена "Цена" в качестве десятичного разделителя точка? Значение поля "К/П" в случае продажи "Продажа"? Как себя ведет эта транзакция в случае если исходная заявка была частично исполнена до изменения?
"Заявка" - номер исходной заявки, параметры которой необходимо изменить.
Цитата
"Примечание" "W1//ORDER_AMEND" это значимое поле с жестко заданным значением?
В параметр "Примечание" помещается код клиента и комментарий к заявке, разделенные слэшем (либо двойным слэшем, в зависимости от настроек брокера).
Цитата
В поле цена "Цена" в качестве десятичного разделителя точка?
Верно.
Цитата
Значение поля "К/П" в случае продажи "Продажа"?
Верно.
Цитата
Как себя ведет эта транзакция в случае если исходная заявка была частично исполнена до изменения?
Точного ответа у нас нет. Вы можете уточнить эту информацию у специалистов Московской биржи
Спасибо, с учетом вашего ответа, стоит ли заморачиваться с реализацией или более надежно отменить старую и поставить новую заявку?
Что-то никак не удается мне победить эту команду. Посмотрите пожалуйста. Вот как у меня формируется транзакция: sell_transaction = { # Все значения должны передаваться в виде строк 'TRANS_ID': str(sell_order_id), # Номер транзакции задается клиентом 'CLIENT_CODE': '62665', # Код клиента. Для фьючерсов его нет 'ACCOUNT': 'L01-00000F00', # Счет 'ACTION': 'NEW_ORDER', # Тип заявки: Новая лимитная/рыночная заявка 'CLASSCODE': class_code, # Код площадки 'SECCODE': symbol, # Код тикера 'OPERATION': 'S', # B = покупка, S = продажа 'PRICE': str(sell_order_lmtPrice), # Цена исполнения. Для рыночных фьючерсных заявок наихудшая цена в зависимости от направления. Для остальных рыночных заявок цена = 0 'QUANTITY': str(int(order_size / lot_size)), # Кол-во в лотах 'TYPE': 'L'}#, # L = лимитная заявка (по умолчанию), M = рыночная заявка
Что тут необходимо передать, чтобы изменить заявку? Я пробовал все из того, что вы писали выше, поля на русском, ничего не получается, мне возвращается моя строка.
Уточните, пожалуйста, с отправкой какой транзакции возникает проблема? Пример транзакции "Изменение заявки" мы приводили в сообщении #8 этой темы. Если трудности возникают с отправкой другой транзакции, просим описать ситуацию более подробно.
Уточните, пожалуйста, с отправкой какой транзакции возникает проблема? Пример транзакции "Изменение заявки" мы приводили в сообщении #8 этой темы. Если трудности возникают с отправкой другой транзакции, просим описать ситуацию более подробно.
Трудности именно с транзакцией "Изменение заявки". Пробовал разные комбинации названия полей и их значений (на русском, на английском), но так и не смог ни разу добиться изменения хотя бы цены активной заявки. Эксперименты ставил на коротком скрипте, который больше ничего не делает, только ставит и пытается изменить заявку.
Уточните, пожалуйста, с отправкой какой транзакции возникает проблема? Пример транзакции "Изменение заявки" мы приводили в сообщении #8 этой темы. Если трудности возникают с отправкой другой транзакции, просим описать ситуацию более подробно.
не могли бы вы уточнить, какие поля являются строго обязательными для изменения и какие они могут принимать заданные значения?
Просьба прислать используемый код (или его фрагмент). Информацию можно направить на нашу почту , в этом случае необходимо указать ссылку на данную тему форума в письме.
Просьба прислать используемый код (или его фрагмент). Информацию можно направить на нашу почту , в этом случае необходимо указать ссылку на данную тему форума в письме.
хорошо, подготовлю код. А документации совсем нет, где структура данных описана?
Просьба прислать используемый код (или его фрагмент). Информацию можно направить на нашу почту , в этом случае необходимо указать ссылку на данную тему форума в письме.
Код получили, предлагаем продолжить обсуждение вопроса в рамках почтовой переписки.
Цитата
А документации совсем нет, где структура данных описана?
Прикрепляли ранее с описанием транзакции.
В соответствии в этим документом пробовал именовать поля, не помогло. Хотя там тоже странно, например поле CLIENTCODE. Я использую в новой заявке CLIENT_CODE и оно работает. Исходя из этого непонятно, кто и где осуществляет конверсию полей, либо есть какие-то допустимые варианты написаний. Как например во всех ответах присутствует как ordernum, так и order_num.
Наименования параметров стоит использовать те, которые мы привели в примере кода. Документ МБ в данном случае применим для ознакомления с особенностями транзакции и возможными значениями параметров.
Пользователь
Сообщений: Регистрация: 13.07.2023
11.08.2025 22:38:19
bespalex, Anton Belonogov, можете поделиться, получилось сделать изменение заявки после переписки выше или нет? В чем была проблема и как решили?
В сообщении в этой теме мы приводили пример кода Lua с транзакцией изменения заявки, Вы можете воспользоваться аналогичным кодом. Если возникнет ошибка или потребуется какая-либо помощь - просим сообщить.
Пользователь
Сообщений: Регистрация: 13.07.2023
22.10.2025 10:57:43
Не получается выполнить указанную транзакцию из сообщения #8, выдается сообщение: Неправильно указан вид транзакции: "Рзменение заявки" Интерфейс Квик на русском, кодировка файла Lua ANSI. Дополнительно потом попробовал сохранить файл с кодом в UTF-8 - тоже русскоязычный код не работает с аналогичной ошибкой.
Далее попробовал базовую транзакцию размещение ордера (NEW_ORDER) и понял, что мой Квик может нормально принимать код Lua только с английскими именованием полей и значений транзакции. То есть в английском написании код с базовой транзакцией размещение ордера отработал, а в русском написании никак не хочет работать.
1. Подскажите, в чем проблема и как сделать, чтобы предложенный вами код был принят системой Квик на русском языке? 2. Сообщите также, пожалуйста, английский вариант именования поля t["ACTION"]. Попробовал "Replace Order" как из работающего файла tri, еще попробовал MOVE ORDERS - все не работает.
Пользователь
Сообщений: Регистрация: 30.01.2015
22.10.2025 11:22:40
Цитата
ildarskii написал: 'PRICE': str(sell_order_lmtPrice), # Цена исполнения. Для рыночных фьючерсных заявок наихудшая цена в зависимости от направления. Для остальных рыночных заявок цена = 0 'QUANTITY': str(int(order_size / lot_size)), # Кол-во в лотах
Параметры и принимаемые ими значения:
Параметр
Значение
CLASSCODE
Код класса, по которому выполняется транзакция, например TQBR. Обязательный параметр
SECCODE
Код инструмента, по которому выполняется транзакция, например SBER
ACTION
Вид транзакции, имеющий одно из следующих значений:
«NEW_ORDER» - новая заявка,
«NEW_NEG_DEAL» - новая заявка на внебиржевую сделку,
«NEW_REPO_NEG_DEAL» – новая заявка на сделку РЕПО,
«NEW_EXT_REPO_NEG_DEAL» - новая заявка на сделку модифицированного РЕПО (РЕПО-М),
«NEW_STOP_ORDER» - новая стоп-заявка,
«KILL_ORDER» - снять заявку,
«KILL_NEG_DEAL» - снять заявку на внебиржевую сделку или заявку на сделку РЕПО,
«KILL_STOP_ORDER» - снять стоп-заявку,
«KILL_ALL_ORDERS» – снять все заявки из торговой системы,
«KILL_ALL_STOP_ORDERS» – снять все стоп-заявки,
«KILL_ALL_NEG_DEALS» – снять все заявки на внебиржевые сделки и заявки на сделки РЕПО,
«KILL_ALL_FUTURES_ORDERS» - снять все заявки на рынке FORTS,
«MOVE_ORDERS» - переставить заявки на рынке FORTS,
«NEW_QUOTE» - новая безадресная заявка,
«KILL_QUOTE» - снять безадресную заявку,
«NEW_REPORT» - новая заявка-отчет о подтверждении транзакций в режимах РПС и РЕПО,
«SET_FUT_LIMIT» - новое ограничение по фьючерсному счету
FIRM_ID
Идентификатор участника торгов (код фирмы)
ACCOUNT
Номер счета Трейдера. Параметр обязателен при «ACTION» = «KILL_ALL_FUTURES_ORDERS». Параметр чувствителен к верхнему/нижнему регистру символов.
CLIENT_CODE
20-ти символьное составное поле, может содержать код клиента и текстовый комментарий (поручение) с тем же разделителем, что и при вводе заявки вручную. Необязательный параметр
TYPE
Тип заявки, необязательный параметр. Значения: «L» – лимитированная (по умолчанию), «M» – рыночная
MARKET_MAKER_ORDER
Признак того, является ли заявка заявкой Маркет-Мейкера. Возможные значения: «YES» или «NO». Значение по умолчанию (если параметр отсутствует): «NO»
Условие исполнения заявки, необязательный параметр. Возможные значения:
«PUT_IN_QUEUE» – поставить в очередь (по умолчанию),
«FILL_OR_KILL» – немедленно или отклонить,
«KILL_BALANCE» – снять остаток
QUANTITY
Количество лотов в заявке, обязательный параметр
PRICE
Цена заявки, за единицу инструмента. Обязательный параметр. При выставлении рыночной заявки (TYPE=M) на Срочном рынке FORTS необходимо указывать значение цены – укажите наихудшую (минимально или максимально возможную – в зависимости от направленности), заявка все равно будет исполнена по рыночной цене. Для других рынков при выставлении рыночной заявки укажите price= 0.
REPOVALUE
Объем сделки РЕПО-М в рублях
START_DISCOUNT
Начальное значение дисконта в заявке на сделку РЕПО-М
LOWER_DISCOUNT
Нижнее предельное значение дисконта в заявке на сделку РЕПО-М
UPPER_DISCOUNT
Верхнее предельное значение дисконта в заявке на сделку РЕПО-М
STOPPRICE
Стоп-цена, за единицу инструмента. Используется только при «ACTION» = «NEW_STOP_ORDER»
STOP_ORDER_KIND
Тип стоп-заявки. Возможные значения:
«SIMPLE_STOP_ORDER» – стоп-лимит,
«CONDITION_PRICE_BY_OTHER_SEC» – с условием по другому инструменту,
«WITH_LINKED_LIMIT_ORDER» – со связанной заявкой,
«TAKE_PROFIT_STOP_ORDER» – тейк-профит,
«TAKE_PROFIT_AND_STOP_LIMIT_ORDER» - тейк-профит и стоп-лимит,
«ACTIVATED_BY_ORDER_SIMPLE_STOP_ORDER» – стоп-лимит по исполнению заявки,
«ACTIVATED_BY_ORDER_TAKE_PROFIT_STOP_ORDER» – тейк-профит по исполнению заявки,
«ACTIVATED_BY_ORDER_TAKE_PROFIT_AND_STOP_LIMIT_ORDER» - тейк-профит и стоп-лимит по исполнению заявки.
Если параметр пропущен, то считается, что заявка имеет тип «стоп-лимит»
STOPPRICE_CLASSCODE
Класс инструмента условия. Используется только при «STOP_ORDER_KIND» = «CONDITION_PRICE_BY_OTHER_SEC».
STOPPRICE_SECCODE
Код инструмента условия. Используется только при «STOP_ORDER_KIND» = «CONDITION_PRICE_BY_OTHER_SEC»
STOPPRICE_CONDITION
Направление предельного изменения стоп-цены. Используется только при «STOP_ORDER_KIND» = «CONDITION_PRICE_BY_OTHER_SEC». Возможные значения: «<=» или «>= »
LINKED_ORDER_PRICE
Цена связанной лимитированной заявки. Используется только при «STOP_ORDER_KIND» = «WITH_LINKED_LIMIT_ORDER»
EXPIRY_DATE
Срок действия стоп-заявки. Возможные значения:
«GTC» – до отмены;
«TODAY» - до окончания текущей торговой сессии;
Дата в формате «ГГГГММДД»
STOPPRICE2
Цена условия «стоп-лимит» для заявки типа «Тейк-профит и стоп-лимит»
MARKET_STOP_LIMIT
Признак исполнения заявки по рыночной цене при наступлении условия «стоп-лимит». Значения «YES» или «NO». Параметр заявок типа «Тейк-профит и стоп-лимит»
MARKET_TAKE_PROFIT
Признак исполнения заявки по рыночной цене при наступлении условия «тейк-профит». Значения «YES» или «NO». Параметр заявок типа «Тейк-профит и стоп-лимит»
IS_ACTIVE_IN_TIME
Признак действия заявки типа «Тейк-профит и стоп-лимит» в течение определенного интервала времени. Значения «YES» или «NO»
ACTIVE_FROM_TIME
Время начала действия заявки типа «Тейк-профит и стоп-лимит» в формате «ЧЧММСС»
ACTIVE_TO_TIME
Время окончания действия заявки типа «Тейк-профит и стоп-лимит» в формате «ЧЧММСС»
PARTNER
Код организации – партнера по внебиржевой сделке.Применяется при «ACTION» = «NEW_NEG_DEAL», «ACTION» = «NEW_REPO_NEG_DEAL» или «ACTION» = «NEW_EXT_REPO_NEG_DEAL»
ORDER_KEY
Номер заявки, снимаемой из торговой системы. Применяется при «ACTION» = «KILL_ORDER» или «ACTION» = «KILL_NEG_DEAL» или «ACTION» = «KILL_QUOTE»
STOP_ORDER_KEY
Номер стоп-заявки, снимаемой из торговой системы. Применяется только при «ACTION» = «KILL_STOP_ORDER»
TRANS_ID
Уникальный идентификационный номер заявки, значение от «1» до «2 147 483 647»
SETTLE_CODE
Код расчетов при исполнении внебиржевых заявок
PRICE2
Цена второй части РЕПО
REPOTERM
Срок РЕПО. Параметр сделок РЕПО-М
REPORATE
Ставка РЕПО, в процентах
BLOCK_SECURITIES
Признак блокировки инструментов на время операции РЕПО («YES», «NO»)
REFUNDRATE
Ставка фиксированного возмещения, выплачиваемого в случае неисполнения второй части РЕПО, в процентах
COMMENT
Текстовый комментарий, указанный в заявке. Используется при снятии группы заявок
KILL_IF_LINKED_ORDER_PARTLY_FILLED
Признак снятия стоп-заявки при частичном исполнении связанной лимитированной заявки. Используется только при «STOP_ORDER_KIND» = «WITH_LINKED_LIMIT_ORDER». Возможные значения: «YES» или «NO»
OFFSET
Величина отступа от максимума (минимума) цены последней сделки. Используется при «STOP_ORDER_KIND» = «TAKE_PROFIT_STOP_ORDER» или «ACTIVATED_BY_ORDER_TAKE_PROFIT_STOP_ORDER»
OFFSET_UNITS
Единицы измерения отступа. Возможные значения:
«PERCENTS» – в процентах (шаг изменения – одна сотая процента),
«PRICE_UNITS» – в параметрах цены (шаг изменения равен шагу цены по данному инструменту).
Используется при «STOP_ORDER_KIND» = «TAKE_PROFIT_STOP_ORDER» или «ACTIVATED_BY_ORDER_TAKE_PROFIT_STOP_ORDER»
SPREAD
Величина защитного спреда. Используется при «STOP_ORDER_KIND» = «TAKE_PROFIT_STOP_ORDER» или ACTIVATED_BY_ORDER_TAKE_PROFIT_STOP_ORDER»
SPREAD_UNITS
Единицы измерения защитного спреда. Возможные значения:
«PERCENTS» – в процентах (шаг изменения – одна сотая процента),
«PRICE_UNITS» – в параметрах цены (шаг изменения равен шагу цены по данному инструменту).
Используется при «STOP_ORDER_KIND» = «TAKE_PROFIT_STOP_ORDER» или «ACTIVATED_BY_ORDER_TAKE_PROFIT_STOP_ORDER»
BASE_ORDER_KEY
Регистрационный номер заявки-условия. Используется при «STOP_ORDER_KIND» = «ACTIVATED_BY_ORDER_SIMPLE_STOP_ORDER» или «ACTIVATED_BY_ORDER_TAKE_PROFIT_STOP_ORDER»
USE_BASE_ORDER_BALANCE
Признак использования в качестве объема заявки «по исполнению» исполненного количества инструментов заявки-условия. Возможные значения: «YES» или «NO». Используется при «STOP_ORDER_KIND» = «ACTIVATED_BY_ORDER_SIMPLE_STOP_ORDER» или «ACTIVATED_BY_ORDER_TAKE_PROFIT_STOP_ORDER»
ACTIVATE_IF_BASE_ORDER_PARTLY_FILLED
Признак активации заявки «по исполнению» при частичном исполнении заявки-условия. Возможные значения: «YES» или «NO». Используется при «STOP_ORDER_KIND» = «ACTIVATED_BY_ORDER_SIMPLE_STOP_ORDER» или «ACTIVATED_BY_ORDER_TAKE_PROFIT_STOP_ORDER»
BASE_CONTRACT
Идентификатор базового контракта для фьючерсов или опционов. Обязательный параметр снятия заявок на рынке FORTS
MODE
Режим перестановки заявок на рынке FORTS. Параметр операции «ACTION» = «MOVE_ORDERS» Возможные значения:
«0» – оставить количество в заявках без изменения,
«1» – изменить количество в заявках на новые,
«2» – при несовпадении новых количеств с текущим хотя бы в одной заявке, обе заявки снимаются
FIRST_ORDER_NUMBER
Номер первой заявки
FIRST_ORDER_NEW_QUANTITY
Количество в первой заявке
FIRST_ORDER_NEW_PRICE
Цена в первой заявке
SECOND_ORDER_NUMBER
Номер второй заявки
SECOND_ORDER_NEW_QUANTITY
Количество во второй заявке
SECOND_ORDER_NEW_PRICE
Цена во второй заявке
KILL_ACTIVE_ORDERS
Признак снятия активных заявок по данному инструменту. Используется только при «ACTION» = «NEW_QUOTE». Возможные значения: «YES» или «NO»
NEG_TRADE_OPERATION
Направление операции в сделке, подтверждаемой отчетом
NEG_TRADE_NUMBER
Номер подтверждаемой отчетом сделки для исполнения
VOLUMEMN
Лимит открытых позиций, при «Тип лимита» = «Ден.средства» или «Всего»
KGO
Коэффициент клиентского гарантийного обеспечения
USE_KGO
Параметр, который определяет, будет ли загружаться величина КГО при загрузке лимитов из файла:
при USE_KGO=Y – величина КГО загружает.
при USE_KGO=N – величина КГО не загружается
При установке лимита на Срочном рынке Московской Биржи с принудительным понижением (см. Создание лимита) требуется указать USE_KGO= Y
CHECK_LIMITS
Признак проверки попадания цены заявки в диапазон допустимых цен. Параметр Срочного рынка FORTS. Необязательный параметр транзакций установки новых заявок по классам «Опционы ФОРТС» и «РПС: Опционы ФОРТС». Возможные значения: «YES» - выполнять проверку, «NO» - не выполнять
MATCHREF
Ссылка, которая связывает две сделки РЕПО или РПС. Сделка может быть заключена только между контрагентами, указавшими одинаковое значение этого параметра в своих заявках. Параметр представляет собой произвольный набор символов (допускаются цифры и буквы количеством до 10). Необязательный параметр
CORRECTION
Режим корректировки ограничения по фьючерсным счетам. Возможные значения:
«N» - выключен (по умолчанию), установкой лимита задается новое значение
Команды снятия группы заявок по условию («KILL_ALL_ORDERS», «KILL_ALL_STOP_ORDERS», «KILL_ALL_NEG_DEALS», «KILL_ALL_FUTURES_ORDERS») обрабатываются следующим образом:
Параметры «CLASSCODE», «TRANS_ID», «ACTION», «ACCOUNT» являются обязательными.
Возможные дополнительные параметры для команд снятия заявок по условию:
Снятию подлежат заявки, соответствующие всем указанным в транзакции параметрам (логическое «И»).
Перестановка заявок на рынке FORTS выполняется по следующим правилам:
Если MODE=0, то заявки с номерами, указанными после ключей FIRST_ORDER_NUMBER и SECOND_ORDER_NUMBER, снимаются. В торговую систему отправляются две новые заявки, при этом изменяется только цена заявок, количество остается прежним;
Если MODE=1, то заявки с номерами, указанными после ключей FIRST_ORDER_NUMBER и SECOND_ORDER_NUMBER, снимаются. В торговую систему отправляются две новые заявки, при этом изменится как цена заявки, так и количество;
Если MODE=2, то заявки с номерами, указанными после ключей FIRST_ORDER_NUMBER и SECOND_ORDER_NUMBER, снимаются. Если количество инструментов в каждой из снятых заявок совпадает со значениями, указанными после FIRST_ORDER_NEW_QUANTITY и SECOND_ORDER_NEW_QUANTITY, то в торговую систему отправляются две новые заявки с соответствующими параметрами.
См. также Примеры строк, которые могут содержаться в файле
С русским наименованием разобрался - транзакция на перестановку ордера отработала. Но прошу подсказать, есть ли вариант такой же транзакции с английским написанием полей и их значений? Нужно во избежание проблем с кодировкой в сторонних приложениях.