财务-财务风险计算。通过类结构和操作人员过载优化了易用性
finance的Python项目详细描述
财务-详细说明
本项目的目的是为财务部门提供易于使用的python代码。 风险计算。 这部法典并非随意复制教科书内容。
它是关于开发abstract data types作为对象,以简化财务计算和代码 发展。
在这一点上,代码决不是为了速度而优化的
在pythonhacks主页上开发了金融和数学概念。
第1部分-简单时间相关资产
时间是通用的,比如1个月,而非通用的,比如特定的日期。 在某种程度上,这两种类型都是通过大量使用运算符重载来实现的。
这意味着问题是:2009年12月27日之间有多少天 提前3个月可以计算如下:
>>> from finance import bankdate >>> t1 = bankdate('2009-12-27') >>> print t1 + '3m' 2010-03-27 >>> print t1 + '3m' - t1 90
此外,一个处理未来付款的向量结构(一个日期流)是 作为类实现。
通过方法重载,很容易构建甚至非常复杂的现金流(=日期流)
标准日期流的生成器也是包的一部分
在对日期流进行任何计算之前,必须将日期转换为 时代。为此将创建类datetotime
最后是simpel计算,比如现值和不同的持续时间 可在上课时间内完成
如何安装
只需运行setup.py install命令或者在windows中使用windows安装程序。
文档等
访问我的homepage了解有关如何 使用和代码背后的研究这是一个类似博客的关于金融、数学的地方 以及科学计算。
0.2502的变化:
最后期限还有一些问题需要解决。 感谢Johan Uys让我注意到这一点。
0.2501的变化:
生成最终日期的问题已经解决感谢安库什·萨海 为了引起我的注意。
0.25的变化:
代码已经被重写以分离strickt数学结构,例如在单独的包中的小数向量。 对屈服曲线有轻微的修改。
0.20的变化:
现在贴现曲线基于基准零债券,其中利率是连续的远期利率。 可以像这样进行标准叶栅计算:
Instantiate:
>>> import finance >>> ns = finance.yieldcurves.NelsonSiegel(0.061, -0.01, -0.0241, 0.275)See the settings:
>>> ns Nelson Siegel (level=0.061, slope=-0.01, curvature=-0.0241, scale=0.275)Get the discountfactors at times 1, 2, 5, 10:
>>> times = [1, 2, 5, 10] >>> ns(times) DecimalVector([0.9517121708497056177816078083, 0.9072377300179418172521412527, 0.7844132592062346545344544940, 0.6008958407659500402742872859])Get the zero coupon rate at time 5 and 7
>>> r5, r7 = ns.zero_coupon_rate([5, 7]) >>> r5, r7 (Decimal('0.049762403554685553400657196'), Decimal('0.050625188777310061599365592'))Get the forward rate between time 5 and 7
>>> f5_7 = ns.discrete_forward_rate(5, 7) >>> f5_7 Decimal('0.052785255470657667493924028')
如上所示,使用小数向量的概念绘制了屈服曲线特别是 所有输出均为十进制或十进制矢量。
目前有三种不同的收益率曲线类型:
- 尼尔森西格尔
- 自然三次样条
- 金融三次样条
这样,财务包就覆盖了使用中的大部分曲线。 因为它很容易添加更多的屈服曲线,因为设计会更多。
当然,屈服曲线也被整合到时间流中。所以现在有可能 进行大多数固定收益计算。
关于财务软件包中固定收益计算的教程即将面世。
基于线性可分解贴现曲线的风险计算被推迟 稍后再开始
计划添加的内容
目前计划的发展是:
- 0.3版计划新增内容:
- 货币、实施markowitz等
- 0.4版计划新增内容:
- 通过(二项式)树的可选性
- 0.5版计划新增内容:
- 从时间流引导以获得基准零债券的基数
- 计划添加版本0的内容。6: 投资组合的概念,如结构性产品