Средний спред

Страницы: 1
RSS
Средний спред
 
Добрый день.
Уже много лет я пользуюсь кодом для расчёта среднего спреда по акции:
Код
--Внутри колбека OnParam
--Считаем средний спред
         local tablebid = getParamEx(class_code,  fff, "bid") --получаем таблицу "bid"
         local bid=tablebid.param_value --из таблицы берём значение
         local tableoffer = getParamEx(class_code,  fff, "offer") --получаем таблицу "offer"
         local offer=tableoffer.param_value --из таблицы берём значение
         local p_spread = (offer - bid) / bid * 100 --считаем текущий спред по бумаге
         local elem = average_spreads[fff] --создаём таблицу для хранения расчётных данных
            if elem == nil then
               average_spreads[fff] = { Count = 1, Spread = p_spread, Avr = p_spread}
               elem = average_spreads[fff]
               else
               elem.Spread = p_spread
               elem.Avr = (elem.Avr * elem.Count + p_spread) / (elem.Count + 1)
               elem.Count = elem.Count + 1
               spread[fff]=elem.Avr
            end
Его написал один добрый человек на каком-то трейдерском форуме по Луа. Уже не помню где и кто.
Этот код считает средний спред безостановочно по всем значениям, даже если их будет миллион.
Подскажите пожалуйста как видоизменить код, чтобы он считал спред за последние 1000 значений? Мне приходит на ум только создание таблицы с 1000 полями, которые будут обновляться, а старые (ненужные) удаляться. Может быть есть более красивый вариант? Благодарю за советы
Страницы: 1
Читают тему
Наверх