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

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程序运行时间-期权组合计算_第1张图片

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

你可能感兴趣的:(python,股票资产配置)