Тема: как отменить стоп-заявки на forts
Как отменить все стоп-заявки на forts? Я написал функцию, где ACTION равно KILL_ALL_STOP_ORDERS, но она почему-то неработает, вообще никакой реакции.
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
QUIK -> DDE → Lua: учебники, общие вопросы → как отменить стоп-заявки на forts
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Как отменить все стоп-заявки на forts? Я написал функцию, где ACTION равно KILL_ALL_STOP_ORDERS, но она почему-то неработает, вообще никакой реакции.
function KillAllStops(ClassCode,SecCode)
local ord = "stop_orders"
for i=0,getNumberOf(ord) do
local t=getItem(ord, i)
if t ~= nil and type(t) == "table" then
if( t.seccode == SecCode and orderflags2table(t.flags).active == 1) then
local transaction={
["TRANS_ID"]=tostring(math.random(2000000000)),
["ACTION"]="KILL_STOP_ORDER",
["CLASSCODE"]=ClassCode,
["SECCODE"]=SecCode,
["STOP_ORDER_KEY"]=tostring(t.ordernum),
}
local res=sendTransaction(transaction)
if res~="" then
return nil, "qlib.KillAllStops():"..res
else
return trans_id, res
end
end
end
end
end
function killAllStopOrders(table_mask)
-- данная функция отправит транзакции на отмену АКТИВНЫХ стоп-заявок соответствующим фильтру указанному как входящий параметр table_mask
-- список всех возможных параметров : ACCOUNT,CLASSCODE,SECCODE,OPERATION,CLIENT_CODE,COMMENT
-- если вызвать функцию с параметром nil - снимутся ВСЕ активные заявки
local i,key,val,result_num=0,0,0,0
local tokill=true
local row={}
local result_str=""
for i=0,getNumberOf("stop_orders"),1 do
row=getItem("stop_orders",i)
tokill=false
--toLog(log,"Row "..i.." onum="..row.ordernum)
if stoporderflags2table(row.flags).active then
tokill=true
--toLog(log,"acitve")
if table_mask~=nil then
for key,val in pairs(table_mask) do
--toLog(log,"check key="..key.." val="..val)
--toLog(log,"strlowe="..string.lower(key).." row="..row[string.lower(key)].." tbl="..val)
if row[string.lower(key)]~=val then
tokill=false
--toLog(log,"false cond. t="..table_mask.key.." row="..row[string.lower(key)])
break
end
end
end
end
if tokill then
--toLog(log,"kill onum"..row.ordernum)
res,ms=killStopOrder(tostring(row.ordernum),row.seccode,row.class_code)
result_num=result_num+1
--toLog(log,ms)
if res then
result_str=result_str..row.ordernum..","
else
result_str=result_str.."!"..row.ordernum..","
end
end
end
return true,"QL.killAllStopOrders(): Sended "..result_num.." transactions. Ordernums:"..result_str
end
Фукнция из библиотеки QL. [url=http://forum.qlua.org/topic5.html]Ссылка[/url]
ясно, спасибо большое.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
QUIK -> DDE → Lua: учебники, общие вопросы → как отменить стоп-заявки на forts
Форум работает на PunBB, при поддержке Informer Technologies, Inc