Расчет финансовых данных / формул (хранение / производительность) - PullRequest
0 голосов
/ 05 июня 2010

В настоящее время я нахожусь в фазе анализа разработки своего рода скрин-скейера на основе локали (см. Google 'для аналогичной работы), и я был бы признателен за совет экспертов SO. Во-первых, Stock Screener, очевидно, должен будет хранить формулы, необходимые для выполнения расчетов. Мой первоначальный вывод заключается в том, что формулы должны храниться на уровне базы данных. Что вы думаете об этом? Можно ли повысить скорость (очень важно), сохранив формулы в плоском файле (XML / TXT)?

Во-вторых, я также хотел бы спросить совета относительно внутреннего исполнения формул Приложением. В настоящее время я склоняюсь к выполнению формул для параметров в ВРЕМЯ РАБОТЫ, а не к запуску формул для параметров всякий раз, когда эти параметры предоставляются системе, и сохранению результатов выполнения в БД для последующего простого поиска (Моя локальная фондовая биржа в настоящее время НЕ поддерживает реальное время Обновление цены акций). Хотя я совершенно уверен, что первоначальный план (выполняющийся во время выполнения) изначально лучше, приложение потенциально может обрабатывать самые разные формулы, а также работать с различными входными параметрами. Что вы думаете об этом?

Я также прошел через SO, чтобы найти информацию о том, как хранить формулы в БД, но хотел узнать, как можно разрешить рекурсивные формулы, т. Е. Формулы, для которых требуются результаты других формул для выполнения вычислений? Я не возражаю против указателей на другие вопросы или форумы.

[EDIT] [Эта страница] 2 содержит много информации о том, чего я пытаюсь достичь, но отличается от того, что мне нужно создать некоторые формулы со СПЕЦИАЛЬНЫМИ токенами, такими как SP, которые будут представлять собой Stock Цена за текущий день и SP(-1) будет представлять цену за предыдущий день. Эти специальные токены потребовали бы, чтобы Приложение выполняло какой-либо доступ к БД для получения значений, которыми они заменены.

Примером формулы может быть:

(SP/SP(-1)) / 100

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

Большое спасибо за вашу помощь.

1 Ответ

0 голосов
/ 16 июня 2010

Крис, я не хочу предполагать, что я лучше понимаю ваши требования, чем вы, но по стечению обстоятельств я прочитал эту статью сегодня днем ​​после того, как опубликовал свой предыдущий комментарий;

http://thedailywtf.com/Articles/Soft_Coding.aspx

Вы абсолютно уверены, что "удобство" обновления формул без перекомпиляции кода стоит головной боли обслуживания, что такое решение, возможно, может оказаться за чертой?

Я настоятельно рекомендую вам жестко программировать свою логику, если только вы не хотите, чтобы кто-то без доступа к источнику обновлял формулы довольно регулярно.

И я все равно не вижу, чтобы это происходило слишком часто, учитывая, что конкретный домен здесь, цены на акции, имеет хорошо установленный набор формул для расчета различных соответствующих метрик.

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

В любом случае, ваш проект звучит очень интересно, я надеюсь, что он работает хорошо, независимо от того, какой подход вы решите использовать. Удачи!

...