![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python
司马看山
人生苦短,我用python
展开
-
模拟基类
首先,我们在模拟类中生成的实例应当仅仅包含以下三个属性:name:一个字符串对象表示模拟对象模型的名称。mar_env:market_environment类的实例corr: 一个标记(浮点数)代表是否对象是相关的。模拟基类中包含的方法有:generate_time_grid:这个方法生成用于模拟的相关日期的时间格点,这个任务对于所有的模拟类来说是相同的。get_instrument_values:每个模拟类都必须返回一个ndarray对象,包含模拟的工具价值(例如,模拟股票价格,商品价格,波.原创 2020-11-03 22:56:27 · 765 阅读 · 1 评论 -
随机数生成-python实现
随机数生成时MonteCarlo模拟的中心任务。前面的章节介绍了如何使用Python和例如numpy.random等库莱生成不同分布的随机数的方法。对于我们现在的项目,最重要的是标准正态分布的随机数。这样我们应当有一个专门用来生成这种随机数的方便的函数。这个函数中使用了方差减少技术,也就是antithetic paths和moment matching,这些在前面章节中有所介绍。应用这个函数是很直接的。这个函数是我们后续分析的重要驱动力量。import numpy as npdef sn.原创 2020-11-03 22:02:26 · 562 阅读 · 1 评论 -
风险中性贴现-短期利率贴现
期权 资产定价基本定理import numpy as np#计算年份比例def get_year_deltas(date_list,day_count=365.): """返回以年的比例表示的日期间隔列表""" start = date_list[0] delta_list = [(date-start).days/day_count for date in date_list] return np.array(delta_list)#风险中性贴现 短期利率原创 2020-11-03 20:42:55 · 353 阅读 · 0 评论 -
隐含波动率模型-增量搜寻算法-python实现
隐含波动率模型import numpy as npdef incremental_search(f,a,b,dx): fa=f(a) c=a+dx fc=f(c) n=1 while np.sign(fa)==np.sign(fc): if a>=b: return a-dx,n a=c fa=fc c=a+dx fc=f(c) n+=原创 2020-10-30 23:51:20 · 621 阅读 · 0 评论 -
jacobi方法-python实现
jacobi方法import numpy as npdef jacobi(A,B,n,tol=1e-10): x = np.zeros_like(B) for it_count in range(n): x_new=np.zeros_like(x) for i in range(A.shape[0]): s1 = np.dot(A[i,:i],x[:i]) s2 = np.dot(A[i,i+1:],x[i+原创 2020-10-30 23:19:19 · 1025 阅读 · 0 评论 -
GaussSeidel方法-python实现
GaussSeidel方法def gauss(A,B,n,tol=1e-10): L = np.tril(A) U = A-L L_inv = np.linalg.inv(L) x=np.zeros_like(B) for i in range(n): Ux = np.dot(U,x) x_new = np.dot(L_inv,B-Ux) if np.allclose(x,x_new,tol):原创 2020-10-30 23:18:04 · 786 阅读 · 0 评论 -
Cholesky分解-金融应用-python
Cholesky分解#Cholesky分解import numpy as npA=np.array([[10.,-1.,2.,0.1], [-1.,11.,-1.,3.], [2.,-1.,10.,-1.], [0.0,3.,-1.,15.]])B=np.array([6.,25.,-11.,15.])L=np.linalg.cholesky(A)#print(L)#print(np.dot(L,L.T.conj()))y=np.原创 2020-10-30 23:15:10 · 1197 阅读 · 0 评论 -
利用矩阵求解线性方程
利用矩阵求解线性方程import numpy as npA = np.array([[2,1,1],[1,3,2],[1,0,0]])B = np.array([4,5,6])print(np.linalg.solve(A,B))LU分解#LU分解import scipy.linalg as linalgimport numpy as npA=np.array([[2.,1.,1.],[1.,3.,2.],[1.,0.,0.]])B = np.array([4,5,6])LU=lin原创 2020-10-30 23:13:23 · 856 阅读 · 0 评论 -
金融整数规划
#整数规划from scipy import statsimport numpy as npimport pandas as pdimport statsmodels.api as smimport pulpdealers=["X","Y","Z"]#变动成本variable_costs={"X":500,"Y":350,"Z":450} #固定成本fixed_costs={"X":4000,"Y":2000,"Z":6000}#求解变量quantities=pulp.LpVaria原创 2020-10-30 23:10:51 · 142 阅读 · 0 评论 -
线性最优化
在CAPM和APT定价理论中,我们假设了模型的线性性,并且使用Python中的回归求解了期望的证券价格。随着我们资产组合中证券数量的增加,也会引入一定的限制。资产组合经理会发现他们在追求某种目标的时候会受到这些规则的限制。线性最优化问题可以帮助你克服资产组合配置的问题。最优化关注于最小或最大化目标函数的价值。例子是最大化收益和最小化波动率。这些目标通常会受到某种监管的限制,比如不允许卖空,对投资证券数量的限制等等。不幸的是,在Python中没有官方的包来支持这个问题的解决。但是,我们可以使用第三方包.原创 2020-10-28 23:39:36 · 779 阅读 · 0 评论