Проверка правильности задания торгового счета
Нет ничего проще, чем ошибиться в указании торгового счета для робота в настройках. Ошибка выплывает обычно не сразу, а в момент выставления транзакции. Поэтому лучше заранее все проверить.
Упрощенный вариант (для случая единственного счета в терминале):
-- Возвращает таблицу-описание торгового счета по его названию
-- или nil, если торговый счет не обнаружен function search_account(account)
local index_table = SearchItems("trade_accounts",0,getNumberOf("trade_accounts")-1,function(trdaccid) return trdaccid == account end ,"trdaccid")
if index_table then
return getItem("trade_accounts",index_table[1])
end
end
А вот так может выглядеть сама проверка:
-- Проверяем соотношение ACCOUNT и CLASSCODE
local account_description = search_account(account)
if account_description == nil then
_error("Торговый счет " .. account .. " не обнаружен")
elsif inlist(account_description.class_codes,classcode,"|") == nil then
_error("Торговый счет " .. account .. " не позволяет торговать инструментом " .. seccode .. "/" .. classcode)
end
Функция inlist() проверяет наличие класса в строке-списке. Функция _error() что-то делает в случае ошибки.
