早期写的python式期权的定价脚本,供大家参考,具体内容如下#coding:utf-8

'''

期权

q=x/s

H = h/x H 价格

[1] Down-and-in call cdi

[2] Up-and-in call cui

[3] Down-and-in put pdi

[4] Up-and-in put pui

[5] Down-and-out call cdo

[6] Up-and-out call cuo

[7] Down-and-out put pdo

[8] Up-and-out put puo

'''

from math import log,sqrt,exp,ceil

from scipy import stats

import datetime

import tushare as ts

import pandas as pd

import numpy as np

import random

import time as timess

import os

def get_codes(path='D:\\code\\20180313.xlsx'): #从代码表格从获取代码

codes = pd.read_excel(path)

codes = codes.iloc[:,1]

return codes

def get_datas(code,N=1,path='D:\\data\\'): #获取数据N=1当天数据

datas = pd.read_csv(path+eval(code)+'.csv',encoding='gbk',skiprows=2,header=None,skipfooter=N,engine='python').dropna() #读取CSV文件 名称为股票代码 解gbk skiprows跳过前两行文字 第一行不做为表头

date_c = datas.iloc[:,[0,4,5]] #只用第0 列代码数据和第4列收盘价数据

date_c.index = datas[0]

return date_c

def get_sigma(close,std_th):

x_i = np.log(close/close.shift(1)).dropna()

sigma = x_i.rolling(window=std_th).std().dropna()*sqrt(244)

return sigma

def get_mu(sigma,r):

mu = (r-pow(sigma,2)/2)/pow(sigma,2)

return mu

def get_lambda(mu,r,sigma):

lam = sqrt(mu*mu+2*r/pow(sigma,2))

return lam

def x_y(sigma,T,mu,H,lam,q=1):

x1 = log(1/q)/(sigma*sqrt(T))+(1+mu)*sigma*sqrt(T)

x2 = log(1/(q*H))/(sigma*sqrt(T))+(1+mu)*sigma*sqrt(T)

y1 = log(H*H/q)/(sigma*sqrt(T))+(1+mu)*sigma*sqrt(T)

y2 = log(q*H)/(sigma*sqrt(T))+(1+mu)*sigma*sqrt(T)

z = log(q*H)/(sigma*sqrt(T))+lam*sigma*sqrt(T)

return x1,x2,y1,y2,z

def get_standardBarrier(eta,phi,mu,sigma,r,T,H,lam,x1,x2,y1,y2,z,q=1):

f1 = phi*1*stats.norm.cdf(phi*x1,0.0,1.0)-phi*q*exp(-r*T)*stats.norm.cdf(phi*x1-phi*sigma*sqrt(T),0.0,1.0)

f2 = phi*1*stats.norm.cdf(phi*x2,0.0,1.0)-phi*q*exp(-r*T)*stats.norm.cdf(phi*x2-phi*sigma*sqrt(T),0.0,1.0)

f3 = phi*1*pow(H*q,2*(mu+1))*stats.norm.cdf(eta*y1,0.0,1.0)-phi*q*exp(-r*T)*pow(H*q,2*mu)*stats.norm.cdf(eta*y1-eta*sigma*sqrt(T),0.0,1.0)

f4 = phi*1*pow(H*q,2*(mu+1))*stats.norm.cdf(eta*y2,0.0,1.0)-phi*q*exp(-r*T)*pow(H*q,2*mu)*stats.norm.cdf(eta*y2-eta*sigma*sqrt(T),0.0,1.0)

f5 = (H-1)*exp(-r*T)*(stats.norm.cdf(eta*x2-eta*sigma*sqrt(T),0.0,1.0)-pow(H*q,2*mu)*stats.norm.cdf(eta*y2-eta*sigma*sqrt(T),0.0,1.0))

f6 = (H-1)*(pow(H*q,(mu+lam))*stats.norm.cdf(eta*z,0.0,1.0)+pow(H*q,(mu-lam))*stats.norm.cdf(eta*z-2*eta*lam*sigma*sqrt(T),0.0,1.0))

return f1,f2,f3,f4,f5,f6

def main(param,t,r=0.065):

typeflag = ['cdi','cdo','cui','cuo','pdi','pdo','pui','puo']

r = log(1+r)

T = t/365

codes = get_codes()

H = 1.2

for i in range(len(codes)):

sdbs = []

for j in typeflag:

code = codes.iloc[i]

datas = get_datas(code)

close = datas[4]

sigma = get_sigma(close,40)[-1]

mu = get_mu(sigma,r)

lam = get_lambda(mu,r,sigma)

x1,x2,y1,y2,z = x_y(sigma,T,mu,H,lam)

eta = param[j]['eta']

phi = param[j]['phi']

f1,f2,f3,f4,f5,f6 = get_standardBarrier(eta,phi,mu,sigma,r,T,H,lam,x1,x2,y1,y2,z)

if j=='cdi':

sdb = f1-f2+f4+f5

if j=='cui':

sdb = f2-f3+f4+f5

if j=='pdi':

sdb = f1+f5

if j=='pui':

sdb = f3+f5

if j=='cdo':

sdb = f2+f6-f4

if j=='cuo':

sdb = f1-f2+f3-f4+f6

if j=='pdo':

sdb = f6

if j=='puo':

sdb = f1-f3+f6

sdbs.append(sdb)

print(T,r,sigma,H,sdbs)

if __name__ == '__main__':

param = {'cdi':{'eta':1,'phi':1},'cdo':{'eta':1,'phi':1},'cui':{'eta':-1,'phi':1},'cuo':{'eta':-1,'phi':1},

'pdi':{'eta':1,'phi':-1},'pdo':{'eta':1,'phi':-1},'pui':{'eta':-1,'phi':-1},'puo':{'eta':-1,'phi':-1}}

