Не могу зарегистрировать заявку на срочной секции

Страницы: 1
RSS
Не могу зарегистрировать заявку на срочной секции, Не могу зарегистрировать заявку на срочной секции
 
Не могу зарегистрировать заявку на срочной секции
Пишет "не найден инструмент" - подскажите в чём проблема

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)
 
Добрый день.

Необходимо между заголовком и телом программы добавить следующую строку:
USE_CASE_SENSITIVE_CONSTANTS
 
СПАСИБО. Всё работает
 
Добрый день! Я тоже не могу зарегистрировать заявку на срочной секции по рынку, только мне КВИК вообще ни чего не пишет, просто не исполняет!
   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    
 
см выше  
 
USE_CASE_SENSITIVE_CONSTANTS - у меня вставлена!
 
Добрый день,

Рекомендуем воспользоваться примером:

PORTFOLIO_EX Order;
DESCRIPTION Order;
CLIENTS_LIST ALL_CLIENTS;
FIRMS_LIST ALL_FIRMS;
USE_CASE_SENSITIVE_CONSTANTS

PROGRAM

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
 
Я совсем новичок! Своего первого робота уже написал, он в таблицу выводит лучшую цену и счетчик о покупке или продаже (переворачивает позицию), но не совершает сделок (тогда я написал второго робота, чтобы робот хотя бы одну сделку совершил, но он и этого не делает).
В вашем примере мне не понятно: как подать не лимитированную заявку, как подать заявку по рынку, почему в массиве отсутствует код клиента, как подать заявку не на покупку а не на продажу и самое главное как активировать эту заявку?
 
"заявку не на покупку а не на продажу" - опечатка "заявку не на покупку а на продажу"
 
Друзья выручайте, пятый день мучаюсь! Может каких нибудь настроек в квике не хватает?
 
Цитата
В вашем примере мне не понятно: как подать не лимитированную заявку, как  подать заявку по рынку, почему в массиве отсутствует код клиента, как  подать заявку не на покупку а не на продажу и самое главное как  активировать эту заявку?
Добрый день,

Тип заявки задается параметром TYPE, где L - лимитированная, М- рыночная. Код клиента задается параметром CLIENTS_LIST. Направление заявки задается параметром OPERATION, где B - на покупку, S - на продажу.
Подать заявку Вы можете загрузив файл скрипта .qpl из меню "Сервисы/QPILE скрипты/ нажав "Добавить" затем "Загрузить локально/Создать таблицу".
Параметры заявки заполняются по правилам создания *.tri файлов (Более подробно  см. Руководство пользователя(F1) Раздел 6 - Совместная работа с другими приложениями/Импорт транзакций/Примеры строк, которые могут содержаться в файле).
Описание работы с QPILE приведено в Разделе 8. Алгоритмический язык QPILE.
 
Да это все я делаю правильно.  Нашел в квике таблицу транзакций так вот в ней указана ошибка - 4 (нехватка денежных средств) хотя денежных средств хватает, да и при входе в позицию по рынку через стакан исполняет нормально!  
 
Добрый день,
Цитата
Да это все я делаю правильно.  Нашел в квике таблицу транзакций так вот в  ней указана ошибка - 4 (нехватка денежных средств) хотя денежных  средств хватает,
Данная ошибка не относится к ошибке в коде QPILE. Для ее диагностики рекомендуем обратиться к Вашему брокеру.
Цитата
да и при входе в позицию по рынку через стакан исполняет нормально!
Вероятно, условия выставления заявки из стакана отличаются от условий выставления заявки через скрипт. Рекомендуем проверить этот момент.
 
Сегодня попробовал другие инструменты! Сбер, газпром и брент исполняется. Не исполняется только РТС?!
 
Цитата
Вова Самойлов написал:
Сегодня попробовал другие инструменты! Сбер, газпром и брент исполняется. Не исполняется только РТС?!
Добрый день,

Если ошибка прежняя -  (нехватка денежных средств), то вероятно, установленных лимитов недостаточно для выполнения заявки с указанными Вами условиями. При наличии другой ошибки просьба сообщить ее текст.
 
Ну как нехватка если там с запасом, да и через стакан сделки совершаются!?!?!?  
 
Цитата
Вова Самойлов написал:
Ну как нехватка если там с запасом, да и через стакан сделки совершаются!?!?!?
Просьба уточнить, сохраняется ли данная ошибка, либо возникает другая при подаче заявки с помощью кода?
 
Квик не выдает ошибок, а в  таблице транзакций он их по порядку записывает. Если из кода - то цифра 4, транзакция не выполнена, ошибка создания заявки (FORTS 332) нехватка средств по лимитам. Если из стакана - то 3, транзакция выполнена, заявка с биржевым номером успешно зарегистрирована.  
 
