3d 绘制三维隐含波动率图

3d 绘制三维隐含波动率图,3d,volatility,r,data-visualization,quantmod,3d,Volatility,R,Data Visualization,Quantmod,我试图为BAC公司画一个隐含的图表。我做了代码来绘制隐含波动率vs执行价格(如下)。下面的绘图代码将绘制一个日期(2020年3月27日)的隐含波动率与执行价格的图表 我可以知道我如何编辑我的代码来绘制一个3D图,它可以绘制隐含波动率与执行价格和到期时间的关系吗 install.packages("quantmod") install.packages("jsonlite") install.packages("lubridate") install.packages("fOptions") li

我试图为BAC公司画一个隐含的图表。我做了代码来绘制
隐含波动率
vs
执行价格
(如下)。下面的绘图代码将绘制一个日期(2020年3月27日)的隐含波动率与执行价格的图表

我可以知道我如何编辑我的代码来绘制一个3D图,它可以绘制隐含波动率与执行价格和到期时间的关系吗

install.packages("quantmod")
install.packages("jsonlite")
install.packages("lubridate")
install.packages("fOptions")
library(quantmod)
library(jsonlite)
library(lubridate)
library(fOptions)

# Getting option chain data of Bank of America (all expiries)
CHAIN <- getOptionChain("BAC", NULL)
# Setting maturity of options as T (in years)
maturity <- as.Date(names(CHAIN), format="%b.%d.%Y")
today <- as.Date(Sys.Date(), format="%Y-%m-%d")
T <- as.numeric((maturity - today)/365)
# Interest Rate = 2%pa
r = 0.02;ImpVol<-1:1
# Getting latest price of Bank of America shares
getSymbols("BAC",from=today,to=today,src="yahoo")
S=as.numeric(Ad(`BAC`))
# Plot implied volatility over strike price given market prices of options (blue line)
for (i in 1:length(CHAIN$Mar.27.2020$calls$Strike)){ImpVol[i]<- GBSVolatility(CHAIN$Mar.27.2020$calls$Last[i], "c", S, CHAIN$Mar.27.2020$calls$Strike[i], T[1], r, 0)}

  #GBSVolatility(CHAIN$Mar.27.2020$calls$Last[i], "c", S, CHAIN$Mar.27.2020$calls$Strike[i],0.00274, r, 0)}
length(CHAIN$Mar.27.2020$calls$Strike)
length(ImpVol)
plot(CHAIN$Mar.27.2020$calls$Strike[!is.na(ImpVol)], ImpVol[!is.na(ImpVol)], xlab = "Strike price", ylab = "Implied volatility", lwd =3, type = "l", col
     = "blue")
install.packages(“quantmod”)
install.packages(“jsonlite”)
安装软件包(“lubridate”)
安装程序包(“选项”)
图书馆(quantmod)
图书馆(jsonlite)
图书馆(lubridate)
图书馆(选项)
#获取美国银行期权链数据(所有到期日)
链条