Не получается создать новую заявку

Страницы: 1
RSS
Не получается создать новую заявку
 
Мой код:
function OnInit(script)    
TRANS_ID = os.time()
   is_run = true
end
function OnStop()
   message("Stopped", 2)
   is_run = false
   return 2000
end
function main()
   transaction = {}
   transaction['TRANS_ID'] =  tostring(TRANS_ID)
   transaction['ACTION'] = 'Ввод заявки'
   transaction['CLASSCODE'] = 'QJSIM'
   transaction['Торговый счет'] = 'NL0011100043'
   transaction['Инструмент'] = 'SBER'
   transaction['К/П'] = 'Купля'
   transaction['Цена'] = '0'
   transaction['Лоты'] = '1'
   transaction['Тип'] = 'Рыночная'
   result = sendTransaction(transaction)
   if result ~= "" then
       message(string.format("Транзакция %s не прошла проверку на стороне терминала QUIK [%s]",
       transaction.TRANS_ID, result))
   else
       message(string.format("Транзакция %s отправлена",
       transaction.TRANS_ID))
   end

   while is_run do
       sleep(100)
   end

end

Пишет: Транзакция 1622626120 не прошла проверку на стороне терминала QUIK [Не найдено поле "Лоты" для транзакции "Ввод заявки" по классу "Акции 1-го уровня (эмулятор)"]
 
В квике есть два типа формата транзакций, названные "специальный" и "универсальный"

Вы написали в "универсальном" формате, у которого от универсальности только название, и будет или нет работать зависит от кучи причин.
Лучше писать в "специальном" формате, вот он действительно универсален.

Такой вот парадокс от разработчиков.

Вот это удалите
Код
transaction['TRANS_ID'] =  tostring(TRANS_ID)
transaction['ACTION'] = 'Ввод заявки'
transaction['CLASSCODE'] = 'QJSIM'
transaction['Торговый счет'] = 'NL0011100043'
transaction['Инструмент'] = 'SBER'
transaction['К/П'] = 'Купля'
transaction['Цена'] = '0'
transaction['Лоты'] = '1'
transaction['Тип'] = 'Рыночная'
а это вставьте
Код
transaction['TRANS_ID'] =  tostring(TRANS_ID)
transaction['ACTION'] = "NEW_ORDER"
transaction['QUANTITY'] = '1'
transaction['CLASSCODE'] = 'QJSIM'
transaction['ACCOUNT'] = 'NL0011100043'
transaction['SECCODE'] = 'SBER'
transaction['OPERATION'] = 'B'
transaction['PRICE'] = '0'
transaction['TYPE'] = 'M'
это то же самое, только еще и работать будет
 
Хотелось бы услышать комментарии от разработчиков, ведь приведенный Alt_Dev код из документации "Использование Lua в Рабочем месте QUIK.pdf" (с небольшими изменениями, но не принципиальными).
И данный код не работает на свежем, только установленном QUIK Junior
 
Alt_Dev, BlaZed, добрый день!

Вместо параметра "Лоты" необходимо использовать параметр "Количество" (либо, в другом формате - "QUANTITY").
Что касается информации в документации, проблема изучается. Постараемся в ближайшее время дать ответ.
 
Добрый день,

В универсальном формате в описание транзакции нужно в качестве имени параметров указывать именование поля транзакции, это именование для разных торговых систем может отличаться.
В частности, для количества может использоваться и "Лоты", и "Количество". Это можно увидеть, выбрав динамический режим отображения для форм ввода заявки, открыть форму ввода и посмотреть именование полей.
Страницы: 1
Читают тему
Наверх