MCP (Mathema Calculation Platform) - FICC 衍生品定价库
大约 8 分钟
MCP (Mathema Calculation Platform) - FICC 衍生品定价库
一个专业的固定收益、外汇和大宗商品 (FICC) 衍生品定价和风险管理的Python库。MCP为金融机构、交易台和量化分析师提供专业级工具,通过无缝Excel集成,用户可以直接在Excel电子表格中创建复杂的金融模型和模板。
🚀 核心功能
- 全面的FICC覆盖:支持外汇、利率、债券和波动率产品
- 专业定价模型:Black-Scholes、Heston、Bachelier和高级波动率模型
- 实时和历史数据:与市场数据提供商集成
- Excel集成:通过PyXLL实现无缝Excel插件功能
- 高性能:优化的C++核心与Python封装
- 生产就绪:被主要金融机构使用
📊 支持的金融产品
💱 外汇、大宗商品和股指期权
- 普通期权
- 看涨/看跌期权
- 美式期权
- 亚式期权(平均汇率/执行价)
- 奇异期权
- 障碍期权(敲入、敲出)
- 触碰期权(一次触碰、不触碰)
- 数字期权(现金或资产交付)
🔄 结构化外汇和贵金属产品
- 远期产品
- 直接远期
- 区间远期(价差远期)
- 保底远期(保护远期)
- 封顶远期(有上限远期)
- 封顶保底远期(圆筒式)
- 比率远期
- 双货币远期
- 目标远期
🏦 利率产品
- 债券
- 子弹式债券(一次性到期付款)
- 可赎回债券(内含期权)
- 付息债券(定期利息支付)
- 永续债券
- 浮动利率票据(FRN)
- 利率互换
- 标准IRS(FR007、SOFR等)
- 浮动/浮动互换
- 浮动/固定互换
- 固定/浮动互换
- 利率衍生品
- 债券远期
- 债券期权
- 互换期权(利率互换期权)
- 上限和下限
- 远期利率协议(FRA)
📈 市场数据和曲线
- 曲线模型
- 远期曲线
- 收益率曲线
- 波动率曲面
- 局部波动率模型
- 利率曲线
- 存款曲线
- 债券曲线
- 互换曲线
- 参数化曲线
- 利率曲面
- 上限/下限波动率曲面
- IRO波动率立体
🏗️ 结构化产品(OTC衍生品或结构性存款)
链接利率、外汇汇率、大宗商品和股指的定制结构化期权:
- 双不触碰(双边障碍)
- 三重区间看跌(三层看跌结构)
- 区间累积(累积区间)
- 数字看涨(二元看涨期权)
- 自动赎回(月度观察自动赎回)
- 三重区间看涨(三层看涨结构)
- 现金交割远期(补贴交割结构化远期)
- 双区间(双层结构)
- 数字看跌(二元看跌期权)
- 单次触碰(单边障碍)
- 看涨看跌价差(价差结构)
- 自动赎回(可赎回结构)
- 鲨鱼鳍(双鲨鱼鳍)
- 双鲨鱼鳍(双向鲨鱼鳍)
- 离散双不触碰(每日观察EUR/USD)
- 离散下行一次触碰(向下一次触碰)
- 离散上行一次触碰(向上一次触碰)
- 离散乒乓期权(离散乒乓期权)
- 单区间累积看涨(单边看涨区间累积)
- 单区间累积看跌(单边看跌区间累积)
- 定制结构(更多定制产品可用)
🚀 GPU加速支持
结构化产品使用蒙特卡罗模拟,支持GPU加速以提高性能。如果您的机器安装了NVIDIA RTX系列或兼容GPU,可以通过以下方式启用GPU加速:
- PyXLL配置:在
pyxll.cfg
中设置MCP_RUNMODE = GPU
- 环境变量:在系统环境变量中设置
MCP_RUNMODE = GPU
GPU加速显著提高复杂结构化产品定价的计算速度。
🛠️ 安装
MCP支持自动安装(推荐)和手动安装两种方式。
🚀 快速安装(推荐)
使用我们的自动安装脚本是安装MCP最简单的方法:
# 下载并解压MCP到您想要的位置
# 然后运行安装脚本
quick_install.bat
验证安装
安装后,验证一切正常工作:
python test_install.py
快速安装功能:
- ✅ 自动Python 3.9.x兼容性检查
- ✅ 自动依赖安装
- ✅ 系统架构检测(x64/Win32)
- ✅ Excel版本检测和配置
- ✅ PYTHONPATH环境设置
- ✅ PyXLL Excel插件安装(可选)
- ✅ 全面的错误处理和恢复
🔧 手动安装
如果您偏好手动安装或自动安装失败:
先决条件
- Python:3.9.x(必需)
- 操作系统:Windows 10/11(推荐64位)
- Excel:Microsoft Excel 2016或更高版本
- PyXLL:专业许可证(用于Excel集成)
步骤1:下载MCP Excel包
- 下载mcp_excel:
- 获取
mcp_excel_xxx.zip
文件(下载地址),并解压到合适的目录。
- 获取
注意:安装包已经包含了Excel、Python编程支持
步骤2:安装Python依赖
# 导航到MCP目录
cd C:\path\to\mcp-python
# 安装依赖
pip install -r requirements.txt
步骤3:设置PYTHONPATH环境变量
将这些路径添加到您的系统PYTHONPATH:
C:\path\to\mcp-python
C:\path\to\mcp-python\lib\X64
Windows 10/11设置:
- 按
Win + R
,输入sysdm.cpl
,按回车 - 点击"环境变量"
- 在"用户变量"下,找到或创建"PYTHONPATH"
- 添加上述路径,用分号分隔
步骤4:配置Excel集成
更新pyxll.cfg:
- 进入解压目录下的
\lib\X64\
文件夹 - 将
pyxll.cfg.txt
重命名为pyxll.cfg
- 打开
pyxll.cfg
文件,找到executable
参数 - 将其值修改为您的Python安装路径:
executable = C:\ProgramData\Anaconda3\python.exe 或 executable = C:\ProgramData\python\python.exe
- 进入解压目录下的
确定Excel版本:
- 打开Excel
- 转到文件 → 帐户 → 关于Excel
- 检查是否显示"Microsoft Excel 2016 (64位)"或"Microsoft Excel 2016 (32位)"
安装PyXLL插件:
- 根据您的Excel版本,选择正确的文件:
- 64位Excel:使用
lib\X64\pyxll.xll
- 32位Excel:使用
lib\Win32\pyxll.xll
- 64位Excel:使用
- 转到文件 → 选项 → 加载项
- 在底部,从下拉菜单中选择Excel加载项并点击转到
- 点击浏览并导航到正确的
pyxll.xll
文件 - 选择文件并点击确定
- 确保加载项已选中并点击确定
- 根据您的Excel版本,选择正确的文件:
重启Excel并验证加载项已加载
步骤5:验证安装
# 测试Python库
python -c "import mcp; print('MCP安装成功')"
# 测试示例
python example\calendar\quickstart.py
Python环境选项
如果找不到合适的Python版本,可以使用以下选项:
选项1:安装Anaconda
安装步骤:
- 运行下载的
Anaconda3-2022.05-Windows-x86_64.exe
- 按照安装向导完成安装,建议使用默认配置
选项2:使用Python解压包
- 下载地址:Python解压包 python.zip
安装步骤:
- 解压python.zip即可使用
💡 快速示例
外汇普通期权定价
from mcp.tool.tools_main import McpVanillaOption
from mcp.utils.enums import BuySell, CallPut, OptionExpiryNature
# 创建期权参数
option_args = {
'Pair': 'USD/CNY',
'BuySell': BuySell.Buy,
'CallPut': CallPut.Call,
'OptionExpiryNature': OptionExpiryNature.EUROPEAN,
'StrikePx': 7.3,
'SpotPx': 7.0671,
'Volatility': 0.0484,
'DomesticRate': 0.0186,
'ForeignRate': 0.0475,
'ExpiryDate': '2025-02-14',
'DeliveryDate': '2025-02-18',
'FaceAmount': 1000000
}
# 定价期权
option = McpVanillaOption(option_args)
price = option.Price()
print(f"期权价格: {price:.2f}")
收益率曲线构建
from mcp.tool.tools_main import McpYieldCurve2
from mcp.utils.enums import DayCounter, Frequency
# 构建双边收益率曲线
curve_args = {
'ReferenceDate': '2024-12-13',
'Tenors': ['ON', '1M', '3M', '6M', '1Y', '2Y', '5Y'],
'BidZeroRates': [0.0458, 0.0433, 0.0433, 0.0433, 0.0433, 0.043, 0.042],
'AskZeroRates': [0.0459, 0.0458, 0.0458, 0.0458, 0.0458, 0.046, 0.045],
'DayCounter': DayCounter.Act365Fixed,
'Frequency': Frequency.Continuous
}
curve = McpYieldCurve2(curve_args)
zero_rate = curve.ZeroRate('2025-12-13', 'mid')
print(f"1年期零息利率: {zero_rate*100:.4f}%")
外汇远期点数曲线
from mcp.tool.tools_main import McpFXForwardPointsCurve2
# 构建双边远期点数曲线
forward_args = {
'ReferenceDate': '2024-12-13',
'Pair': 'USD/CNY',
'FXSpotRate': 7.1650,
'Tenors': ['ON', '1M', '3M', '6M', '1Y'],
'BidForwardPoints': [-22.0, -250, -733, -1393, -2395],
'AskForwardPoints': [-21.0, -248, -730, -1390, -2390]
}
forward_curve = McpFXForwardPointsCurve2(forward_args)
points = forward_curve.FXForwardPoints('2025-03-13', 'mid')
print(f"3个月远期点数: {points:.1f}")
🔧 系统要求
系统要求
- 操作系统:Windows 10/11(推荐64位)
- Python:3.9.x(必需)
- 内存:最少4GB RAM,推荐8GB
- 存储:500MB可用空间
- Excel:Microsoft Excel 2016或更高版本(用于Excel集成)
依赖项
基本依赖项(自动安装)
- NumPy:数值计算
- Pandas:数据处理
- Requests:服务器功能的HTTP请求
- Python-dateutil:日期处理
可选依赖项
- PyXLL:Excel集成需要商业许可证
- Matplotlib:绘图和可视化
- Jupyter:笔记本支持
- 开发工具:pytest、black、flake8、mypy
🆘 故障排除
常见问题
"需要Python 3.9.x"
- 从python.org安装Python 3.9.x
"ModuleNotFoundError: No module named 'mcp'"
- 检查PYTHONPATH是否正确设置
- 重启命令提示符
- 运行
python test_install.py
进行诊断
Excel插件无法加载
- 重启Excel
- 检查Excel加载项设置
- 验证PyXLL是否已安装
Windows 11特定问题
如果您使用Windows 11并遇到这些错误:
ModuleNotFoundError: No module named 'mcp._mcp'
- Excel显示"导入Python模块错误"
解决方案:从系统目录复制并重命名DLL文件:
- 导航到
C:\Windows\system32\
- 找到这些文件:
msvcr120_clr0400.dll
msvcp120_clr0400.dll
- 将它们复制到
.\lib\X64\
并重命名为:msvcr120.dll
msvcp120.dll
注意:为什么这样做有效?我们也不知道😅 - 但它确实解决了Windows 11上的问题!
获取帮助
- 运行诊断:
python test_install.py
- GitHub问题:报告问题
注意事项
- 确保安装的Python版本与系统架构(32位或64位)匹配
- 如果加载失败,请检查
pyxll.cfg
中的executable
路径是否正确 - 如果您使用的是Windows 11,而且无法工作,请按照上述Windows 11特定问题的解决方案操作
⚠️ 免责声明:本软件仅供教育和专业用途。用户有责任遵守所有适用的法规和第三方许可条款。作者不对任何财务损失或监管违规承担责任。