function OnInit()
is_run=true
end
function OnStop()
do_main=false
DestroyTable(id)
end
-- ******************************************************************************************************* Блок расчета и вывода КДС
function InitKDS()
id = AllocTable()
AddColumn(id, 1, "Счёт", true, QTABLE_CACHED_STRING_TYPE, 18)
AddColumn(id, 2, "КДС", true, QTABLE_DOUBLE_TYPE, 10)
AddColumn(id, 3, "Требование (до КДС = 0)", true, QTABLE_DOUBLE_TYPE, 30)
CreateWindow(id)
SetWindowCaption(id,"Расчет КДС")
SetWindowPos(id,1244,0,340,160)
for i = 0, getNumberOf("futures_client_limits") - 1 do
if getItem("futures_client_limits",i).limit_type == 0 then
InsertRow(id, -1)
end
end
end
function CalkKDS()
local ceil=math.ceil
local j = 1
local kds = 1
local margin = 0
for i = 0, getNumberOf("futures_client_limits") - 1 do
if getItem("futures_client_limits",i)~=nil then
if getItem("futures_client_limits",i).limit_type == 0 then
local fcl = getItem("futures_client_limits",i)
if (fcl.cbplimit + fcl.accruedint) ~= 0 then
kds = ceil((fcl.cbplimit + fcl.accruedint - fcl.cbplused_for_positions + fcl.varmargin)/(fcl.cbplimit + fcl.accruedint)*1000)/1000
if kds >= 0.00 and kds <= 0.20 then
SetColor(id, j, 2, RGB(255, 255, 0) ,QTABLE_DEFAULT_COLOR, QTABLE_DEFAULT_COLOR, QTABLE_DEFAULT_COLOR)
SetColor(id, j, 3, RGB(0, 255, 0) ,QTABLE_DEFAULT_COLOR, QTABLE_DEFAULT_COLOR, QTABLE_DEFAULT_COLOR)
elseif kds < 0.00 then
SetColor(id, j, 2, RGB(255, 0, 0) ,QTABLE_DEFAULT_COLOR, QTABLE_DEFAULT_COLOR, QTABLE_DEFAULT_COLOR)
margin = ceil(fcl.cbplused_for_positions - (fcl.cbplimit + fcl.accruedint + fcl.varmargin)*1000)/1000
SetColor(id, j, 3, RGB(255, 0, 0) ,QTABLE_DEFAULT_COLOR, QTABLE_DEFAULT_COLOR, QTABLE_DEFAULT_COLOR)
else
SetColor(id, j, 2, RGB(0, 255, 0) ,QTABLE_DEFAULT_COLOR, QTABLE_DEFAULT_COLOR, QTABLE_DEFAULT_COLOR)
SetColor(id, j, 3, RGB(0, 255, 0) ,QTABLE_DEFAULT_COLOR, QTABLE_DEFAULT_COLOR, QTABLE_DEFAULT_COLOR)
mailKDS02=true
end
SetCell(id, j, 1, tostring(fcl.trdaccid),0)
SetCell(id, j, 2, tostring(kds),kds)
SetCell(id, j, 3, tostring(margin), margin)
else
SetColor(id, j, 2, RGB(0, 255, 0) ,QTABLE_DEFAULT_COLOR, QTABLE_DEFAULT_COLOR, QTABLE_DEFAULT_COLOR)
SetCell(id, j, 1, tostring(fcl.trdaccid),0)
SetCell(id, j, 2, tostring(kds),kds)
end
j = j + 1
end
end
end
end
-- *******************************************************************************************************
function main()
do_main=true
while isConnected()~=1 do sleep(100) end
sleep(5000) -- Для отображения таблицы после запуска квика
InitKDS()
while do_main do
if isConnected()==1 then
if is_run then
CalkKDS()
if IsWindowClosed(id) then is_run = false end
end
end
sleep(1000)
end
end |