Алгоритмы ежедневной индексации (инвестиции)

maximovega

Возможно, кто-то сталкивался с подобным вопросом в некоторой форме. Если да, буду рада узнать ваше мнение. Если существуют возможности решения, подскажите, пожалуйста, как улучшить метод?
Один из простейших алгоритмов очень рутинный, "прямой", занимает чрезвычайно много времени. Но выполнять его нужно, и, честно говоря, возможные сбои в системах, заставляющие запускать его с самого начала, чувствуются уже более чем неприятными. К концу года он растягивается на 12-15 часов, мне это на практике представляется совершенно неразумным.
Есть список счетов, каждый из которых отвечает за определённый консервативный финансовый инструмент (чаще всего это депозиты или инвестиционные паи, растущие регулярно, постепенно по фиксированной ставке, или регулярно с них снимаются издержки по подобной схеме). Почти каждый день в системах происходит переоценка, и вносятся новые данные. В результате имею огромную табличку вида
FinancialSecurity InterestRate CalculationDate
Требуется по истечении периода от начала года получить сумму всех издержек, management fee и остальных почти ежедневных изменений. Для этого табличка соединяется по названиям инструментов с самой собой (t1.FinancialSecurity = t2.FinancialSecurity выбирается минимум (MIN(t2.CalculationDate - t1.CalculationDate и, грубо говоря, нечто вроде суммы инвестиций, умноженной на (1+i) в этой степени с условиями t2.CalculationDate > t1.CalculationDate, t1.CalculationDate < HalfYear, t2.CalculationDate < HalfYear. (Для ускорения алгоритм выполняется отдельно для данных первого полугодия, после эти данные удаляются и алгоритм выполняется для оставшихся.) Условия пересекаются, чтобы отсечь выбор слишком далеко отстоящих дат.
Вопрос следующий: не лишнее ли "пересекать" условия или, наоборот, лучше добавить что-то типа t2.CalculationDate - t1.CalculationDate < 5? Стоит вводить разделение на половину года, стоит его, более того, участить (делить не на два, а переоценивать ежеквартально, ежемесячно и так далее? Самое важное: все эти "косметические коррективы" могут ускорить процессы существенно или стоит в принципе выбрать иной алгоритм, внести более серьёзные изменения?

laskova_46

ну как тебе пояснить, надо макрос написать, чтобы платежи мололись автоматически, иначе никак не получится.
у меня по лизингу тоже гигантские таблицы были и ниче с ними кардинального не сделашь

reallyjust

Флосе правда что у тебя эксель на чешском?

Trams

я не понял, это объявление о работе? скока денег дают за решения этих вопросов?

maximovega

Не вопрос, напишу макрос, если необходимо. :) Реализую другой алгоритм. Самое важное меня беспокоит - какой способ улучшит время работы значительно?

laskova_46

Не вопрос, напишу макрос, если необходимо. Реализую другой алгоритм. Самое важное меня беспокоит - какой способ улучшит время работы значительно?
глянула на свой, мало отличается от твоего, считает тоже долго
Оставить комментарий
Имя или ник:
Комментарий: