Не могу зарегистрировать заявку на срочной секции, Не могу зарегистрировать заявку на срочной секции
Пользователь
Сообщений: Регистрация: 18.12.2015
18.12.2015 11:57:13
Не могу зарегистрировать заявку на срочной секции Пишет "не найден инструмент" - подскажите в чём проблема
trans = CREATE_MAP() trans = SET_VALUE(trans, "CLASSCODE", "SPBFUT") trans = SET_VALUE(trans, "SECCODE", "SiH6") trans = SET_VALUE(trans, "ACTION", "new_order") trans = SET_VALUE(trans, "ACCOUNT", "L01-00000F00") trans = SET_VALUE(trans, "TYPE", "L") trans = SET_VALUE(trans, "OPERATION", "B") trans = SET_VALUE(trans, "QUANTITY", "1") trans = SET_VALUE(trans, "PRICE", b) trans = set_value(trans, "CLIENT_CODE", "SPBFUT.....") trans = SET_VALUE(trans, "TRANS_ID", 1) res = SEND_TRANSACTION(60, trans)
QUIK clients support
Сообщений: Регистрация: 27.01.2015
18.12.2015 12:40:52
Добрый день.
Необходимо между заголовком и телом программы добавить следующую строку: USE_CASE_SENSITIVE_CONSTANTS
Пользователь
Сообщений: Регистрация: 18.12.2015
18.12.2015 13:01:34
СПАСИБО. Всё работает
Пользователь
Сообщений: Регистрация: 28.01.2016
28.01.2016 18:57:47
Добрый день! Я тоже не могу зарегистрировать заявку на срочной секции по рынку, только мне КВИК вообще ни чего не пишет, просто не исполняет! SecCode="SRH6" ' код инструмента CLASSCODE="SPBFUT" ' код группы LOT=1 ' лот в сделке ACCOUNT="L01-00000F00" CLIENTCODE="мой код" LOT=1 ACTION="" ' стираем тип транзакции ACTION="NEW_ORDER" ORDER(0, LOT, "B", "M", SecCode, CLASSCODE, ACCOUNT, CLIENTCODE) ' выставляем заявку
' ФУНКЦИЯ ОТПРАВКИ ТРАНЗАКЦИЙ FUNC ORDER(PRICE,LOT,DIRECTION,TYPE, SecCode, CLASSCODE, ACCOUNT, CLIENTCODE) NEW_GLOBAL("TRANS_PARAMS", "") NEW_GLOBAL("TRANS_RESULT", "") TRANS_PARAMS = "" TRANS_PARAMS = SET_VALUE (TRANS_PARAMS, "ACCOUNT", ACCOUNT) ' наш счёт на ММВБ TRANS_PARAMS = SET_VALUE (TRANS_PARAMS, "CLIENT_CODE", CLIENTCODE) ' клиентский код TRANS_PARAMS = SET_VALUE (TRANS_PARAMS, "CLASSCODE", CLASSCODE) ' код класса TRANS_PARAMS = SET_VALUE (TRANS_PARAMS, "SECCODE", SECCODE) ' инструмент TRANS_PARAMS = SET_VALUE (TRANS_PARAMS, "ACTION", ACTION) ' вид заявки (обычная, стоп, условная) TRANS_PARAMS = SET_VALUE (TRANS_PARAMS, "PRICE", PRICE) ' цена TRANS_PARAMS = SET_VALUE (TRANS_PARAMS, "QUANTITY", LOT) ' лот TRANS_PARAMS = SET_VALUE (TRANS_PARAMS, "OPERATION", DIRECTION) ' направление TRANS_PARAMS = SET_VALUE (TRANS_PARAMS, "TYPE", TYPE) ' тип заявки (лимитированная или "по рынку")
TRANS_RESULT = SEND_TRANSACTION (30, TRANS_PARAMS) ' отправляем заявку в систему END FUNC
new_global("trans", "") new_global("res", "") trans = "" trans = SET_VALUE(trans, "CLASSCODE", "SPBFUT") trans = SET_VALUE(trans, "SECCODE", "SRH6") trans = SET_VALUE(trans, "ACTION", "new_order") trans = SET_VALUE(trans, "ACCOUNT", "SPBFUTxxxxx") trans = SET_VALUE(trans, "TYPE", "L") trans = SET_VALUE(trans, "OPERATION", "B") trans = SET_VALUE(trans, "QUANTITY", "1") trans = SET_VALUE(trans, "PRICE", "цена") trans = SET_VALUE(trans, "TRANS_ID", 1) res = SEND_TRANSACTION(60, trans)
END_PROGRAM
PARAMETER Null; PARAMETER_TITLE Null; PARAMETER_DESCRIPTION Null; PARAMETER_TYPE STRING(10); END
END_PORTFOLIO_EX
Пользователь
Сообщений: Регистрация: 28.01.2016
29.01.2016 10:08:12
Я совсем новичок! Своего первого робота уже написал, он в таблицу выводит лучшую цену и счетчик о покупке или продаже (переворачивает позицию), но не совершает сделок (тогда я написал второго робота, чтобы робот хотя бы одну сделку совершил, но он и этого не делает). В вашем примере мне не понятно: как подать не лимитированную заявку, как подать заявку по рынку, почему в массиве отсутствует код клиента, как подать заявку не на покупку а не на продажу и самое главное как активировать эту заявку?
Пользователь
Сообщений: Регистрация: 28.01.2016
29.01.2016 10:10:01
"заявку не на покупку а не на продажу" - опечатка "заявку не на покупку а на продажу"
Пользователь
Сообщений: Регистрация: 28.01.2016
29.01.2016 13:15:28
Друзья выручайте, пятый день мучаюсь! Может каких нибудь настроек в квике не хватает?
QUIK clients support
Сообщений: Регистрация: 27.01.2015
01.02.2016 10:40:38
Цитата
В вашем примере мне не понятно: как подать не лимитированную заявку, как подать заявку по рынку, почему в массиве отсутствует код клиента, как подать заявку не на покупку а не на продажу и самое главное как активировать эту заявку?
Добрый день,
Тип заявки задается параметром TYPE, где L - лимитированная, М- рыночная. Код клиента задается параметром CLIENTS_LIST. Направление заявки задается параметром OPERATION, где B - на покупку, S - на продажу. Подать заявку Вы можете загрузив файл скрипта .qpl из меню "Сервисы/QPILE скрипты/ нажав "Добавить" затем "Загрузить локально/Создать таблицу". Параметры заявки заполняются по правилам создания *.tri файлов (Более подробно см. Руководство пользователя(F1) Раздел 6 - Совместная работа с другими приложениями/Импорт транзакций/Примеры строк, которые могут содержаться в файле). Описание работы с QPILE приведено в Разделе 8. Алгоритмический язык QPILE.
Пользователь
Сообщений: Регистрация: 28.01.2016
11.02.2016 10:39:02
Да это все я делаю правильно. Нашел в квике таблицу транзакций так вот в ней указана ошибка - 4 (нехватка денежных средств) хотя денежных средств хватает, да и при входе в позицию по рынку через стакан исполняет нормально!
QUIK clients support
Сообщений: Регистрация: 27.01.2015
11.02.2016 15:02:21
Добрый день,
Цитата
Да это все я делаю правильно. Нашел в квике таблицу транзакций так вот в ней указана ошибка - 4 (нехватка денежных средств) хотя денежных средств хватает,
Данная ошибка не относится к ошибке в коде QPILE. Для ее диагностики рекомендуем обратиться к Вашему брокеру.
Цитата
да и при входе в позицию по рынку через стакан исполняет нормально!
Вероятно, условия выставления заявки из стакана отличаются от условий выставления заявки через скрипт. Рекомендуем проверить этот момент.
Пользователь
Сообщений: Регистрация: 28.01.2016
12.02.2016 17:35:49
Сегодня попробовал другие инструменты! Сбер, газпром и брент исполняется. Не исполняется только РТС?!
QUIK clients support
Сообщений: Регистрация: 27.01.2015
15.02.2016 07:44:39
Цитата
Вова Самойлов написал: Сегодня попробовал другие инструменты! Сбер, газпром и брент исполняется. Не исполняется только РТС?!
Добрый день,
Если ошибка прежняя - (нехватка денежных средств), то вероятно, установленных лимитов недостаточно для выполнения заявки с указанными Вами условиями. При наличии другой ошибки просьба сообщить ее текст.
Пользователь
Сообщений: Регистрация: 28.01.2016
15.02.2016 11:03:49
Ну как нехватка если там с запасом, да и через стакан сделки совершаются!?!?!?
QUIK clients support
Сообщений: Регистрация: 27.01.2015
15.02.2016 14:27:55
Цитата
Вова Самойлов написал: Ну как нехватка если там с запасом, да и через стакан сделки совершаются!?!?!?
Просьба уточнить, сохраняется ли данная ошибка, либо возникает другая при подаче заявки с помощью кода?
Пользователь
Сообщений: Регистрация: 28.01.2016
15.02.2016 16:06:28
Квик не выдает ошибок, а в таблице транзакций он их по порядку записывает. Если из кода - то цифра 4, транзакция не выполнена, ошибка создания заявки (FORTS 332) нехватка средств по лимитам. Если из стакана - то 3, транзакция выполнена, заявка с биржевым номером успешно зарегистрирована.
Пользователь
Сообщений: Регистрация: 28.01.2016
15.02.2016 16:09:44
Могу принтскрин прислать, но не знаю куда его вставить!?
QUIK clients support
Сообщений: Регистрация: 27.01.2015
16.02.2016 06:38:44
Цитата
Вова Самойлов написал: Квик не выдает ошибок, а в таблице транзакций он их по порядку записывает. Если из кода - то цифра 4, транзакция не выполнена, ошибка создания заявки (FORTS 332) нехватка средств по лимитам. Если из стакана - то 3, транзакция выполнена, заявка с биржевым номером успешно зарегистрирована.
Добрый день,
Ошибка "(FORTS 332) нехватка средств по лимитам" говорит о том, что заявка с данными параметрами не может быть выставлена в Торговую Систему. Необходимо проверить условия выставления заявки через скрипт. Вероятно, они отличаются от тех, которые Вы используете в стакане. Для диагностики ошибки просьба обратиться к Вашему брокеру.
Пользователь
Сообщений: Регистрация: 30.01.2015
16.02.2016 06:44:59
возможно Вы неправильно указываете цену (точность либо формат) кроме того, res содержит сообщение об ошибке. Надо его (res) вывести на экран либо в файл либо посмотреть в отладке.
Пользователь
Сообщений: Регистрация: 28.01.2016
16.02.2016 12:07:53
Цена стоит - 0 - без кавычек, с другими инструментами работает. В режиме отладки - RES RESULT=1; RESULT_EX=4; ORDER_NUMBER=0.00000000; DESCRIPTION= ошибка создания заявки (FORTS 332) нехватка средств по лимитам клиета
Пользователь
Сообщений: Регистрация: 28.01.2016
16.02.2016 13:11:50
УРА, увеличил средства на счете в 2 раза больше ГО для покупки и все пошло, интересно почему так происходит?!?
QUIK clients support
Сообщений: Регистрация: 27.01.2015
16.02.2016 20:04:25
Цитата
Вова Самойлов написал: (FORTS 332) нехватка средств по лимитам клиета
До увеличения средств вы наталкивались на биржевую ошибку. Со стороны сервера транзакция проходила. Возможно и правда средств не хватало и биржа отклоняла транзакцию.
Пользователь
Сообщений: Регистрация: 28.01.2016
16.02.2016 23:02:44
Не хотелось бы иметь на депозите в 2 раза больше средств для торговли...
QUIK clients support
Сообщений: Регистрация: 27.01.2015
17.02.2016 11:59:41
Цитата
Вова Самойлов написал: Не хотелось бы иметь на депозите в 2 раза больше средств для торговли...
Добрый день.
Ошибка с которой вы сталкивались это биржевая ошибка, транзакцию отвергает не сервер QUIK'a. Можете обратиться за комментариями на биржу.
Пользователь
Сообщений: Регистрация: 28.01.2016
03.03.2016 15:25:44
Всем привет, у меня еще одна проблемка - хочу сделать робота основанного на арбитраже, как можно реализовать покупку/продажу разных активов (фьючерсов) в одном роботе. При реализации в формуле необходимо прописывать две функции транзакции и если да то как это сделать? и как быть с количеством лот - QUANTITY?
QUIK clients support
Сообщений: Регистрация: 27.01.2015
04.03.2016 08:25:40
Цитата
Вова Самойлов написал: Всем привет, у меня еще одна проблемка - хочу сделать робота основанного на арбитраже, как можно реализовать покупку/продажу разных активов (фьючерсов) в одном роботе. При реализации в формуле необходимо прописывать две функции транзакции и если да то как это сделать? и как быть с количеством лот - QUANTITY?
Добрый день.
Да, две функции sendtransaction Т.е пишите один текст транзакции и ниже еще один.
Пользователь
Сообщений: Регистрация: 28.01.2016
04.03.2016 10:15:39
Это понятно, не понятно как отличить эти функции при выставлении заявок и как прописывать такие параметры как: QUANTITY, SECCODE, CLASSCODE - они же будут разные?
Пользователь
Сообщений: Регистрация: 28.01.2016
04.03.2016 10:18:46
Или это переменные и как я их назову так корабль и поплывет?)
QUIK clients support
Сообщений: Регистрация: 27.01.2015
04.03.2016 10:50:35
Пример. И таких записей должно быть две (на две транзакции). Если транзакции из одного класса, то CLASSCODE будет одинаковый, QUANTITY - кол-во сами решаете какое поставить. SECCODE - для одного и тогоже инструмента одинаковый.