AlexLuvs (Все сообщения пользователя)

Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Не снимаются заявки в секции FORTS
 
Чтобы не заморачиваться с запоминанием номера заявки, смотри ссылку
https://forum.quik.ru/forum10/topic3348/
Снятие всех заявок в Lua, Какой брать параметр trans_id?
 
Запоминание номера заявки не устраняет проблему задвоения заявок при перегрузке терминала. Написал код для сканирования активных заявок по определенному инструменту, если есть активные заявки, то запускается функция снятия. Количество активных заявок и их номера неважны:
Код
function scanoforder(whatsorder) - функция сканирования активных заявок по определенному инструменту
   local transaction,bs,res={},{},""
   local iTorF=0
   local iSorB=""
   for i=0,(tonumber(getNumberOf("orders"))-1) do   
      bs=getItem("orders",i)
   if whatsorder=="TorF" then
      if bit.band(bs["flags"],1)~=0 and bs["sec_code"]==p_seccode then
         iTorF=iTorF+1
      end
   elseif whatsorder=="SorB" then
      if bit.band(bs["flags"],1)~=0 and bs["sec_code"]==p_seccode then
         if bit.band(bs["flags"],4)>0 then
            iSorB="S" --break
         else
            iSorB="B"
         end
      elseif bit.band(bs["flags"],1)==0 then
         iSorB="nil"
      end
   end
   end
   if whatsorder=="TorF" then
      if iTorF>0 then
         return true
      else 
         return false
      end
   end
   if whatsorder=="SorB" then
      return iSorB
   end
end
Функция снятия всех активных заявок по определенному инструменту:
Код
function delete_order()
   local transaction,bs,res={},{},""
   for i=0,(tonumber(getNumberOf("orders"))-1) do   
      bs=getItem("orders",i)
      if bit.band(bs["flags"],1)~=0 and bs["sec_code"]==p_seccode then
         local tr={
      ["CLASSCODE"]=p_classcode,
      ["SECCODE"]=p_seccode,
      ["ACTION"]="KILL_ORDER",
      ["ACCOUNT"]=p_account,
      ["CLIENT_CODE"]=p_client_code,
      ["TYPE"]="L",
      ["OPERATION"]=l_oper,
      ["TRANS_ID"]=p_trans_ID,
      ["ORDER_KEY"]=tostring(bs["order_num"])
   }
   -- ЕСЛИ функция вернула строку диагностики ошибки, ТО значит транзакция не прошла   
         Result = sendTransaction(tr)
      end
   end
end
То же самое сделано по заявкам тейк-профит, выложу, если будет нужно
sendTransaction
 
Цитата
Stanislav Tvorogov написал:
Цитата
AlexLuvs   написал:
Интересует следующее: при отправке заявки, выставляются две заявки с разностью 1 секунда. Задержек никаких нет, все условия для того чтобы такого не происходило выполнено в скрипте.
Добрый день,

Для диагностики проблемы просьба прислать Ваш скрипт, а также скриншот, где наблюдаете указанную разницу на адрес:  quiksupport@arqatech.com  указав в письме ссылку на данную ветку форума.
Добрый день!

Благодарю. Уже разобрался в чем дело. Блок с OnQuote был перегружен. Оптимизировал код, теперь все ровно и ничего не зависает
sendTransaction
 
Интересует следующее: при отправке заявки, выставляются две заявки с разностью 1 секунда. Задержек никаких нет, все условия для того чтобы такого не происходило выполнено в скрипте.
Страницы: 1
Наверх