Не работает снятие активных стоп-заявок

Страницы: 1
RSS
Не работает снятие активных стоп-заявок
 
Здравствуйте!
Имеется активная стоп-заявка, которую необходимо программно снять из LUA-скрипта.
С этой целью была адаптирована найденная на просторах Интернета функция. Поскольку, как тут уже писали представители техподдержки, сразу  все активные стоп-заявки из LUA снять нельзя (KILL_ALL_STOP_ORDERS в LUA не поддерживается), приходится перебирать все стоп-заявки, отыскивать из них по флагу активные, получать их номер и по этому номеру уничтожать. Поиск нужных заявок и получение их номера работает, а транзакция их удаления по этому номеру - нет.
Код
is_run                  = true;              -- Флаг работы главного цикла программы
TRADE_ACC               = "SSSSSSSSSSS";     -- Торговый счет
CLASS_CODE_FUT          = "SPBFUT";          -- Класс ФЬЮЧЕРСОВ
SEC_CODE_FUT_FOR_OPEN   = "SiM6";            -- Код ФЬЮЧЕРСА для открытия

function main()
   while is_run do
       killStopOrders(SEC_CODE_FUT_FOR_OPEN);
       sleep(5000); 
   end;
end;

function killStopOrders( seccode )
   local transaction,bs,res={},{},""
   for i=0,(tonumber(getNumberOf("stop_orders"))-1) do   
   bs=getItem("stop_orders",i)
 if bit.band(bs.flags, 1)~=0  and bs.seccode==seccode then
 message("Попытка удалить  заявку с номером "..tostring(bs.ordernum));
   local transaction={
        ["TRANS_ID"]=tostring(math.random(1,9999)),
        ["ACTION"]="KILL_STOP_ORDER",
        ["CLASSCODE"]=CLASS_CODE_FUT,
        ["SECCODE"]=SEC_CODE_FUT_FOR_OPEN,
        ["STOP_ORDER_KEY"]=tostring(bs.ordernum),
   --    ["ACCOUNT"]    = TRADE_ACC,
        }
   -- ЕСЛИ функция вернула строку диагностики ошибки, ТО значит транзакция не прошла   
   local Result = sendTransaction(Transaction);
   if Result ~= "" then
      message("Удаление стоп-заявки не удалось!\nОШИБКА: "..tostring(Result));
   end; 
  end;
   end;
end;
Подскажите пожалуйста, что еще можно сделать или как вообще еще возможно удалить активные стоп-заявки из LUA?
 
Здравствуйте,
Lua - это регистозависимый язык. Большие или маленькие буквы в именах переменных имеют значения.
У Вас в коде встречается "transaction" и "Transaction", это разные переменные, хотя и не должны такими быть.
Страницы: 1
Читают тему
Наверх