Как Разработать Программу для Выполнения Сложных финансовых вычислений с.NET

Вы могли использовать Google GeoCode API

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

5
задан Hamish Smith 8 July 2009 в 22:42
поделиться

8 ответов

Готов поспорить, ваша компания зарабатывает более 1 миллиарда долларов в год, и все это на основе таблицы Excel. Вы не одиноки в этом.

Я бы начал с размышлений о проблеме, а не о таблице Excel. В чем проблема бизнеса? Можете ли вы смоделировать это с помощью предметов? Я вижу несколько объектов: Политика со всеми сопутствующими дочерними элементами Coverage и Class; Застрахованный, с такими характеристиками, как пол, курильщик и т. Д. - вы поняли.

Прогноз звучит так, как будто у вас будет несколько переменных типа «что, если», которые будут иметь некоторые статистические свойства, которые вы можете изменять. Ваша задача будет заключаться в запуске множества симуляций типа Монте-Карло, которые изменяют переменные путем извлечения из выборки и вычисления результата. Ваш результат будет прогнозируемым средним значением со стандартным отклонением и уровнем достоверности.

Может быть хорошим кандидатом для массовых параллельных вычислений.

На чем основаны расчеты? Какие-нибудь известные модели, которыми вы можете поделиться? Может быть, это даст намек.

4
ответ дан 13 December 2019 в 22:13
поделиться

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

3
ответ дан 13 December 2019 в 22:13
поделиться

Это действительно простой вопрос .. … со сложным ответом.

Вы спрашиваете: «Как я могу спланировать сложный программный проект?»

Знайте свою среду (как вы говорите):

Знать разработку программного обеспечения:

Знать свой язык / среда разработки:


  1. Первый шаг - выяснить, как вы работаете в качестве разработчика.
  2. Спланируйте шаги, которые вы будете или могли бы предпринять.
  3. Упростите все до МИНИМУМА.
  4. Пересмотрите свой список того, что нужно делать.
  5. Сделайте копию.
  6. Сделайте это.

Если вы нервничаете по поводу запуска, я бы создал простой функциональный прототип. Начните с визуализации проекта в виде чего-то вроде Balsamiq Mockups , чтобы вы могли увидеть, как каждая часть головоломки сложится вместе.

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

2
ответ дан 13 December 2019 в 22:13
поделиться

Вот подход, который я выберу:

  • Сохраните ваши данные (материал на 3-4 страницах с 60 столбцами / 1300 строками ) в БД или другом хранилище данных.
  • Выполняйте вычисления с использованием функций БД (выберите сумму (foo) из blah;), временных таблиц, массивов в памяти и т. д.
  • Сохраните вычисления в хранилище данных (для позже более легкий поиск и аудит)
0
ответ дан 13 December 2019 в 22:13
поделиться

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

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

0
ответ дан 13 December 2019 в 22:13
поделиться

Чтобы добавить некоторые особенности:

  • Значения ячеек становятся переменными или записями в базе данных. Например, вместо формулы для B1, равной A1 + 2 (где A1 содержит количество виджетов для данной политики), у вас есть:

    var widgets = (из политики в db.Policies выберите новый {policy.widgets} ) .First (). Widgets;
    var moreWidgets = widgets + 2;

  • Функции и макросы переносятся - например, Round (B1, 0) становится Math.Round (moreWidgets, 0, MidpointRounding.AwayFromZero)

  • Связанные данные и функции группируются в классы и экземпляры объектов.
  • Листы становятся таблицами базы данных для хранения и вкладками / диалоговыми окнами / веб-страницами и т. д. для пользовательского интерфейса.
  • Вы можете создавать формы для данных, которые вводятся / просматриваются по одной:

Имя : [________________]
Фамилия: [________________]
SSN: [________________]

Преимущества выполнения всего этого (при условии, что все сделано хорошо):

  • Улучшенная организация, так что функции могут быть более легко найдены для повторного использования / расширения.
  • Повышенная производительность
  • ] Общий доступ в реальном времени к данным, включая агрегирование данных, которые в настоящее время распределены по нескольким файлам.
  • Целый мир новых функций - может быть, вы хотите добавить синтез речи или что-то еще.
0
ответ дан 13 December 2019 в 22:13
поделиться

Рассмотрим на мгновение эти электронные таблицы, поскольку многие вещи работают на более высоком уровне абстракции, чем код C #.

Итак, чтобы заново реализовать свои рабочие листы в .Net, у вас есть несколько широких подходов

  1. Индивидуальное специальное решение с множеством узких специфических функций вокруг вашей проблемной области
  2. Или вы можете заново реализовать концепцию электронной таблицы. Разделите механизм вычислений, который оценивает матрицу выражений с необязательными зависимостями между ячейками из постоянства и просмотра значений maxtrix. Сохраните данные в хранилище данных, которое вам нравится (xml, relationalDB), создайте веб-приложение или приложение для настольных компьютеров, чтобы редактировать и читать результаты, а также оценивать их с помощью специального механизма.
0
ответ дан 13 December 2019 в 22:13
поделиться

SpreadsheetGear для .NET позволит вам использовать ваши модели Excel непосредственно в ваших .NET-приложениях без Excel и без необходимости тратить много времени на преобразование в C # или VB каждый раз, когда бизнес-люди хотят для обновления модели.

Вы можете загрузить бесплатную пробную версию здесь , если хотите попробовать ее сами.

Заявление об ограничении ответственности: Я владею SpreadsheetGear LLC

1
ответ дан 13 December 2019 в 22:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: