/moex_iss

Primary LanguageRubyMIT LicenseMIT

Gem Version Build JRuby Build

Moex Iss

Реализация части запросов к MOEX Informational & Statistical Server.

Реализовано несколько функций-запросов информации о торгуемых ценных бумаг, результаты которых напрямую конвертируются в Ruby класс.

Класс ценной бумаги имеет методы для получения наиболее часто использумеых показателей ценной бумаги а так же метод для получения полного ответа полученного от MOEX ISS.

Установка

# Gemfile
gem "moex_iss"

А затем выполнить:

$ bundle install

Или установите его самостоятельно как:

$ gem install moex_iss

Поддерживаемые Ruby версии

  • Ruby (MRI) >= 2.7.0
  • JRuby >= 9.3.0

Использование

Создаем клиент

client = MoexIss.client

Валюты

Для получения последних актульных данных о курсах валют:

currencies = client.currencies # => MoexIss::Market::Currencies

currencies.map(&:short_name) # -> ["USDRUB_TOM", "EURRUB_TOM", "CNYRUB_TOM"]

cny_rub = currencies.cny_rub # => MoexIss::Market::Currency
cny_rub.price = 12.5762
...

Акции

Для получения последних актульных данных:

  • Все акции
client.stocks # => MoexIss::Market::Stocks

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

stocks.sber # => MoexIss::Market::Stock
  • Одна Акция
client.stock(:sber) # => MoexIss::Market::Stock
  • Для получения данные об исторических данных:
client.stock(:sber, from: '2023-12-01', till: '2023-12-05') # => MoexIss::Market::History::Stocks

Есть возможность работы с коллекцией через дату:

stocks = client.stock(:sber, from: '2023-12-01', till: '2023-12-05') # => MoexIss::Market::History::Stocks
stocks['2023-12-03']  # => MoexIss::Market::History::Stock

Максимальное количесво дней: 100

Аргументы from и till можно использовать по одиночке

Обратите внимание

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

# Пример
client.stock(:sber).market_price # => 271.37
client.stock(:sber).prev_date # => 2023-12-2
...

Лицензия

Исходный код распространяется под лицензией MIT License.