Перевод ценных бумаг между субсчетами с помощью скрипта

Страницы: 1
RSS
Перевод ценных бумаг между субсчетами с помощью скрипта
 
Возможно ли организовать перевод ценных бумаг между субсчетами с помощью lua-скрипта?
Наткнулся на схожую тему с переводом ДС:
https://forum.quik.ru/messages/forum12/message5763/topic593/#message5763
Подойдёт ли для моей задачи SendSyncTransaction? Где можно посмотреть примеры и более подробно почитать?
 
Здравствуйте, Andrey.
Для Вашей задачи Вы можете воспользоваться как скриптами на lua (ф-ия sendTransaction), так и Trans2QUIK API (ф-ия TRANS2QUIK_SEND_SYNC_TRANSACTION).

Обе функции используют в качестве параметра таблицу (lua) / строку (dll), которая содержит информацию об отправляемой транзакции. Формат транзакции соответствует формату *.tri-файла (Руководство пользователя рабочего места QUIK / Раздел 6 / Импорт транзакций / Формат .tri-файла).

Функция TRANS2QUIK_SEND_SYNC_TRANSACTION описана в Руководство пользователя рабочего места QUIK / Раздел 6 / Импорт транзакций через API / Функция TRANS2QUIK_SEND_SYNC_TRANSACTION. Примеры использования функция приведены в дистрибутиве.
Функция sendTransaction описана в руководстве по QLUA / Функции взаимодействия скрипта Lua и рабочего места QUIK / sendTransaction.
 
Цитата
Andrey Bezrukov написал:
Здравствуйте, Andrey.
Для Вашей задачи Вы можете воспользоваться как скриптами на lua (ф-ия sendTransaction), так и Trans2QUIK API (ф-ия TRANS2QUIK_SEND_SYNC_TRANSACTION).

Обе функции используют в качестве параметра таблицу (lua) / строку (dll), которая содержит информацию об отправляемой транзакции. Формат транзакции соответствует формату *.tri-файла ( Руководство пользователя рабочего места QUIK / Раздел 6 / Импорт транзакций / Формат .tri-файла ).

Функция TRANS2QUIK_SEND_SYNC_TRANSACTION описана в Руководство пользователя рабочего места  QUIK / Раздел 6 / Импорт транзакций через API / Функция TRANS2QUIK_SEND_SYNC_TRANSACTION . Примеры использования функция приведены в  дистрибутиве .
Функция sendTransaction описана в руководстве по QLUA / Функции взаимодействия скрипта Lua и рабочего места QUIK / sendTransaction.
Андрей, спасибо за ответ. Куда копать понятно. Но видимо я не до конца разобрался с параметрами. Можете подсказать что не так?
Код
-- документация п. 9.4.1
local class_code = "RU000A0JWM07"
local transaction = {
["ACTION"] = "NEW_INSTR_TYPE_4",
["TRANS_ID"] = tostring(999),
["CLASSCODE"] = class_code,
["INSTR_RATE"] = "1",
["CLIENT_CODE"] = "8XXXXX",
["QUANTITY"] = "10",
["SECCODE"] = "RUB",
["CLIENT_CODE_CP"] = "8XXXXX/7YYYY",
["ACCOUNT"] = "L01-00000F00",
["CLIENT_CODE"] = "8XXXXX"
}
Err_Take = sendTransaction(transaction)
message(Err_Take)   
Цитата
Ошибка:
Указанный класс не найден: "RU000A0JWM07"
 
Посмотрел пример
Цитата

Поручение «Перевод ЦБ»:

ACTION=NEW_INSTR_TYPE_4; TRANS_ID=438; CLASSCODE=INSTR; INSTR_RATE=1; CLIENT_CODE=Q7;
QUANTITY=10; SECCODE=RURSUR389; REAL_SECCODE=EESR; REAL_CLASS=BQUOTE;
REAL_FIRM=NC0038900000; CLIENT_CODE_CP=Q7; ACCOUNT=L01-00000F00;

ACCOUNT_CP=L01-00000F00; DEPO_ACCOUNT=L01-00000F00|Брокеров И.И.|Ушкин У.У.|НРД|Дог.105|20070307|;

DEPO_ACC_TYPE=111; DEPO_ACCOUNT_CP=L01-00000F00|Брокеров И.И.|Ушкин У.У.|НРД|Дог.105|20070307|;

DEPO_ACC_TYPE_CP=111; CLASSCODE_OUT=BQUOTE; SECCODE_OUT=EESR;
DOC_COMMENT=Ставка согласнотарифному плану;EXPIREDAY=0; INTERNAL_NUMBER=404;
Попробовал сделать по аналогии:
Код
local transaction = {
["ACTION"] = "NEW_INSTR_TYPE_4",
["TRANS_ID"] = tostring(999),
["CLASSCODE"] = "INSTR",
["INSTR_RATE"] = "1",
["CLIENT_CODE"] = "8XXXXX",
["QUANTITY"] = "10",
["SECCODE"] = "RURSUR389",
["REAL_SECCODE"] = "RU000A0JWM07",
["CLIENT_CODE_CP"] = "8XXXXX/73768", -- Код клиента-получателя. Указывается только для поручений на перевод ДС и ЦБ. 
["ACCOUNT"] = "L01-00000F00", -- Номер счёта трейдера. Необязательный параметр
["CLIENT_CODE"] = "8XXXXX" -- код клиента
}
Err_Take = sendTransaction(transaction)
message(Err_Take)   
Цитата
Указанный класс не найден: "INSTR"
 
Andrey,
Касательно первой ошибки - Вы в поле  CLASSCODE (код класса) указали код инструмента, что некорректно.
Со второй ошибкой ситуация обстоит несколько сложнее и менее однозначно.

Корректный формат строки транзакции на перевод ЦБ, в общем, зависит от того, каким образом данная транзакция будет обработана РМ QUIK. Здесь возможны варианты и есть свои нюансы.

В связи с этим предлагаем поступить следующим образом.
Вы можете воспользоваться карманом транзакций - положить в него транзакцию на перевод ЦБ, сохранить транзакции в кармане в *.tri-файл и ознакомиться с форматом, представленным в этом файле и использовать его для дальнейшей работы в качестве примера.

В случае, если у Вас возникнут сложности при использовании такой транзакции - пожалуйста, здесь, либо по почте quiksupport@arqatech.com опишите Ваши затруднения, приведите текст сообщения ошибки, пример используемой Вами транзакции и снимок экрана, на котором было бы видно используемую форму ввода такой транзакции в РМ QUIK.
Страницы: 1
Читают тему
Наверх