#market #codes #identification #iso #instrument #iso-10383

codes-iso-10383

本软件包包含ISO-10383市场识别代码(MIC)规范的实现

9个发布版本

0.1.8 2022年12月25日
0.1.7 2022年12月23日

39金融

每月下载 35次

MIT许可

565KB
1K SLoC

软件包codes-iso-10383

本软件包包含ISO 10383证券及相关金融工具 — 交易所和市场监管识别代码(MIC)规范的实现。

crates.io docs.rs

ISO 10383规定了识别交易所、交易平台、监管或非监管市场以及贸易报告设施作为价格和相关信息来源的通用方法,以促进自动化处理。

旨在用于任何应用程序和通信中的地点识别

  • 金融工具上市的地方(官方上市地点),
  • 相关交易执行的地方(交易地点),以及
  • 报告交易详情的地方(贸易报告设施)。

注意,字段描述取自ISO 10383市场标识符代码 - 发布2.0事实表

有关API设计的说明,请参阅仓库README

示例

use codes_iso_10383::{Category, MarketIdCode, Status};

let market = MarketIdCode::XNCM;
assert_eq!(market.code(), "XNCM");
assert_eq!(market.operating_code(), Some(MarketIdCode::XNAS));
assert_eq!(market.is_segment(), true);
assert_eq!(market.status(), Status::Active);
assert_eq!(market.market_category_code(), Some(Category::NSPD));
assert_eq!(market.acronym(), None);

// feature = "real_url"
// assert_eq!(market.website_url(), Some(url::Url::from_str("http://www.nasdaq.com").unwrap()));
// or
// assert_eq!(market.website_url(), Some("http://www.nasdaq.com"));

// feature = "market_name"
// assert_eq!(market.market_name(), "NASDAQ CAPITAL MARKET");

// feature = "location"
// assert_eq!(market.country_code(), Some(CountryCode::US));
// assert_eq!(market.city(), Some("NEW YORK"));

// feature = "legal_entity"
// assert_eq!(market.legal_entity_name(), None);
// assert_eq!(market.legal_entity_id(), None);

// feature = "dates"
// assert_eq!(market.creation_date(), "2008-02-25");
// assert_eq!(market.last_update_date(), Some("2008-02-25"));
// assert_eq!(market.last_validation_date(), None);
// assert_eq!(market.expiration_date(), None);

// feature = "comments"
// assert_eq!(market.comments(), Some("..."));

以下演示了from_str_extended,它通过from_str没有直接MIC匹配时搜索缩略语值。

use codes_iso_10383::MarketIdCode;
use std::str::FromStr;

assert!(MarketIdCode::from_str("NASDAQ").is_err());

let market = MarketIdCode::from_str_extended("NASDAQ");
assert!(market.is_ok());
assert_eq!(market.unwrap().code(), "XNAS");

功能

默认情况下,仅启用serde功能,无法排除MarketIdCode::codeMarketIdCode::operating_code,以及MarketIdCode::is_segment方法。

  • serde - 启用MarketIdCode类型的序列化。
  • market_name - 添加MarketIdCode::market_name方法。
  • location - 添加MarketIdCode::country_codeMarketIdCode::city方法。
  • legal_entity - 添加MarketIdCode::legal_entity_idMarketIdCode::legal_entity_name方法。
  • real_url - 使用Url类型 urlcrate 用于MarketIdCode::website_url` 方法。
  • dates - 添加了 MarketIdCode::creation_dateMarketIdCode::last_update_dateMarketIdCode::last_validation_dateMarketIdCode::expiration_date 方法。
  • real_dates - 使用 DateTime<Utc> 类型从 chrono crate 中的日期函数 正在进行中
  • comments - 添加了 MarketIdCode::comments 方法。

更改

版本 0.1.8

  • 针对 codes-common 中的新 build 模块进行适配

版本 0.1.7

  • 实现了 StandardizedFixedLengthCode 特性。

版本 0.1.6

  • 添加了新的 from_str_extended 方法。

版本 0.1.5

  • 修复了 country_codewebsite_url 的模板错误。

版本 0.1.4

  • 添加了所有缺失的方法。

版本 0.1.3

  • 使用新的 codes-common CSV 处理框架。

版本 0.1.2

  • 添加了 ALL_CODES 常量。

版本 0.1.1

  • 基于更新的 codes-common 进行实现清理
  • 使用新的 Code 特性和宏创建的实现。

版本 0.1.0

  • 初始发布

待办事项

待定

依赖项

~0.4–3MB
~51K SLoC