Valuation Center

Source of information on the fair value of bonds calculated using NSD’s methodology and integrated into your system (daily updates, as well as historical data)

GetValuationNew

Fair value of 1650+ financial instruments calculated using NSD’s NEW methodology

Download description

-
name type description req.
Select the fields you need (expand all)
acc_int number НКД на дату расчета
currency_code string Код валюты инструмента
isin string Код ISIN
issuer string Общепринятое наименование эмитента
method_number integer Номер метода расчета (1-3)
name string Наименование инструмента
nominal number Текущий номинал инструмента
nsd_code string Код НРД
price number Чистая цена в валюте номинала
rate number Чистая цена в процентах от номинала
rate_lbound number Нижний порог цены в % от номинала
rate_ubound number Верхний порог цены в % от номинала
reg_number string Код регистрации инструмента
type string Тип инструмента, соответствует методике оценки
val_date string Дата оценки
version integer Технический номер версии методики
yield number Доходность к погашению или к опциону
Download

{
  "type": "array",
  "items": {
    "$ref": "#/definitions/Valuation"
  },
  "definitions": {
    "Valuation": {
      "type": "object",
      "properties": {
      	"acc_int": {
      		"title": "НКД",
      		"description": "НКД на дату расчета",
      		"type": "number"
      	},
        "currency_code": {
          "title": "Код валюты",
          "description": "Код валюты инструмента",
          "type": "string"
        },
        "isin": {
          "title": "ISIN",
          "description": "Код ISIN",
          "type": "string"
        },
        "issuer": {
          "title": "Эмитент",
          "description": "Общепринятое наименование эмитента",
          "type": "string"
        },
        "method_number": {
          "title": "Метод",
          "description": "Номер метода расчета (1-3)",
          "type": "integer"
        },
        "name": {
          "title": "Инструмент",
          "description": "Наименование инструмента",
          "type": "string"
        },
        "nominal": {
          "title": "Номинал",
          "description": "Текущий номинал инструмента",
          "type": "number"
        },
        "nsd_code": {
          "title": "Код НРД",
          "description": "Код НРД",
          "type": "string"
        },
        "price": {
          "title": "Цена в валюте",
          "description": "Чистая цена в валюте номинала",
          "type": "number"
        },
        "rate": {
          "title": "Цена в %",
          "description": "Чистая цена в процентах от номинала",
          "type": "number"
        },
        "rate_lbound": {
          "title": "Нижний порог цены",
          "description": "Нижний порог цены в % от номинала",
          "type": "number"
        },
        "rate_ubound": {
          "title": "Верхний порог цены",
          "description": "Верхний порог цены в % от номинала",
          "type": "number"
        },
        "reg_number": {
          "title": "Код регистрации",
          "description": "Код регистрации инструмента",
          "type": "string"
        },
        "type": {
          "title": "Тип инструмента",
          "description": "Тип инструмента, соответствует методике оценки",
          "type": "string"
        },
        "val_date": {
          "title": "Дата оценки",
          "description": "Дата оценки",
          "type": "string"
        },
        "version": {
          "title": "Версия",
          "description": "Технический номер версии методики",
          "type": "integer"
        },
        "yield": {
          "title": "Доходность",
          "description": "Доходность к погашению или к опциону",
          "type": "number"
        }
      }
    }
  }
}

URL


            
using System;
using System.Data;
using System.Net;
using System.Text;
using ClosedXML.Excel; // NuGet
using Newtonsoft.Json; // NuGet
using Newtonsoft.Json.Linq; // NuGet

namespace ApiGetValuationNew
{
    internal class Program
    {
        private const string ApiUrl = "https://nsddata.ru/api/get/valuationnew";
        private const string ApiKey = "APIKEY";

        private const string Isin = "RU000A0JSQ58";
        private const int Limit = 10;

        private const string FileName = "out.xlsx";

