Где взять код с созданием стоп-заявок и их управлением?

Страницы: 1
RSS
Где взять код с созданием стоп-заявок и их управлением?
 
Пытаюсь сделать следующее: если цена поднимется выше определённого значения - купить инструмент. Причём время жизни такой заявки должно быть ограничено определённым значением. Как это сделать? Аналогичное и с продажей.

Можно, кончено, всё время отслеживать рынок и сравнивать текущую цену с намеченной ценой, но, кажется, есть в qlua и более простой способ. И ещё: как отменять такие заявки и как отслеживать, выполнились ли они?
 
Если Вам нужно задать время действия с точностью до часа, то способов таких, насколько я знаю, нет.
У стоп-заявок можно задать время действия, но оно задается только в днях.
 
Хорошо, а как вообще создавать стоп-заявки и как их снимать?
 
Код
function sendStop(class,security,direction,stopprice,dealprice,volume,account,exp_date,client_code,comment)
-- отправка простой стоп-заявки
-- все параметры кроме кода клиента,коментария и времени жизни должны быть не нил
-- если код клиента нил - подлставляем счет
-- если время жизни не указано - то заявка "До Отмены"
-- Данная функция возвращает 2 параметра
--     1. ID присвоенный транзакции либо nil если транзакция отвергнута на уровне сервера Квик
--     2. Ответное сообщение сервера Квик либо строку с параметрами транзакции
if (class==nil or security==nil or direction==nil or stopprice==nil or volume==nil or account==nil or dealprice==nil) then
      return nil,"QL.sendStop(): Can`t send order. Nil parameters."
   end

   local trans_id=random_max()
   local transaction={
      ["TRANS_ID"]=tostring(trans_id),
      ["ACTION"]="NEW_STOP_ORDER",
      ["CLASSCODE"]=class,
      ["SECCODE"]=security,
      ["OPERATION"]=direction,
      ["QUANTITY"]=string_format("%d",tostring(volume)),
      ["STOPPRICE"]=toPrice(security,stopprice,class),
      ["PRICE"]=toPrice(security,dealprice,class),
      ["ACCOUNT"]=tostring(account)
   }
   if client_code==nil then
      transaction.client_code=tostring(account)
   else
      transaction.client_code=tostring(client_code)
   end
   if exp_date==nil then
      transaction["EXPIRY_DATE"]="GTC"
   else
      transaction['EXPIRY_DATE']=tostring(exp_date)
   end
   if comment~=nil then
      transaction.comment=string_sub(tostring(comment),0,20)
   else
      transaction.comment='QL'
   end
   local res=sendTransaction(transaction)
   if res~="" then
      return nil, "QL.sendStop():"..res
   else
      return trans_id, "QL.sendStop(): Stop-order sended sucesfully. Class="..class.." Sec="..security.." Dir="..direction.." StopPrice="..stopprice.." DealPrice="..dealprice.." Vol="..volume.." Acc="..account.." Trans_id="..trans_id
   end
end
 
Спасибо за код, надо попробовать.
Если кто знает, как кодом проверять, исполнилась ли заявка или как кодом её убрать -- напишите, пожалуйста.
Страницы: 1
Читают тему
Наверх