Иногда необходимо выставить заявку с автопереносом на следующую торговую сессию. Заявка автоматически перевыставляется до определенной даты. Ниже представлен пример кода Lua функции по выставлению заявки для фьючерса или опциона.
local trans_id = os_time() local classcode = "SPBFUT" local account = "SPBFUT00123" local security = "RIM6" local function SetOrder( operation, -- Операция ('B' - buy, 'S' - sell) qty, -- Количество price, -- Цена exp_date -- Дата экспирации в формате ГГГГММДД ) -- Выставляет лимитированную заявку local Res = '' if operation == nil or qty == nil or price == nil then Res = "Не заданы обязательные параметры для транзакции" return 0, Res end local Transaction={} -- Получает ID для следующей транзакции local trans_id = trans_id+1 local operation_l = "" if operation == "B" then operation_l = "Покупка" else operation_l = "Продажа" end -- Заполняет структуру для отправки транзакции Transaction= { ["TRANS_ID"] = tostring(trans_id), ["CLASSCODE"] = classcode, ["ACTION"] = "Ввод заявки", ["Класс"] = classcode ["Инструмент"] = security, ["Торговый счет"] = account, ["Тип"] = "Лимитированная", ["К/П"] = operation_l, ["Цена"] = tostring(price), ["Количество"] = tostring(qty), ["Условие исполнения"] = "Поставить в очередь", ["Комментарий"] = "" } if exp_date~=nil then Transaction['Переносить заявку']='Да' Transaction['Дата экспирации']=tostring(exp_date) end if classcode=="SPBOPT" then Transaction['Проверять лимиты']="Нет" end -- Отправляет транзакцию Res = sendTransaction(Transaction) -- Если при отправке транзакции возникла ошибка if Res ~= '' then Res = "Ошибка транзакции "..trans_id.." "..Res return 0, Res end Res = nil -- Если транзакция отправлена, возвращает ее номер return trans_id,Res end