Я только что обнаружил функцию "каркас" в R для построения графиков трехмерных поверхностей.
Я хочу реализовать это, построив график цены опциона Black & Scholes Call на две последовательности данных: время до погашения и цена исполнения. Итак, прежде всего здесь следует мой сценарий:
S=100 #My stock Price
K=90 #Initial Strike Price
T=1 #Initial Time to Maturity (1 year here)
RF=0.03 #Risk free rate
SIGMA=0.2 #Volatility
d1=(log(S/K) + (RF + 0.5*SIGMA^2)*T)/SIGMA*sqrt(T) #initial d(1)
d2=d1-SIGMA*sqrt(T) #initial d(2)
Затем я попытался подготовить сетку для моей поверхности / 3D-графика:
K=seq(80,120,1)
T=seq(0,1,0.1)
table=expand.grid(K,T)
На последнем шаге я добавляю новую переменную столбца для вычисления моей цены Call для каждой отдельной комбинации:
table$CALL= S*pnorm(d1) - K*exp(-RF*T)*pnorm(d2)
names(table)= c("K","T","CALL")
Наконец поверхность / 3D сюжет:
wireframe(CALL ~ K * T, scales = list( arrows = FALSE),aspect = c(1, .6),data=table,
drape=T,shade=T)
Итак, он показывает, по-видимому, надежный график (согласно моему финансовому исследованию), но ... я не знаю, он выглядит немного "масштабно-шаговым" графиком. Поскольку я новичок в функции «каркас», я не знаю, правильно ли я использовал все входные данные. Я хотел бы узнать мнение кого-то, кто уже использовал для построения формулы B & S в 3D-графике. Я заинтересован, потому что я сделал бы то же самое, чтобы построить греков и подразумеваемую волатильность в будущем.
Заранее спасибо