t = 30

main(param,t)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持爱安网。

python期权定价代码_pythonspan data-e=6Zqc56KN/span式期权定价公式_Python_脚本语言_IT 经验_爱安网 LoveAn.com...相关推荐

  1. python图层合并_图层最新:Python叠加矩形框图层2种方法及效果_爱安网 LoveAn.com

    关于"图层"的最新内容 聚合阅读 这篇文章主要介绍了Python叠加矩形框图层2种方法及效果,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友 ...

  2. python中的content方法_content最新:python计算Content-MD5并获取文件的Content-MD5值方式_爱安网 LoveAn.com...

    关于"content"的最新内容 聚合阅读 这篇文章主要介绍了python计算Content-MD5并获取文件的Content-MD5值方式,具有很好的参考价值,希望对大家有所帮助 ...

  3. python中xpath定位_xpath最新:关于python中的xpath解析定位_爱安网 LoveAn.com

    关于"xpath"的最新内容 聚合阅读 这篇文章主要介绍了关于python中的xpath解析定位,具有很好的参考价值,希望对大家有所帮助.一起跟随小编过来看看吧... 这篇文章主要 ...

  4. python多边形的绘制教程_绘制最新:python绘制封闭多边形教程_爱安网 LoveAn.com

    关于"绘制"的最新内容 聚合阅读 今天小编就为大家分享一篇python绘制封闭多边形教程,具有很好的参考价值,希望对大家有所帮助.一起跟随小编过来看看吧... 这篇文章主要介绍了P ...

  5. python可视化计算器_GUI最新:python GUI模拟实现计算器_爱安网 LoveAn.com

    关于"GUI"的最新内容 聚合阅读 这篇文章主要介绍了php7 图形用户界面GUI 开发,结合实例形式分析了PHP7基于php_ui扩展实现的图形用户界面GUI相关操作技巧,需要的 ...

  6. python循环语句打印三角形_三角形最新:Python利用for循环打印星号三角形的案例_爱安网 LoveAn.com...

    关于"三角形"的最新内容 聚合阅读 这篇文章主要介绍了Python利用for循环打印星号三角形的案例,具有很好的参考价值,希望对大家有所帮助.一起跟随小编过来看看吧... 这篇文章 ...

  7. python3占位符详解_占位符最新:Python 占位符的使用方法详解_爱安网 LoveAn.com

    关于"占位符"的最新内容 聚合阅读 这篇文章主要介绍了Python 占位符的使用方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以 ...

  8. python opencv bgr转rgb_RGB最新:opencv-python的RGB与BGR互转方式_爱安网 LoveAn.com

    关于"RGB"的最新内容 聚合阅读 这篇文章主要介绍了opencv-python的RGB与BGR互转方式,具有很好的参考价值,希望对大家有所 帮助.一起跟随小编过来看看吧... 这 ...

  9. c语言是静态语言python语言是脚本语言对吗_初中生想学编程,请问先学C语言好还是先学Python?...

    本人大二,一开始学的语言是java.碰巧C语言和python都学过皮毛,各有利弊.Python语言方便上手,pip一下,天下我有.C语言功能也很强大,从嵌入式到图形学,C语言也一直陪伴着我,很多算法都 ...

  10. 怎么用计算机弹出光年之外,明日之后光年之外简谱代码-明日之后光年之外怎么弹-明日之后光年之外钢琴曲谱分享_牛游戏网...

    在明日之后手游中,钢琴可以调整琴键的数量和声调弹奏出自己想要的歌曲,只要有好的简谱就可以随意弹出,<光年之外>也是其中不少人喜欢的曲目哦~不少玩家都想知道光年之外歌曲怎么弹吧?光年之外钢琴 ...

最新文章

  1. Walking on the path of Redis --- Redis configuration
  2. python中2个字典比较
  3. Python uuid 介绍
  4. uva1515(模拟)
  5. java导出excel设置行高列宽_使用POI生成Excel文件,可以自动调整excel列宽
  6. openresty获取Nginx uri中的单一变量
  7. iPhone的UDID与push中使用的device token的关系
  8. ★LeetCode(1025)——除数博弈(JavaScript)
  9. 亲密关系沟通-【归属感】提升归属感的沟通方法
  10. python识别文字并且提示_python识别图像并提取文字的实现方法
  11. jupyter notebook和python有什么区别_Python神器 Jupyter Notebook
  12. linux低级格式化工具下载,硬盘低格工具(Hard Disk Low Level Format Tool)
  13. 三极管什么时候工作在饱和区
  14. 浅谈5G和4G有哪些区别?
  15. xp证书错误补丁_爱思助手 IPA 签名功能常见问题汇总,安卓软件修复南瓜影视无法播放问题,新增皮皮虾xp版,内置皮皮虾伴侣!...
  16. 一个农村博士的独白:全家为什么只有我读到了博士
  17. 随身wifi挑选要注意哪些问题才能避免上当
  18. 【C语言】BC102 带空格直角三角形图案(DAY 9)
  19. 优化Facebook广告ROI的数据驱动方法:从投放到运营
  20. 宜信研发邮件POP3/SMTP测试

热门文章

  1. php如何取视频缩略图,视频提取缩略图
  2. 网易云原生架构实践之服务治理
  3. 常用URL schemes ✨支付宝 、微信、腾讯、百度、网易、银行 、社交 、音频 、工具大集合
  4. java word导出表格_Java实现word导出(表格带图片)
  5. 使用python刷访问量
  6. 2020下半年6级高频词汇整理
  7. python定义空数组_python定义二维数组
  8. 决策树_Python3实现代码及注释
  9. 怎么将pdf转换成jpg图片格式
  10. uni-app实现android,ios打包过程详解