Могу принтскрин прислать, но не знаю куда его вставить!?
 
Цитата
Вова Самойлов написал:
Квик не выдает ошибок, а в  таблице транзакций он их по порядку записывает. Если из кода - то цифра 4, транзакция не выполнена, ошибка создания заявки (FORTS 332) нехватка средств по лимитам. Если из стакана - то 3, транзакция выполнена, заявка с биржевым номером успешно зарегистрирована.
Добрый день,

Ошибка "(FORTS 332) нехватка средств по лимитам" говорит о том, что заявка с данными параметрами не может быть выставлена в Торговую Систему. Необходимо проверить условия выставления заявки через скрипт. Вероятно, они отличаются от тех, которые Вы используете в стакане. Для диагностики ошибки просьба обратиться к Вашему брокеру.
 
возможно Вы неправильно указываете цену (точность либо формат)
кроме того,
res содержит сообщение об ошибке. Надо его (res) вывести на экран либо в файл либо посмотреть в отладке.
 
Цена стоит - 0 - без кавычек, с другими инструментами работает.
В режиме отладки -    RES    RESULT=1; RESULT_EX=4; ORDER_NUMBER=0.00000000; DESCRIPTION= ошибка создания заявки (FORTS 332) нехватка средств по лимитам клиета
 
УРА, увеличил средства на счете в 2 раза больше ГО для покупки и все пошло, интересно почему так происходит?!?
 
Цитата
Вова Самойлов написал:
(FORTS 332) нехватка средств по лимитам клиета
До увеличения средств вы наталкивались на биржевую ошибку.
Со стороны сервера транзакция проходила. Возможно и правда средств не хватало и биржа отклоняла транзакцию.
 
Не хотелось бы иметь на депозите в 2 раза больше средств для торговли...
 
Цитата
Вова Самойлов написал:
Не хотелось бы иметь на депозите в 2 раза больше средств для торговли...
Добрый день.

Ошибка с которой вы сталкивались это биржевая ошибка, транзакцию отвергает не сервер QUIK'a.
Можете обратиться за комментариями на биржу.
 
Всем привет, у меня еще одна проблемка - хочу сделать робота основанного на арбитраже, как можно реализовать покупку/продажу разных активов (фьючерсов) в одном роботе. При реализации в формуле необходимо прописывать две функции транзакции и если да то как это сделать? и как быть с количеством лот - QUANTITY?
 
Цитата
Вова Самойлов написал:
Всем привет, у меня еще одна проблемка - хочу сделать робота основанного на арбитраже, как можно реализовать покупку/продажу разных активов (фьючерсов) в одном роботе. При реализации в формуле необходимо прописывать две функции транзакции и если да то как это сделать? и как быть с количеством лот - QUANTITY?
Добрый день.

Да, две функции  sendtransaction
Т.е пишите один текст транзакции и ниже еще один.
 
Это понятно, не понятно как отличить эти функции при выставлении заявок и как прописывать такие параметры как: QUANTITY, SECCODE, CLASSCODE - они же будут разные?
 
Или это переменные и как я их назову так корабль и поплывет?)
 
Пример. И таких записей должно быть две (на две транзакции). Если транзакции из одного класса, то CLASSCODE будет одинаковый,
QUANTITY - кол-во сами решаете какое поставить. SECCODE - для одного и тогоже инструмента одинаковый.


Код
new_global("trans_params", "")

new_global("trans_result", "")

trans_params = CREATE_MAP  ()

trans_params = set_value (trans_params, "TRANS_ID", "333")

trans_params = set_value (trans_params, "ACTION","NEW_ORDER")

trans_params = set_value (trans_params, "CLASSCODE", "TQBR")

trans_params = set_value (trans_params, "SECCODE", "HYDR")

trans_params = set_value (trans_params, "ACCOUNT", "L01-00000F00")

trans_params = set_value (trans_params, "OPERATION", "B")

trans_params = set_value (trans_params, "PRICE","7.561")

trans_params = set_value (trans_params, "QUANTITY", "1")

trans_params = set_value (trans_params, "CLIENT_CODE", "")

trans_params = set_value (trans_params, "TYPE", "L")

trans_result =SEND_TRANSACTION (30, trans_params)

WRITELN ("qpile_trans.log", get_value (curr_datetime, "DATETIME") & ": " & "Result: " & get_value (trans_result, 
"RESULT") & ", Result_ex: " & get_value (trans_result, "RESULT_EX") & ", OrderNum: " & get_value (trans_result, 
"ORDER_NUMBER") & ", Description: " & get_value (trans_result, "DESCRIPTION"))
Страницы: 1
Читают тему
Наверх