风险价值(VaR):即在市场正常波动的条件下,在一定概率水平P%下,某一金融资产或金融资产组合的VaR是在未来特定一段时间Δt内最大可能损失。 现在我们使用蒙特卡罗模拟法进行风险价值的估算。简单来说,蒙特卡罗模拟法即运用历史数据对未来进行多次模拟,以求得未来股价结果的概率分布。蒙特卡罗模拟法的公式如下, 其中S为股票的价格,

为股价变动大小(有正负),μ为期望收益率(平均),Δt为时间间隔,σ为股票风险,ε为随机变量。将S移项可得:

将S移项可得:

表示股价的波动大小是由前一天的波动期望和一个服从正态分布的随机波动影响

所以下一个

的股价可以表示为

以美的股价为例,先贴上程序代码如下,回头有空再详细解析:

#环境&数据准备

import sys as sy

import numpy as np

import pandas as pd

import tushare as ts

import pyecharts as pye

from sklearn import datasets as ds

import matplotlib as mpl

from matplotlib import pyplot as plt

import seaborn as sns

import pyecharts as pye

def stock_monte_carlo(start_price,days,mu,sigma):

''' This function takes in starting stock price, days of simulation,mu,sigma, and returns simulated price array'''

# Define a price array

price = np.zeros(days)

price[0] = start_price

# Schok and Drift

shock = np.zeros(days)

drift = np.zeros(days)

# Run price array for number of days

for x in range(1,days):

# 假设股票的价格波动可以分为两部分,第一部分为drift,即股票会根据收益率波动,第二部分为shock,即随机波动

shock[x] = np.random.normal(loc=mu * dt, scale=sigma * np.sqrt(dt))

# Calculate Drift

drift[x] = mu * dt

# 当天价格 = 前一天价格 + 价格波动

#其中价格波动 = 前一天价格×(drift + shock)

price[x] = price[x-1] + (price[x-1] * (drift[x] + shock[x]))

return price

#读入美的“000333”2017-01-01 到 2018-11-08复权后数据

df = ts.get_h_data('000333', start='2017-01-01', end='2018-11-8')

#计算日均收益率

df1 = df['close'].sort_index(ascending=True)

df1 = pd.DataFrame(df1)

df1['date'] = df1.index

df1['date'] = df1[['date']].astype(str)

df1["rev"]= df1.close.diff(1)

df1["last_close"]= df1.close.shift(1)

df1["rev_rate"]= df1["rev"]/df1["last_close"]

df1 = df1.dropna()

print(df1.head(10))

# 设定365天

days = 365

# Now our delta

dt = 1/days

# Now let's grab our mu (drift) from the expected return data we got for AAPL

mu = df1["rev_rate"].mean()

# Now let's grab the volatility of the stock from the std() of the average return

sigma = df1["rev_rate"].std()

# Get start price

start_price = 40.63

runs = 1000

simulations = np.zeros(runs)

np.set_printoptions(threshold=5)

for run in range(runs):

tmpAr = stock_monte_carlo(start_price,days,mu,sigma)

simulations[run] = tmpAr[days-1];

plt.plot(tmpAr)

del tmpAr

plt.xlabel("Days")

plt.ylabel("Price")

plt.title('Monte Carlo Analysis for Tesla')

plt.show()

