Skip to content

An unofficial API client of the Moscow Exchange ISS on Golang

License

Notifications You must be signed in to change notification settings

DimaKoz/moexiss

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MOEXISS Golang  codecov  Go Report Card

An unofficial client of Application Programming Interface for the Moscow Exchange(MOEX) ISS(Informational & Statistical Server) on Golang.
Неофициальный клиент для получения информации и статистики Московской биржи MOEX на Golang.

stability-experimental

Under active development, pls, do not use it
Находится в разработке, не стоит использовать

Usage

Construct a new MOEX ISS client, then use the various services on the client to access different parts of the MOEX ISS API.
For example:

client := moexiss.NewClient(nil)

// Get current turnover on all the markets.
turnovers, err := client.Turnovers.GetTurnovers(context.Background(), nil)

Getting ISS reference

Getting initial ISS reference:

client := moexiss.NewClient(nil)

result, err := client.Index.List(context.Background(), nil)

Request options (not mandatory) for initial ISS reference:

  • Engine() - options for the list of trading systems.

    • Lang(Language) - the language of the result. Possible values moexiss.LangEn, moexiss.LangRu. By default, moexiss.LangRu.
  • Market() - options for the list of available markets.

    • Lang(Language) - the language of the result. Possible values moexiss.LangEn, moexiss.LangRu. By default, moexiss.LangRu.
  • Board() - options for the list of trading modes.

    • Lang(Language) - the language of the result. Possible values moexiss.LangEn, moexiss.LangRu. By default, moexiss.LangRu.
  • BoardGroup() - options for the list of board groups.

    • Lang(Language) - the language of the result. Possible values moexiss.LangEn, moexiss.LangRu. By default, moexiss.LangRu.
    • IsTraded(bool) - show traded only currently traded board groups. false by default.
    • WithEngine(EngineName) - filtering by an engine.
  • Duration() - selection for the list of available calculation intervals of candles in the HLOCV format.

    • Lang(Language) - the language of the result. Possible values moexiss.LangEn, moexiss.LangRu. By default, moexiss.LangRu.
  • SecurityType() - options for the list of securities.

    • Lang(Language) - the language of the result. Possible values moexiss.LangEn, moexiss.LangRu. By default, moexiss.LangRu.
    • WithEngine(EngineName) - filtering by an engine.
  • SecurityGroup() - options for the list of security groups.

    • Lang(Language) - the language of the result. Possible values moexiss.LangEn, moexiss.LangRu. By default, moexiss.LangRu.
    • WithEngine(EngineName) - filtering by an engine.
    • HideInactive(bool) - filtering by activity. false by default.
  • SecurityCollection() - options of collections of the securities list.

    • Lang(Language) - the language of the result. Possible values moexiss.LangEn, moexiss.LangRu. By default, moexiss.LangRu.

An example:

client := moexiss.NewClient(nil)
	
bld := moexiss.NewIndexReqOptionsBuilder()
bld.BoardGroup().Lang(moexiss.LangEn).WithEngine(moexiss.EngineStock).IsTraded(true)
bld.Engine().Lang(moexiss.LangEn)
options := bld.Build()
	
result, err := client.Index.List(context.Background(), options)

Getting trading results

Getting aggregated trading results for the date by market:

client := moexiss.NewClient(nil)
ticker := "sberp"
result, err := client.Aggregates.GetAggregates(context.Background(), ticker, nil)

Optional query parameters:

  • Lang(Language) - the language of the result. Possible values moexiss.LangEn, moexiss.LangRu. By default, moexiss.LangRu.
  • Date(time.Date) - date of the results. The last date of aggregated trading results by default.

An example:

client := moexiss.NewClient(nil)
ticker := "sberp"
opt := moexiss.NewAggregateReqOptionsBuilder().
Lang(moexiss.LangEn).
Date(time.Date(2021/*year*/, 2/*month*/, 24/*day*/, 12, 0, 0, 0, time.UTC)).
Build()
result, err := client.Aggregates.GetAggregates(context.Background(), ticker, opt)

Getting a list of indices that include a security

How to get a list of indices that include a security:

client := moexiss.NewClient(nil)
ticker := "sberp"
result, err := client.Indices.GetIndices(context.Background(), ticker, nil)

Optional query parameters:

  • Lang(Language) - the language of the result. Possible values moexiss.LangEn, moexiss.LangRu. By default, moexiss.LangRu.

An example:

client := moexiss.NewClient(nil)
ticker := "sberp"
opt := moexiss.NewIndicesReqOptionsBuilder().
Lang(moexiss.LangEn).
Build()
result, err := client.Indices.GetIndices(context.Background(), ticker, opt)

Get turnovers on all the markets

How to get turnovers on all the markets:

