Помогите пожалуйста сообразить с кодом для закрытия позиции.
Т.е. например вошёл в сделку, купил или продал 5 лотов.
Как организовать закрытие позиции по какому то условию?
На какой callBack повесить код?
Если вешаю на onParam подобный код успевает выполниться несколько раз(функция получения кол-ва штук/позиции в портфеле видимо отрабатывает недостаточно быстро), в результате из 5 шт. в лонг получаю 5 в шорт, а мне просто нужно выйти в 0.
Код |
---|
function get_futures_holdings(seccode)
--функция получения позиции в портфеле
local function fn(t)
if t.sec_code == seccode then
return true
else
return false
end
end
local t1 = SearchItems("futures_client_holding", 0, getNumberOf("futures_client_holding")-1, fn)
if t1 ~= nil then
local item = getItem("futures_client_holding", t1[1])
return item
end
end
if условие then
-- проверить cколько сейчас есть в портфеле
local client_holding = get_futures_holdings(seccode)
if client_holding and client_holding.totalnet ~=0 then
local position = client_holding.totalnet
if direction == 'B' then
if position > 0 then
-- MarketSell()
end
else
if position < 0 then
-- MarketBuy()
end
end
end
end
|