python计算在险价值_VaR - 风险价值 - 蒙特卡罗法 - Python相关推荐

  1. python计算存款_python入门教程NO.8 用python写个存款利息计算器

    本文涉及的python基础语法为def函数,return,函数的各参数示例,匿名函数等 函数初识 函数是一段组织好的 可重复使用的 用来实现特定功能的代码块. 函数能提高代码的模块性,和代码的重复利用 ...

  2. python计算思维训练文件操作与异常处理_054 Python程序设计思维

    [TOC] 一.单元开篇 计算思维与程序设计 计算生态与Python语言 用户体验与软件产品 基本的程序设计模式 二.计算思维与程序设计 2.1 计算思维 2.1.1 第3种人类思维特征 逻辑思维:推 ...

  3. python 计算当月天数_告诉你怎么用Python进行企业营运分析!盈利这么多?

    告诉你怎么用Python进行企业营运分析 内容导入: 大家好,这里是每天财务转一转.Python的应用领域现在非常的广泛,随着会计与财务智能化的步伐加快,Python数据分析在财务分析与投资决策中会占 ...

  4. python计算平均值标准差和中位数_如何使用python求平均数、方差、中位数

    python求平均数.方差.中位数的例子 CalStatistics.py def getNum(): #获取用户不定长度的输入 nums = [] iNumStr = input("请输入 ...

  5. python计算各类型电影的评分_【Python数据科学实战项目】之 基于MovieLens的影评趋势分析|详解...

    原标题:[Python数据科学实战项目]之 基于MovieLens的影评趋势分析|详解 注:图片源于https://movielens.org/ 1. 项目任务 1.1 数据来源 本项目使用Group ...

  6. python计算两字符串中的位置_从Python中的字符串中获取两个字符

    how to get in python from string not one character, but two? I have: long_str = 'abcd' for c in long ...

  7. python计算n维欧几里得距离_欧几里得距离Python实现

    我用下面的代码从编程集体智能,这是一个函数,从书中计算出两个影评人之间的距离.在 这个函数对字典中排名的差异求和,但是n维的欧几里德距离也包括该和的平方根.在 既然我们用同一个函数来给每个人排序,我们 ...

  8. python计算2的n次方编写_用Python解决x的n次方问题

    我考虑到了x的所有n次的情况,下面的代码有可能是不完美的,但是肯定是对的. def aaa(x,n): A=isinstance(x,(int,float)) #这是考虑x和n的类型,需要满足条件才可 ...

  9. python计算十年平均录取率_如何在Python中使用Pandas计算多年平均值

    首先,根据Pandas时间戳创建一个列:df = df.dropna() df['date'] = df.apply(lambda x: pd.Timestamp('{year}-{month}-{d ...

最新文章

  1. mysql链事务_MYSQL 之事务篇
  2. win10 tensorrt安装 踩坑记录
  3. 用css来设置table的border
  4. 服务机器人---多传感器融合
  5. Chapter 5 Blood Type——11
  6. 剑指 Offer 09. 用两个栈实现队列(相邻相同操作只需要移动一次)
  7. 在服务器群集节点安装DHCP服务
  8. 希尔伯特(Hilbert)空间
  9. 金融计量学第一次实验:eviews做多元线性回归分析
  10. 免费PR转场下载 PR形状过渡视频转场MOGRT
  11. Mac常用快捷键组合
  12. HearthBuddy卡组
  13. Symbian 清除栈 CleanupStack
  14. 英文单词搜索之词霸搜索
  15. 意外险、医疗险、重疾险、寿险的主要保障功能和提示
  16. 万字干货!《人人都是产品经理》作者苏杰独家专访
  17. redis单点故障问题
  18. 众邮快递的物流信息是怎么在电脑上批量查询的
  19. linux网络通的端口开的 网页打不开,打不开HTTPS网页的解决方案 解决打不开HTTPS...
  20. NAT(地址转换模式)

热门文章

  1. docker基础:私库系列:再探Harbor:(5)集成clair
  2. 央视报道:全国22家奶粉厂家69批次…
  3. ligerui列表显示
  4. freetype2 使用
  5. 综述:基于深度学习的文本分类 --《Deep Learning Based Text Classification: A Comprehensive Review》总结(一)
  6. Euclidean Geometry
  7. 加速器之AFC系统调试
  8. 《硅谷钢铁侠》读书分享(一)
  9. 湖南科技大学计算机科学与工程,【计算机学院】湖南科技大学计算机科学与工程学院前来我校计算机学院进行访问与交流...
  10. 【网络】连接服务器失败(错误原因:Connection refused)| error 111: (111) Connection refused 原因分析