---
source_url: https://docs.dolphindb.cn/zh/funcs/p/parseMktData.html
fetched_at: 2026-05-19T09:33:54Z
category: funcs
title: parseMktData
sha1: 0932bfb043638099158f005309149977c69a5d82
---

# parseMktData

首发版本：3.00.4

## 语法

`parseMktData(dict)`

## 详情

将输入的字典或 JSON 字符串解析为 MKTDATA 类型。

## 参数

**dict** 字典或表示该字典的 JSON 格式字符串（STRING 标量），用于指定待解析的市场数据内容。

## 返回值

一个 MKTDATA 类型对象。

## 市场数据支持与字段要求

MKTDATA 为 DolphinDB 新增的数据类型，为金融产品定价需要用到的市场数据提供支撑。

目前支持以下类型：

- 即期价格：Price（即期价格）、FxSpotRate（外汇即期汇率）
- 期限结构曲线：IrYieldCurve（利率收益率曲线）， AssetPriceCurve（资产价格曲线）、DividendCurve（股息曲线）
- 波动率曲面：FxVolatilitySurface（外汇波动率曲面）、VolatilitySurface（波动率曲面）

各种类型数据所需字段如下（注："version" 为系统保留字段，为避免冲突，请勿将此名称用于自定义字段。）

### Price

| 字段名 | 类型 | 描述 | 是否必填 |
| --- | --- | --- | --- |
| mktDataType | STRING | 固定填 "Price" | 是 |
| referenceDate | DATE | 参考日期 | 是 |
| priceType | STRING | 价格类型，固定填 "Price" | 是 |
| value | DOUBLE | 价格 | 是 |
| unit | STRING | 价格的单位，可选值 为"CNY", "USD", "EUR", "GBP", "JPY", "HKD" | 是 |

### FxSpotRate

| 字段名 | 类型 | 描述 | 是否必填 |
| --- | --- | --- | --- |
| mktDataType | STRING | 固定填 "Price" | 是 |
| referenceDate | DATE | 参考日期 | 是 |
| spotDate | DATE | 即期交割日，默认使用内部静态数据 | 否 |
| priceType | STRING | 即期价格类型，固定填 "FxSpotRate" | 是 |
| value | DOUBLE | 即期价格 | 是 |
| unit | STRING | 即期价格的单位，可选值为"EURUSD", "USDCNY", "EURCNY", "GBPCNY", "JPYCNY", "HKDCNY"。  货币对的表示也可由 `.` 或 `/` 分隔，例如 "EURUSD" 也可写为 "EUR.USD" 或 "EUR/USD"。 | 是 |

下例定义了一个 FxSpotRate 对象：

```dolphindb
FxSpotRate = {
    "mktDataType": "Price",
    "referenceDate": 2025.08.18,
    "spotDate": 2025.08.20,
    "priceType": "FxSpotRate",
    "value": 7.2659,
    "unit": "USDCNY"
}

mktData = parseMktData(FxSpotRate)
print(mktData)
```

### IrYieldCurve

| 字段名 | 类型 | 描述 | 是否必填 |
| --- | --- | --- | --- |
| mktDataType | STRING | 固定填 "Curve" | 是 |
| referenceDate | DATE | 参考日期 | 是 |
| curveType | STRING | 固定填 "IrYieldCurve" | 是 |
| dayCountConvention | STRING | 曲线的日期计数惯例，可选值为：   - "Actual360"：实际天数除以360 - "Actual365"：实际天数除以365（不区分闰年） - "ActualActualISMA"：实际天数/实际天数（ISMA规则） - "ActualActualISDA"：实际天数/实际天数（ISDA规则） | 是 |
| interpMethod | STRING | 内插方法，可选值为：   - "Linear"：线性插值 - "CubicSpline"：三次样条插值 - "CubicHermiteSpline"：三次埃尔米特样条插值 | 是 |
| extrapMethod | STRING | 外插方法，可选值为：   - "Flat"：平插 - "Linear"：线性插值 | 是 |
| dates | DATE 向量 | 数据点的日期 | 是 |
| values | DOUBLE 向量 | 数据点的值，与 *dates* 中的元素一一对应 | 是 |
| curveName | STRING | 曲线名称 | 否 |
| currency | STRING | 货币，可选值为"CNY", "USD", "EUR", "GBP", "JPY", "HKD" | 是 |
| compounding | STRING | 复利类型，可选值为：   - "Simple"：单利 - "Compounded"：离散复利 - "Continuous"：连续复利 | 是 |
| settlement | DATE | 结算日，如果指定了结算日，则后续期限间隔的计算都将从 *settlement* 开始，而不是 *referenceDate* | 否 |
| frequency | INTEGRAL或 STRING | 计息频率，可选值为：   - 1 或 "Annual"：每年付息一次 - 2 或 "Semiannual"：每半年付息一次 - 3 或 "EveryFourthMonth"：每四个月付息一次 - 4 或 "Quarterly"：每季度付息一次 - 6 或 "BiMonthly"：每两月付息一次 - 12 或 "Monthly"：每月付息一次 - 13 或 "EveryFourthWeek"：每四周付息一次 - 26 或 "BiWeekly"：每两周付息一次 - 52 或 "Weekly"：每周付息一次 - 365 或 "Daily"：每日付息一次 - 999 或 "Other"：其他计息频率 | 否 |
| curveModel | STRING | 曲线构建模型，可选值为 "Bootstrap"（默认），"NS"，"NSS"。  当取值 "NSS" 或 "NS"，无需传 *interpMethod*、*extrapMethod*、*dates*、*values*字段。 | 否 |
| curveParams | DICT | 模型的参数，当 *curveModel*取值 "NSS" 或 "NS" 时必填：   - curveModel = "NS"：应包含键 'beta0', 'beta1', 'beta2',   'lambda' - curveModel = "NSS"：应包含键'beta0', ‘beta1', 'beta2',   'beta3', 'lambda0', 'lambda1' | 否 |

下例定义了一个 IrYieldCurve 对象：

```dolphindb
aod = 2025.07.01
curve = {
    "mktDataType": "Curve",
    "curveType": "IrYieldCurve",
    "referenceDate": aod,
    "currency": "CNY",
    "dayCountConvention": "Actual365",
    "compounding": "Continuous",
    "interpMethod": "Linear",
    "extrapMethod": "Flat",
    "dates":[2025.07.07,2025.07.10,2025.07.17,2025.07.24,2025.08.04,2025.09.03,2025.10.09,2026.01.05,
        2026.04.03,2026.07.03,2027.01.04,2027.07.05,2028.07.03],
    "values":[0.015785,0.015931,0.016183,0.016381,0.016493,0.016503,0.016478,0.016234,0.016321,
        0.016378,0.015508,0.015185,0.014901],
    "settlement": aod+2
}

mktData = parseMktData(curve)
print(mktData)
```

### AssetPriceCurve

| 字段名 | 类型 | 描述 | 是否必填 |
| --- | --- | --- | --- |
| mktDataType | STRING | 固定填 "Curve" | 是 |
| referenceDate | DATE | 参考日期 | 是 |
| curveType | STRING | 固定填 "AssetPriceCurve" | 是 |
| dates | DATE 向量 | 数据点的日期 | 是 |
| values | DOUBLE 向量 | 数据点的值，与 *dates* 中的元素一一对应 | 是 |
| curveName | STRING | 曲线名称 | 否 |

下例定义了一个 AssetPriceCurve 对象：

```dolphindb
curve = {
    "mktDataType": "Curve",
    "curveType": "AssetPriceCurve",
    "referenceDate": 2024.06.28,
    "curveName": "PRICE_SHIBOR_3M",
    "dates": [2024.06.21, 2024.06.24, 2024.06.25, 2024.06.26,2024.06.27],
    "values": [1.923, 1.922, 1.921, 1.919, 1.918]/100
}

mktData = parseMktData(curve)
print(mktData)
```

### DividendCurve

下例定义了一个 DividendCurve 对象：

```dolphindb
curve = {
    "mktDataType": "Curve",
    "curveType": "DividendCurve",
    "referenceDate": 2024.06.28,
    "dayCountConvention": "Actual365",
    "compounding": "Continuous",
    "interpMethod": "Linear",
    "extrapMethod": "Flat",
    "dates": [2024.07.19, 2024.08.16, 2024.09.20, 2024.12.20],
    "values": [0.15347650417594424, 0.10083112893776815, 0.0693439711515692, 0.04357496515816385],
    "shortEndDate": 2024.06.28
}

dividendCurve = parseMktData(curve)
```

### FxVolatilitySurface

| 字段名 | 类型 | 描述 | 是否必填 |
| --- | --- | --- | --- |
| mktDataType | STRING | 固定填 "Surface" | 是 |
| referenceDate | DATE | 参考日期 | 是 |
| surfaceType | STRING | 固定填 "FxVolatilitySurface" | 是 |
| smileMethod | STRING | 波动率微笑方法，可选值为：   - "Linear"：线性微笑 - "CubicSpline"：三次样条微笑 - "SVI"：SVI 模型微笑 - "SABR"：SABR 模型微笑 | 是 |
| volSmiles | DICT(STRING, ANY) 向量 | 波动率微笑向量，向量中每个元素为一条波动率微笑。  包含以下成员：   - **strikes**: DOUBLE 类型向量，表示不同的行权价 - **vols**: DOUBLE 类型向量，表示行权价对应的波动率，与   *strikes*等长 - **curveParams**：字典DICT(STRING,   DOUBLE)类型，表示波动率微笑方法的模型参数，只在 *smileMethod* 取值   "SVI" 或 "SABR" 时生效：    - smileMethod = 'SVI': 应包含键 'a', 'b', 'rho', 'm',     'sigma'   - smileMethod = 'SABR': 应包含键 'alpha', 'beta',     'rho', 'nu' - **fwd**：可选，DOUBLE 类型标量，当 *smileMethod*取值   "SVI" 或 "SABR" 时必填，表示远期值 | 是 |
| termDates | DATE 向量 | *volSmiles*中每条波动率微笑对应的期限日期 | 是 |
| surfaceName | STRING | 曲面名称 | 否 |
| currencyPair | STRING | 外汇的货币对，可选值为"EURUSD", "USDCNY", "EURCNY", "GBPCNY", "JPYCNY", "HKDCNY"。  货币对的表示也可由 `.` 或 `/` 分隔，例如 "EURUSD" 也可写为 "EUR.USD" 或 "EUR/USD"。 | 是 |

下例定义了一个 FxVolatilitySurface 对象：

```dolphindb
surf = {
	"surfaceName": "USDCNY",
	"mktDataType": "Surface",
	"surfaceType": "FxVolatilitySurface",
	"referenceDate": "2025.08.18",
	"smileMethod": "Linear",
	"termDates": [
		"2025.08.21",
		"2026.08.20"
	],
	"volSmiles":[{"strikes": [6.5,7,7.5],"vols": [0.1,0.1,0.1]},{"strikes": [6.5,7,7.5],"vols": [0.1,0.1,0.1]}],
	"currencyPair": "USDCNY"
}

surfUsdCny = parseMktData(surf)
```