client := moexiss.NewClient(nil)
turnovers, err := client.Turnovers.GetTurnovers(context.Background(), nil)

Optional query parameters:

  • Lang(Language) — the language of the result. Possible values moexiss.LangEn, moexiss.LangRu. By default, moexiss.LangRu.
  • Date(time.Date) — date for which you want to display data. Today — by default.
  • IsTonightSession(bool) — show turnovers for the evening session. false — by default.

For example:

client := moexiss.NewClient(nil)
options := moexiss.NewTurnoverReqOptionsBuilder().
Lang(moexiss.LangEn).
Date(time.Date(2021/*year*/, 2/*month*/, 24/*day*/, 12, 0, 0, 0, time.UTC)).
IsTonightSession(true).
Build()
result, err := client.Turnovers.GetTurnovers(context.Background(), options)

Listing of securities

  • Getting information on when securities were traded on which boards:
client := moexiss.NewClient(nil)
engine := moexiss.EngineStock
market := "shares"
result, err := client.HistoryListing.
	GetListing(context.Background(), engine, market, nil)
  • Getting data on the listing of securities for a given board:
client := moexiss.NewClient(nil)
engine := moexiss.EngineStock
market := "shares"
board := "TQTD"
result, err := client.HistoryListing.
   GetListingByBoard(context.Background(), engine, market, board, nil)
  • Getting data on the listing of securities for a given group of boards:
client := moexiss.NewClient(nil)
engine := moexiss.EngineStock
market := "shares"
boardGroupId := "6"
result, err := client.HistoryListing.
	GetListingByBoardGroup(context.Background(), engine, market, boardGroupId, nil)

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

Создайте новый MOEX ISS клиент, а затем используйте различные сервисы клиента для доступа к различным частям MOEX ISS API.
Например:

client := moexiss.NewClient(nil)

// Получить сводные обороты по рынкам.
turnovers, err := client.Turnovers.GetTurnovers(context.Background(), nil)

Получение ISS справочников

Получить глобальные справочники ISS:

client := moexiss.NewClient(nil)

result, err := client.Index.List(context.Background(), nil)

Опции запроса(не являются обязательными) для получения глобальных справочников ISS:

  • Engine() - опции для списка торговых систем.

    • Lang(Language) - язык результата. Возможные значения moexiss.LangEn, moexiss.LangRu. Значение по умолчанию - moexiss.LangRu.
  • Market() - опции для списка доступных рынков.

    • Lang(Language) - язык результата. Возможные значения moexiss.LangEn, moexiss.LangRu. Значение по умолчанию - moexiss.LangRu.
  • Board() - опции для списка режимов торгов.

    • Lang(Language) - язык результата. Возможные значения moexiss.LangEn, moexiss.LangRu. Значение по умолчанию - moexiss.LangRu.
  • BoardGroup() - опции для списка групп режимов торгов.

    • Lang(Language) - язык результата. Возможные значения moexiss.LangEn, moexiss.LangRu. Значение по умолчанию - moexiss.LangRu.
    • IsTraded(bool) - показывать торгуемые только торгующиеся в настоящий момент группы режимов торгов. Значение по умолчанию - false.
    • WithEngine(EngineName) - фильтрация по торговой системе.
  • Duration() - опции для списка доступных расчетных интервалов свечей в формате HLOCV.

    • Lang(Language) - язык результата. Возможные значения moexiss.LangEn, moexiss.LangRu. Значение по умолчанию - moexiss.LangRu.
  • SecurityType() - опции для списка инструментов.

    • Lang(Language) - язык результата. Возможные значения moexiss.LangEn, moexiss.LangRu. Значение по умолчанию - moexiss.LangRu.
    • WithEngine(EngineName) - фильтрация по торговой системе.
  • SecurityGroup() - опции для списка групп инструментов.

    • Lang(Language) - язык результата. Возможные значения moexiss.LangEn, moexiss.LangRu. Значение по умолчанию - moexiss.LangRu.
    • WithEngine(EngineName) - фильтрация по торговой системе.
    • HideInactive(bool) - фильтрация по активности. Значение по умолчанию - false.
  • SecurityCollection() - опции для списка коллекций инструментов.

    • Lang(Language) - язык результата. Возможные значения moexiss.LangEn, moexiss.LangRu. Значение по умолчанию - moexiss.LangRu.

Пример:

client := moexiss.NewClient(nil)
	
bld := moexiss.NewIndexReqOptionsBuilder()
bld.BoardGroup().Lang(moexiss.LangEn).WithEngine(moexiss.EngineStock).IsTraded(true)
bld.Engine().Lang(moexiss.LangEn)
options := bld.Build()
	
result, err := client.Index.List(context.Background(), options)

Получение итогов торгов

Получить агрегированные итоги торгов за дату по рынкам:

client := moexiss.NewClient(nil)
ticker := "sberp"
result, err := client.Aggregates.GetAggregates(context.Background(), ticker, nil)

Опции запроса(не являются обязательными):

  • Lang(Language) - язык результата. Возможные значения moexiss.LangEn, moexiss.LangRu. Значение по умолчанию - moexiss.LangRu.
  • Date(time.Date) - дата за которую необходимо отобразить данные. По умолчанию за последнюю дату в итогах торгов.

Пример:

client := moexiss.NewClient(nil)
ticker := "sberp"
opt := moexiss.NewAggregateReqOptionsBuilder().
Lang(moexiss.LangEn).
Date(time.Date(2021/*год*/, 2/*месяц*/, 24/*день*/, 12, 0, 0, 0, time.UTC)).
Build()
result, err := client.Aggregates.GetAggregates(context.Background(), ticker, opt)

Получение списка индексов по бумаге

Получить список индексов в которые входит бумага:

client := moexiss.NewClient(nil)
ticker := "sberp"
result, err := client.Indices.GetIndices(context.Background(), ticker, nil)

Опции запроса(не являются обязательными):

  • Lang(Language) - язык результата. Возможные значения moexiss.LangEn, moexiss.LangRu. Значение по умолчанию - moexiss.LangRu.

Пример:

client := moexiss.NewClient(nil)
ticker := "sberp"
opt := moexiss.NewIndicesReqOptionsBuilder().
Lang(moexiss.LangEn).
Build()
result, err := client.Indices.GetIndices(context.Background(), ticker, opt)

Получение сводных оборотов по рынкам

Получить сводные обороты по рынкам:

client := moexiss.NewClient(nil)
turnovers, err := client.Turnovers.GetTurnovers(context.Background(), nil)

Опции запроса(не являются обязательными):

  • Lang(Language) — язык результата. Возможные значения moexiss.LangEn, moexiss.LangRu. Значение по умолчанию — moexiss.LangRu.
  • Date(time.Date) — дата за которую необходимо отобразить данные. По умолчанию — сегодня.
  • IsTonightSession(bool) — показывать обороты за вечернюю сессию. Значение по умолчанию — false.

Пример:

client := moexiss.NewClient(nil)
options := moexiss.NewTurnoverReqOptionsBuilder().
Lang(moexiss.LangEn).
Date(time.Date(2021/*год*/, 2/*месяц*/, 24/*день*/, 12, 0, 0, 0, time.UTC)).
IsTonightSession(true).
Build()
result, err := client.Turnovers.GetTurnovers(context.Background(), options)

Получение данных по листингу бумаг

  • Список неторгуемых/торгуемых инструментов с указанием интервалов торгуемости по режимам:
client := moexiss.NewClient(nil)
engine := moexiss.EngineStock
market := "shares"
result, err := client.HistoryListing.
	GetListing(context.Background(), engine, market, nil)
  • Получить данные по листингу бумаг в историческом разрезе по указанному режиму:
client := moexiss.NewClient(nil)
engine := moexiss.EngineStock
market := "shares"
board := "TQTD"
result, err := client.HistoryListing.
   GetListingByBoard(context.Background(), engine, market, board, nil)
  • Получить данные по листингу бумаг в историческом разрезе по указанной группе режимов:
client := moexiss.NewClient(nil)
engine := moexiss.EngineStock
market := "shares"
boardGroupId := "6"
result, err := client.HistoryListing.
	GetListingByBoardGroup(context.Background(), engine, market, boardGroupId, nil)

Опции запроса(не являются обязательными):

  • Lang(Language) — язык результата. Возможные значения moexiss.LangEn, moexiss.LangRu. Значение по умолчанию — moexiss.LangRu.
  • Status(HistoryListingTradingStatus) — фильтр торгуемости инструментов: moexiss.ListingTradingStatusTraded, moexiss.ListingTradingStatusNotTraded или moexiss.ListingTradingStatusAll. По умолчанию — moexiss.ListingTradingStatusAll.
  • Start(int) — номер строки (отсчет с нуля), с которой следует начать порцию возвращаемых данных. Значение по умолчанию — 0. Получение ответа без данных означает, что указанное значение превышает число строк, возвращаемых запросом.

Пример:

client := moexiss.NewClient(nil)
engine := moexiss.EngineStock
market := "shares"
boardGroupId := "6"
opt := moexiss.NewHistoryListingReqOptionsBuilder().
    Status(moexiss.ListingTradingStatusNotTraded).
    Start(42).
    Lang(moexiss.LangEn).
    Build()
result, err := client.HistoryListing.
    GetListingByBoardGroup(context.Background(), engine, market, boardGroupId, opt)

About

An unofficial API client of the Moscow Exchange ISS on Golang

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages