FpML to QuantLib 外滙歐式Barrier選擇權估值 fx-ex12-fx-barrier-option.xml

该博客介绍了如何将FpML文件解析为QuantLib以进行外汇欧式Barrier期权的估值。首先,通过etree.parse加载并解析FpML XML文档,然后检查期权类型、特征,特别是 Barrier 特性。接着,利用QuantLib进行日期处理、获取汇率历史数据,计算历史波动率,并设置相关参数以创建Garman-Kohlhagen过程。最终,通过AnalyticBarrierEngine或Finite-Differences Black Scholes Barrier Engine进行估值。
摘要由CSDN通过智能技术生成

FpML to QuantLib 外滙歐式Barrier選擇權估值

Non-Copylefted 2019 Alvin Cho. Provided ‘AS IS’. 10 May 2019.
Any quantitative method used in this file may not 100% correct for some reasons. Please use them after you fully understand them.
版權沒有, 歡迎使用, 沒有任何保證. 裡面使用的估值方法只為說明方便, 可能因為任何理由不正確或是不適用你的情況, 請完全理解再使用.

FpML 解析

from lxml import etree

利用 etree.parse 將 xml 檔案載入並 parse. 這個 FpML 文檔是 FpML 5.11 Second Working Draft Comfirmation View 裡的 fx-ex12-fx-barrier-option.xml. 將 FpML.org 下載的最新版規格壓後就可以找到. 此 FpML 文檔的詳細說明請參考 這篇文章

fp=etree.parse('FpML/confirmation/products/fx-derivatives/fx-ex12-fx-barrier-option.xml')

Confirmation View 的 namespace 一律是這個, 在任何 xpath 搜尋都需要指定 namespace.
在 FpML 裡面 namespace 用得不是很複雜, 同一個 view 裡的都用一樣

ns={
   "ns":"http://www.fpml.org/FpML-5/confirmation"}
asset=fp.xpath('//ns:trade/*',namespaces=ns)[1].tag

找到 tag 為 trade 的 node, 裡面有交易的細節. 第二個子節點就是這筆交易的產品. 這個文檔是做 fxOption

asset
'{http://www.fpml.org/FpML-5/confirmation}fxOption'
exercise=fp.xpath('//ns:fxOption/ns:americanExercise | //ns:fxOption/ns:europeanExercise',namespaces=ns)[0].tag

判斷這個外滙選擇權是美式還是歐式. 此產品是歐式, 也就是只在到期日能行權.

exercise
'{http://www.fpml.org/FpML-5/confirmation}europeanExercise'
expiryDate=fp.xpath('//ns:expiryDate/text()',namespaces=ns)[0]

其他要素一一提出

expiryDate
'2002-02-06'
putCurrency=fp.xpath('//ns:putCurrencyAmount/ns:currency/text()',namespaces=ns)[0]
putCurrency
'USD'
putCurrencyAmount=fp.xpath('//ns:putCurrencyAmount/ns:amount/text()',namespaces=ns)[0]
putCurrencyAmount
'4500000'
callCurrency=fp.xpath('//ns:callCurrencyAmount/ns:currency/text()',namespaces=ns)[0]
callCurrency
'EUR'
callCurrencyAmount=fp.xpath('//ns:callCurrencyAmount/ns:amount/text()',namespaces=ns)[0]
putCurrencyAmount
'4500000'
strike=fp.xpath('//ns:strike/ns:rate/text()',namespaces
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值