Помогите пожалуйста сообразить с кодом для закрытия позиции.
Т.е. например вошёл в сделку, купил или продал 5 лотов.
Как организовать закрытие позиции по какому то условию?
На какой callBack повесить код?
Если вешаю на onParam подобный код успевает выполниться несколько раз(функция получения кол-ва штук/позиции в портфеле видимо отрабатывает недостаточно быстро), в результате из 5 шт. в лонг получаю 5 в шорт, а мне просто нужно выйти в 0.
Т.е. например вошёл в сделку, купил или продал 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 |