Пример: веб-инструмент оценки связи Используя JavaScript

Этот пример показывает, как создать веб-приложение, которое вычисляет цену связи от простой формулы. Это использует MATLAB® Production Server™ RESTful API и Представление JSON типов данных MATLAB, чтобы изобразить сквозной рабочий процесс использования MATLAB Production Server. Вы запускаете этот пример путем ввода следующих известных значений в веб-интерфейс:

  • Номинальная стоимость (или значение связи в зрелости) — M

  • Купонный платеж — C

  • Количество платежей — N

  • Процентная ставка — i

Приложение вычисляет цену (P) на основе следующего уравнения:

P = C * ( (1 - (1 + i)^-N) / i ) + M * (1 + i)^-N
Можно использовать ползунки в веб-приложении, чтобы оценить различные связи.

Шаг 1: запишите код MATLAB

Напишите следующий код в MATLAB, чтобы оценить связи. Сохраните код с помощью имени файла pricecalc.m.

function price = pricecalc(face_value, coupon_payment,...
                           interest_rate, num_payments)
    M = face_value;
    C = coupon_payment;
    N = num_payments;
    i = interest_rate;
    
    price = C * ( (1 - (1 + i)^-N) / i ) + M * (1 + i)^-N;

Шаг 2: создайте развертываемый архив с приложением Production Server Compiler

Создать развертываемый архив для этого примера:

  1. На вкладке Apps выберите Production Server Compiler App.

  2. В списке Application Type выберите Deployable Archive.

  3. В поле Exported Functions добавьте pricecalc.m.

  4. Под Archive information, изменение pricecalc к BondTools.

  5. Нажмите Package.

Сгенерированный развертываемый архив, BondTools.ctf расположен в папке for_redistribution проекта.

Шаг 3: разместите развертываемый архив в сервер

  1. Загрузите MATLAB Runtime, в случае необходимости, по https://www.mathworks.com/products/compiler/mcr. Смотрите Загрузку и Установку MATLAB Runtime для получения дополнительной информации.

  2. Создайте сервер с помощью mps-new. Смотрите Создают Сервер для получения дополнительной информации. Если вы не имеете, уже установите свою серверную среду, смотрите mps-setup для получения дополнительной информации.

  3. Если вы уже не сделали так, задайте местоположение MATLAB Runtime к серверу путем редактирования конфигурационного файла сервера, main_config и определения пути для --mcr-root. Смотрите Редактирование Конфигурационный файл для деталей.

  4. Запустите сервер с помощью mps-start и проверьте, что это запускается с mps-status.

  5. Скопируйте файл BondTools.ctf в папку auto_deploy на сервере для хостинга.

Шаг 4: включите Разделение ресурсов перекрестного источника (CORS) на сервере

Включите Разделение ресурсов перекрестного источника (CORS) путем редактирования конфигурационного файла сервера, main_config и определения списка источников областей, от которых запросы могут быть выполнены к серверу. Например, установка опции cors-allowed-origins к --cors-allowed-origins * позволяет запросам от любой области получать доступ к серверу. Смотрите cors-allowed-origins и Редактирование Конфигурационный файл для деталей.

Шаг 5: Запишите код JavaScript с помощью УСПОКОИТЕЛЬНОГО API и JSON

Используя УСПОКОИТЕЛЬНЫЙ API и Представление JSON типов данных MATLAB как руководство, запишите следующий код JavaScript®. Сохраните этот код как файл с именем JavaScript calculatePrice.js.

Код:

 calculatePrice.js

Шаг 6: встройте JavaScript в КОДЕ HTML

Встройте JavaScript от предыдущего шага в следующем коде HTML при помощи следующего синтаксиса:

<script src="calculatePrice.js" type="text/javascript"></script>

Сохраните этот код как файл с именем HTML bptool.html.

Код:

 bptool.html

Шаг 7: запустите пример

Принятие, сервер с развернутой функцией MATLAB в порядке, открывает файл HTML bptool.html в веб-браузере. Ценой облигаций по умолчанию является NaN, потому что никакие значения не были введены пока еще. Попробуйте следующие значения, чтобы оценить связь:

  • Номинальная стоимость = 1 000$

  • Купонный платеж = 100$

  • Количество платежей = 5

  • Процентная ставка = 0.08 (Соответствует 8%),

Получившаяся цена облигаций составляет 1 079,85$

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