区块链金融中的python应用--LSM定价
2019-02-18 11:56
761 查看
区块链金融中的BSM定价是最基本的,网络上有很多,就不一一阐述了。这里给了一个用最小二乘法进行的美式定价。
from math import log,sqrt,exp,ceil import numpy as np import numpy.random as npr S0= 100. r = 0.05 sigma = 0.25 T = 1.0 I=50000 M=50 #给出假设的基本的条件 def gen_sn(M,I,anti_paths=True,mo_match=True): # 生成随机值(运用方差缩减-对偶方法或者矩匹配的方法,改善正态分布随机值的匹配 if anti_paths is True: #对偶方法 sn = npr.standard_normal((M+1,int(I / 2))) sn = np.concatenate((sn,-sn), axis=1) else: sn = npr.standard_normal((M+1,I)) if mo_match is True: #矩匹配 sn = (sn - sn.mean())/sn.std() return sn def gbm_mcs_amer(K):#定义LSM dt = T/M df = np.exp(-r*dt) S = np.zeros((M+1,I)) S[0]=S0 sn = gen_sn(M,I) #生成随机值 for t in range(1,M+1): S[t]=S[t-1]*np.exp((r-0.5*sigma**2)*dt+sigma*np.sqrt(dt)*sn[t]) h=np.maximum(S-K,0) #收益函数 V=np.copy(h) for t in range(M-1,0,-1): #最小二乘法 reg = np.polyfit(S[t],V[t+1]*df,7) C = np.polyval(reg,S[t]) V[t] = np.where(C>h[t],V[t+1]*df,h[t]) C0= df*1/I *np.sum(V[1]) return C0
gbm_mcs_amer(110.) ## 7.8241662128626945
相关文章推荐
- python 金融应用(一)期权定价公式的计算
- Python金融应用编程(数据分析、定价与量化投资)
- Python金融应用编程(数据分析、定价与量化投资)
- 区块链在金融服务中的五大应用场景
- 区块链,文化金融领域的应用场景
- 区块链金融及其应用
- python金融应用(二)基本数据类型和结构
- 北京金博会“区块链”展区吸引众人目光 展示多项金融领域应用
- Python在金融,数据分析,和人工智能中的应用
- 区块链在金融行业有哪些应用
- 基于Python开发的ZeroNet,我见过的区块链落地最棒的应用
- 1-玩转Python3金融API应用-查阅easytrader家族系列模块
- 立足于存证和溯源两大应用场景:他们想利用区块链技术颠覆现有供应链金融模式
- 区块链在金融领域怎么发挥它的应用价值?
- 【区块链】区块链+金融,带你直击实践应用中的需求和痛点
- Python 数据分析(二 本实验将学习利用 Python 数据聚合与分组运算,时间序列,金融与经济数据应用等相关知识
- Python 数据分析(二 本实验将学习利用 Python 数据聚合与分组运算,时间序列,金融与经济数据应用等相关知识
- 改变金融行业的区块链应用具体体现在哪里?
- 使用Python开发基于TrustNote的区块链应用
- python 金融应用(四)金融时间序列分析基础