Тема: Простой вопрос по сделке через QLua скрипт
Я начал знакомство с QLua и пытался сделать пример покупки/продажи акции через скрипт. Нашёл какой-то пример робота, по нему сделал свой пример покупки/продажи по шелчку мыши. Попробовал купить что-то подешевле, чтобы проверить работу скрипта. Фонд Ликвидность (LQDT) ETF от ВТБ купить не удалось, акцию ГИТ (GRNT) тоже, а акцию Мечела (MTLR) купил и продал.
У меня CLASSCODE = 'TQBR', а SECCODE, как написано в скобках. Подскажите, какие должны были быть эти параметры, в сообщениях было "не найден инструмент GRNT" и т.п. Почему GRNT не найден, а MTLR найден? Также интересуют эти параметры для покупки/продажи металлов и валюты. Где их вообще можно найти, я через поисковики на нашёл?..
После отправки транзакции через sendTransaction, этот найденный мной старючий скрипт ждёт, пока не получит статус текущей транзакции:
while is_run and trans_Status == nil do sleep(1) end
[...]
function OnTransReply(trans_reply)
-- Если поступила информация по текущей транзакции
if trans_reply.trans_id == trans_id then
-- Передает статус в глобальную переменную
trans_Status = trans_reply.status;
-- Передает сообщение в глобальную переменную
trans_result_msg = trans_reply.result_msg;
end
Через несколько секунд после сделки этот скрипт завешивает терминал, похоже, что не может выйти из бесконечного цикла выше. Видимо, в колбэке почему-то не сравнивается trans_reply.trans_id == trans_id. trans_id передаётся через sendTransaction:
local Transaction =
{ ['TRANS_ID'] = tostring(trans_id), ...
local res = sendTransaction(Transaction)
Почему так происходит, и как надо делать правильно? Дайте самый простой пример совершения сделок со всеми проверками на ошибки, чтобы самому не городить огород, спасибо за внимание.