Тема: Возращает только одно значение
Доброго времени суток. Подскажите. Не могу сообразить. Сканирую таблицу depo_limits в самой функции видит позиции, но возращает только одну и туже позицию, что через return, что через присваивание глобальных переменных. Результат одинаковый. Как сделать что бы возращались параметры по каждой позиции, а не только одной и той же? Хочу написать скрипт для выставления стопов в портфеле акции.
IsRun = true
ACCOUNT = 'NL0011100043' -- Код счета
CLASS_CODE = 'QJSIM' -- Код класса
EXPIRY_DATE = 'TODAY' -- Срок действия стоп-заявки: 'TODAY' - до окончания текущей торговой сессии, 'GTC' -до отмены, или время в формате 'ГГГГММДД'
PriceStep = 0
Procent = 2
IsRun = true
SEC_CODE = '' -- Код инструмента
QTY_LOTS = 0
function OnStop()
IsRun = false
end
function main()
while IsRun do
ScanerPortfelya()
PrintDbgStr("SEC_CODE_"..SEC_CODE.."_QTY_LOTS_"..QTY_LOTS)
sleep(1000)
SEC_CODE = ""
QTY_LOTS = 0
end
end
-- Сканирует Портфель
ScanerPortfelya = function()
-- Акции
-- Перебирает таблицу "Позиции по инструментам"
local num = getNumberOf('depo_limits')
local depo_limit
for i = 0, num - 1 do
depo_limit = getItem('depo_limits', i)
if depo_limit.limit_kind == 0 and depo_limit.currentbal ~= 0 then
SEC_CODE = depo_limit.sec_code
QTY_LOTS = depo_limit.currentbal
PrintDbgStr("-----------------START--------------------")
PrintDbgStr("Код бумаги_"..depo_limit.sec_code) -- Код бумаги (STRING)
--PrintDbgStr("Счет депо_"..depo_limit.trdaccid) -- Счет депо (STRING)
--PrintDbgStr("Идентификатор фирмы_"..depo_limit.firmid)
PrintDbgStr("Код клиента_"..depo_limit.client_code)
-- PrintDbgStr("Входящий остаток по бумагам_"..depo_limit.openbal)
-- PrintDbgStr("Входящий лимит по бумагам_"..depo_limit.openlimit)
PrintDbgStr("Текущий остаток по бумагам_"..depo_limit.currentbal)
-- PrintDbgStr("Текущий лимит по бумагам_"..depo_limit.currentlimit)
-- PrintDbgStr("Заблокировано на продажу количества лотов_"..depo_limit.locked_sell)
-- PrintDbgStr("Заблокированного на покупку количества лотов_"..depo_limit.locked_buy)
-- PrintDbgStr("Стоимость ценных бумаг, заблокированных под покупку_"..depo_limit.locked_buy_value)
-- PrintDbgStr("Стоимость ценных бумаг, заблокированных под продажу_"..depo_limit.locked_sell_value)
PrintDbgStr("Цена приобретения_"..depo_limit.awg_position_price)
PrintDbgStr("Тип лимита_"..depo_limit.limit_kind)
PrintDbgStr("==================END=======================")
-- return depo_limit.sec_code, depo_limit.currentbal, depo_limit.awg_position_price
-- return depo_limit.sec_code, depo_limit.currentbal
end
end
end
Результат:
[14036] -----------------START--------------------
[14036] Код бумаги_SBER
[14036] Код клиента_1238
[14036] Текущий остаток по бумагам_10.0
[14036] Цена приобретения_118.37
[14036] Тип лимита_0
[14036] ==================END=======================
[14036] SEC_CODE_SBER_QTY_LOTS_10.0
[14036] -----------------START--------------------
[14036] Код бумаги_GMKN
[14036] Код клиента_1238
[14036] Текущий остаток по бумагам_1.0
[14036] Цена приобретения_19778.0
[14036] Тип лимита_0
[14036] ==================END=======================
[14036] -----------------START--------------------
[14036] Код бумаги_LKOH
[14036] Код клиента_1238
[14036] Текущий остаток по бумагам_1.0
[14036] Цена приобретения_3925.0
[14036] Тип лимита_0
[14036] ==================END=======================
[14036] -----------------START--------------------
[14036] Код бумаги_ROSN
[14036] Код клиента_1238
[14036] Текущий остаток по бумагам_1.0
[14036] Цена приобретения_351.5
[14036] Тип лимита_0
[14036] ==================END=======================
[14036] -----------------START--------------------
[14036] Код бумаги_SBER
[14036] Код клиента_1238
[14036] Текущий остаток по бумагам_10.0
[14036] Цена приобретения_118.37
[14036] Тип лимита_0
[14036] ==================END=======================
[14036] SEC_CODE_SBER_QTY_LOTS_10.0