        private static void Main()
        {
            var dateTo = DateTime.Now;
            var dateFrom = DateTime.Now.AddDays(-30);

            var apiFilter = new JObject
            {
                ["isin"] = Isin,
                ["val_date"] = new JObject
                {
                    ["$gte"] = dateFrom.ToString("yyyy-MM-dd"),
                    ["$lte"] = dateTo.ToString("yyyy-MM-dd")
                },
            };

            var requestUrl = ApiUrl
                             + $"?filter={apiFilter.ToString(Formatting.None)}"
                             + $"&limit={Limit}"
                             + $"&apikey={ApiKey}";

            var translatedColumns = new[]
            {
                "НКД на дату расчета",
                "Код валюты инструмента",
                "Код ISIN",
                "Общепринятое название эмитента",
                "Номер метода расчета (1-3)",
                "Наименование инструмента",
                "Текущий номинал инструмента",
                "Код НРД",
                "Чистая цена в валюте номинала",
                "Чистая цена в процентах номинала",
                "Нижний порог цены в % от номинала",
                "Верхний порог цены в % от номинала",
                "Код регистрации инструмента",
                "Тип инструмента, соответствует методике оценки",
                "Дата оценки",
                "Технический номер версии методики",
                "Доходность к погашению или опциону"
            };

            Console.WriteLine("Загрузка данных...");

            var webClient = new WebClient() { Encoding = Encoding.UTF8 };
            var json = webClient.DownloadString(requestUrl);
            var dt = (DataTable)JsonConvert.DeserializeObject(json, typeof(DataTable));

            Console.WriteLine("Формирование Excel...");

            dt.Columns.Remove("_p");
            dt.Columns.Remove("est_date");

            for (int i = 0; i < dt.Columns.Count; i++)
                dt.Columns[i].ColumnName = translatedColumns[i];

            dt.Columns["Дата оценки"].SetOrdinal(0);

            var wb = new XLWorkbook();
            var ws = wb.Worksheets.Add("Справедливая стоимость");
            ws.FirstCell().InsertTable(dt).Theme = XLTableTheme.TableStyleDark1;
            wb.SaveAs(FileName);

            Console.WriteLine("Готово.");
        }
    }
}
            
        
            
import datetime as dt
import requests
import pandas as pd
import openpyxl
import json

API_URL = 'https://nsddata.ru/api/get/valuationnew'
API_KEY = 'APIKEY'

ISIN = 'RU000A0JSQ58'
LIMIT = 10

FILE_NAME = 'out.xlsx'


def main():
    date_to = dt.date.today()
    date_from = dt.date.today() - dt.timedelta(days=30)

    api_filter = {
        'isin': f'{ISIN}',
        'val_date': {
            '$gte': f"{date_from}",
            '$lte': f"{date_to}"
        }
    }

    params = {
        'filter': f'{json.dumps(api_filter)}',
        'limit': LIMIT,
        'apikey': API_KEY
    }

    translated_columns = [
        'НКД на дату расчета',
        'Код валюты инструмента',
        'Код ISIN',
        'Общепринятое название эмитента',
        'Номер метода расчета (1-3)',
        'Наименование инструмента',
        'Текущий номинал инструмента',
        'Код НРД',
        'Чистая цена в валюте номинала',
        'Чистая цена в процентах номинала',
        'Нижний порог цены в % от номинала',
        'Верхний порог цены в % от номинала',
        'Код регистрации инструмента',
        'Тип инструмента, соответствует методике оценки',
        'Дата оценки',
        'Технический номер версии методики',
        'Доходность к погашению или опциону'
    ]

    r = requests.get(API_URL, params=params)
    df = pd.DataFrame(r.json())
    df.drop(['est_date', '_p'], axis=1, inplace=True)

    for i in range(len(df.columns)):
        df.rename(columns={
            df.columns[i]: translated_columns[i]
        }, inplace=True)

    df.set_index(["Дата оценки"], inplace=True)
    df.to_excel(FILE_NAME)


if __name__ == '__main__':
    main()