Избранное трейдера Олег
--
-- Выполнение действий с массивами.
--
local pairs = pairs
local type = type
module(...)
--- Создать копию массива (таблицы)
-- @return копию массива (таблицы)
function copy(array)
local copy_array = {}
if type(array) ~= "table" then
return array
end
for k, v in pairs(array) do
if type(v) == "table" then
copy_array[k] = copy(v)
else
copy_array[k] = v
end
end
return copy_array
end
--- Узнать, начинается ли индексация в массиве с нуля или с единицы.
-- @return 0 или 1
function base(array)
if array[0] ~= nil then
return 0
else
return 1
end
end
--- Вычислить число элементов в массиве.
-- @return число элементов в массиве
function size(array)
local n = 0
for _, _ in pairs(array) do
n = n + 1
end
return n
end
--- Проверить пустой или нет массив.
-- @return true/false
function isEmpty(array)
for _, _ in pairs(array) do
return false
end
return true
end
--- Получить первый индекс массива, где ничего не записано. Поиск начинается с 1.
-- @return первый индекс массива, где ничего не записано
function firstEmptyIndex(array)
local i = 1
while array[i] ~= nil do
i = i + 1
end
return i
end— Давайте начнем интервью с самой злободневной темы последнего времени – отрицательных цен на нефть и последствий этого явления для российских трейдеров. В конце апреля стоимость контракта на нефть Light Sweet Crude Oil опустилась ниже нуля на бирже NYMEX, а Московская биржа 21 апреля приостановила торги и рассчитала обязательства по цене американской биржи, не дав российским трейдерам возможности управления своими позициями. Как результат – участники торгов понесли многомиллионные убытки, а ответственность перед ними биржа фактически переложила на брокеров. Как вы оцениваете эту ситуацию?
— Ситуация очень вышла некрасивая. Со всех сторон. Но прежде чем давать оценки и развешивать ярлыки, давайте вспомним, что произошло 20 апреля. А произошло то, что большой спекулятивный интерес со стороны покупателей в майском контракте Crude oil на бирже NYMEX, где и происходят основные торги, не успел отроллироваться в контракты следующей серии – в июньский. В результате огромное число длинных позиций зависло перед последним днем торгов. Я напомню, что фьючерс CL – поставочный и все спекулянты, то есть игроки, не собирающиеся выходить на поставку в качестве покупателей или продавцов, обязаны в предпоследний торговый день закрыть все свои спекулятивные позиции. Так оно всегда раньше и происходило. За несколько дней до истечения ближнего контракта спекулянты не спеша перекладывались в дальний и в последний день торгов на рынке оставались только те, кто работает с физической нефтью. Но в этот раз все пошло не так.

void lua_pushnumber (lua_State *L, lua_Number n);
const char *lua_pushstring (lua_State *L, const char *s);
lua_Number lua_tonumber (lua_State *L, int index);
const char *lua_tostring (lua_State *L, int index);где L — указатель Lua-стэка, а index — абсолютный или относительный индекс переменной в стэке.