牛骨文教育服务平台(让学习变的简单)
博文笔记

python程序运行时间-期权组合计算

创建时间:2016-11-05 投稿人: 浏览次数:1142
spot = 2.45
strike = 2.50
maturity = 0.25
r = 0.05
vol = 0.25
from math import log, sqrt, exp
from scipy.stats import norm


def call_option_pricer(spot, strike, maturity, r, vol):
    
    d1 = (log(spot/strike) + (r + 0.5 * vol *vol) * maturity) / vol / sqrt(maturity)
    d2 = d1 - vol * sqrt(maturity)
    
    price = spot * norm.cdf(d1) - strike * exp(-r*maturity) * norm.cdf(d2)
    return price
import time
import numpy as np


portfolioSize = range(1, 10000, 500)
timeSpent = []


for size in portfolioSize:
    now = time.time()
    strikes = np.linspace(2.0,3.0,size)
    for i in range(size):
        res = call_option_pricer(spot, strikes[i], maturity, r, vol)
    timeSpent.append(time.time() - now)
from matplotlib import pylab
import seaborn as sns
from CAL.PyCAL import *
font.set_size(15)
sns.set(style="ticks")
pylab.figure(figsize = (12,8))
pylab.bar(portfolioSize, timeSpent, color = "r", width =300)
pylab.grid(True)
pylab.title(u"期权计算时间耗时(单位:秒)", fontproperties = font, fontsize = 18)
pylab.ylabel(u"时间(s)", fontproperties = font, fontsize = 15)

pylab.xlabel(u"组合数量", fontproperties = font, fontsize = 15)


从运行时间上来看,python计算还是蛮快的

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。