㈠ "如何用excel获取网页上的股票数据,并按照日期制成表格"请问你是按照什么技术完成的
用wdz程序就可以了,这个wdz软件直接将沪深股票日线、5分钟数据(包括最新数据、历史数据)输出为csv格式,然后双击,直接就在excel中打开了。
㈡ 怎么用 Excel 做蒙特卡洛模Ƌ
下面是在Excel中模拟一只股票价格的例子。假设股票价格
的对数收益率服从正态分布,均值为0,每日变动标准差为0.1,
模拟股票价格1年的路径,过程如下:
用到两个内置函数,即用rand()来产生0到1之间的随机数,然后用norminv()来获得服从既定分布的随机数,即收益率样本=norminv(rand(), 0, 0.1)。假定股票价格的初始值是100元,那么模拟的价格就是 S=100 * exp(cumsum(收益率样本))。
其中的cumsum()不是Excel的内置函数,其意思就是收益率样本的累积,每个时刻的值都是当前样本及此前所有样本的和,如,收益率样本从单元格C3开始,当前计算C15对应的模拟价格,则模拟价格计算公式是:100 * exp(sum($C$3:C15))。
由此可以得到股票价格的一条模拟路径。
其他非正态分布也可以通过类似方式得到分布的抽样,即分布函数的逆函数,这些函数Excel都内置了。所以,做蒙特卡洛模拟的时候,关键是先确定所需模拟的分布,然后进行抽样,然后应用层面的各种公式就可以在抽样的基础上进行计算了。
--------以下是补充的--------
根据上面提到的思路,其实可以很便捷地为期权做定价。下面就用蒙特卡洛方法为一个普通的欧式看涨期权定价(蒙特卡洛在为普通期权plain vanilla option定价时不占优势,因为相对于解析法而言计算量很大。但是,如果要给结构比较复杂的奇异期权定价时,可能蒙特卡洛法就比较实用,有时可能成为唯一的方法)。
1)假设这个期权是欧式看涨期权,行权价格为50元,标的股票当前的价格也是50元,期权剩余时间是1天。
2)假设标的股票的价格服从对数正态分布,即股票的每日收益率服从正态分布,均值为0,每日标准差为1%。
根据分布假设,首先用rand()函数产生在0到1之间的均匀分布样本。为了提高精确度,这里抽样的数量为1000个(其实1000个是很少的了,通常需要10万个甚至50万个,但是在Excel表格中操作这么多数字,不方便,这是Excel的不足之处)。
下一步,用norminv(probability, mean, std)函数来获得股票收益率分布的1000个抽样,其中的probability参数由rand()产生的抽样逐个代入,mean=0.0, std = 0.01。注意这里抽样得到的日度收益率。也就是说,这个样本对应的下一个交易日股票价格的收益率分布。
下一步,股票价格=50×exp(收益率样本),得到股票价格分布的抽样,有1000个样本。
根据我做的实验,这1000个样本的分布图形(histogram)跟对数正态分布是比较接近的,如下图所示:
图的横轴是股票价格,纵轴是样本中出现的频率。
得到了股票价格未来一天分布的样本之后,就可以以此样本来计算期权的价格了。
欧式看涨期权的定义为:
C=max(S-K,0)
所以,根据这个计算公式可以计算出在到期那天在特定的价格下期权的价值。在Excel中,相当于 期权价值=max(股票价格样本 - 50,0)。由此就可以得到了该期权未来1天价值的样本。
然后,将未来价值贴现回来(用无风险利率贴现,假设无风险利率为0.05,则贴现公式是=exp(-0.05/360)×期权价值,得到期权价格的1000个样本。
最后,对期权价格的1000个样本求平均,Excel函数average(期权价格样本),就可以得到期权的价格了。
我这里算出来的是:0.2015元。
而根据Black-Scholes期权定价公式算出来的理论价格则是0.2103元。二者比较接近,但是还是有差距。
而且,每次刷新Excel表格,就重新做一次模拟,得到的模拟价格变动比较大,有时是0.2043元,有时是0.1989元。由于这个抽样的数量比较小(1000个样本),所以估算的结果受到样本的影响会比较大。如果把抽样数量提高100倍甚至500倍,那么样本变动的影响可能会小一个或者两个数量级。但是计算量就大了,如果计算机性能不够高,那么利用Excel来做的话,比较困难。
这就是我的工作台:
------ 再来一个 --------
看到有人提到利用蒙特卡洛方法来估计圆周率Pi,挺有意思,也简单,所以就在Excel中做了一个实验。
基本原理在于在直角坐标系中的第一个象限中的一个单位圆,如下图所示:
在这个面积为1的正方形中,有四分之一的圆,圆的半径与正方向的边长都是1。那么根据圆的面积公式,这个图形中阴影部分的面积应该是 Pi/4。
下面开始进入蒙特卡洛的解法。
即,如果我们对这个正方形平面中的点进行均匀地抽样,随着抽样点的增多,那么落入阴影内的点的数量与总抽样数量的比,应该基本上等于阴影的面积Pi/4与整个正方形面积1的比,即Pi/4。用数学表示,就是
阴影内的样本点数量 ÷ 总数量 = Pi/4
所以,Pi = 4 × 阴影内的样本点数量 ÷ 总数量。
下面就在Excel中进行实验。
用rand()函数生成2000个随机数,作为随机样本点的X轴坐标,
再用rand()函数生成2000个随机数,作为随机样本点的Y轴坐标。
如此就得到了2000个随机样本点,这些点的X轴坐标和Y轴坐标都大于零且小于1,所以是在前面所说的正方形之中的点。
下一步,判断样本点是否处于阴影之内,由于这个阴影就是单位圆在直角坐标系第一想象的四分之一,所以圆阴影内的点都符合如下不等式:
翻译到Excel中,就是用IF函数来判断,例如:
IF(A2^2 + B2^2 <=1, 1, 0)
即,如果样本点在阴影中,得到1,否则得到0。这样就把样本点区分开来了。
最后,把所有得到的1和0加总,就知道所有样本点中处于阴影中样本点的数量了。
最后根据
Pi = 4 × 阴影内的样本点数量 ÷ 总数量
就可以算出Pi来了。
我这个试验中算出来的 Pi=3.142。
以下是样本点的散点图:
由于样本数量有限,所以计算出来的Pi的精度并不高。
以下是工作界面,挺简单的。
来源:知乎
㈢ 怎么将多个具有相同模板的excel表格汇总成一个
读者咫尺天涯:卢子老师,经常听人说建个模板什么的。你能写篇关于模板建立,保存,调用的文章给扫扫盲吗?
初学者如果靠一己之力,要制作一份表格模板,需要花费大量的时间和精力。就以卢子来说,一份智能的进销存管理表制作了一周,更别提那些更高难度的。
现在教型此孙你一招,以最快的速度获取精美表格模板。
不过在这之前来,来玩个思考题。大家卜链都知道卢子的第一兴趣是Excel,但是卢子的第二兴趣应该没有几个人知道,你知道吗,猜一猜?

看完了就动手试试吧!
end.
来源:Excel不加班
㈣ 怎么将股票中的数据导出到excel
1、首先在电脑桌面上打开股票软件。
㈤ 股票如何设置个性模板
在K线界面
单击左下角“模板”鼠标放在中间----然后右键----鼠标指向“指标窗口个数”--自己设置几个窗口(若不想更改指标下一步)--点左下角“另存为”--在“绑定周期”前打个勾--在后边空白框里起个名--保存就OK了--这时你就会看到左下角有你编写的名称。
若想用自己的指标
单击左下角“模板”鼠标放在中间----然后右键----鼠标指向“指标窗口个数”----自己设置几个窗口----鼠标左键点击一个窗口里---键入你自己的公式名称---鼠标再点击另一个窗口里---再键入一个公式名称(也可以点击已经有的公式名称)----直到全部编完----然后点左下角“另存为”--在“绑定周期”前打个勾--在后边空白框里起个名----保存就OK了。
如果你认为这一个K线界面不能满足你很多公式的查看,那么你不需要动界面,在指标框里面再次填上你的新指标,然后重复上边的操作,只是公式名称不要重复就行了。
在模板状态下点击不同的公式名称,你会很方便的查看很多公式组合,希望我的回答能够让你满意。
㈥ excel系统内的模板少了很多
这些多出来的表格应用时候也是需要安装的,这是版本问题。或者你可以网上直接搜模版来安装。
㈦ 百度空间有没有股市模板谁帮忙给一个!
好像真没有,你可以自定义设置呀。把股市模板用在自定义就行
㈧ 求一款计算股票买卖盈亏的软件
大智慧里面
工具-个人理财
然后你自己建一个帐户,可以离线使用,
前面有 一项 新增 可投入支出资金,买卖股票
最后面有一项参数设置,可以设置费用费率等
你可以去看看是否符合要求
这个我没用过,不过你在电子表格里面做个模板就行了,还用不着编程那么麻烦.
㈨ 如何下载股票历史成交数据到Excel或txt
以华中智能股票软件为例:(以Think pad X13 锐龙版笔记本电脑,Windows 10 操作为例)首先切换到要下载数据的股票K线形态,按“F1”进入“日线某某股票历史成交”,点击鼠标右键->数据导出->导出所有数据->在“请选择导出的类型”中选择excel或txt
补充资料:
如何获取所有股票历史数据:
如果要对股市进行分析,首先就要获取所有股票的历史数据,只有通过股票的历史数据,我们才能分析出股市的规律。
(以Think pad X13 锐龙版笔记本电脑,Windows 10 操作为例)
一、工具/原料
1、EXCEL2007或者以上版本,不能使用WPS
2、电脑1g内存1核处理器及以上配置
3、拥有较强逻辑分析能力以及少量智慧及以上的大脑一颗
方法/步骤:
第一步,获取股票代码,复制其中一部分到第一个工作表A4到A127,然后通过程序把每一个代码写入到不同的工作表A2位置,并对该工作表以该股票代码命名。程序如下:
Sub 工作表命名()
For i = 4 To 127
Sheets(i).Range("a2") = "'" & Sheets(1).Range("a" & i)
Next i
For i = 4 To Sheets.Count
Sheets(i).Name = Sheets(i).Range("a2").Value
Next
End Sub
第二步,获取股票历史数据。代码如下:
Private Function GetSource(sURL As String) As String
Dim oXHTTP As Object
Set oXHTTP = CreateObject("MSXML2.XMLHTTP")
oXHTTP.Open "GET", sURL, False
oXHTTP.Send
GetSource = oXHTTP.responsetext
Set oXHTTP = Nothing
End Function
Sub 历史数据()
Dim objXML As Object
Dim txtContent As String
Dim i As Integer
Dim strCode As String
Dim gp As String
Dim kaishihang
Dim arr, arr1, arr2, arr3, arr4, arr5, arr6, arr7, arr8, arr9, arr10, arr11
On Error Resume Next
EndRow = Range("a65536").End(xlUp).Row
startRow = 4
If startRow <= EndRow Then
Range(Cells(startRow, 1), Cells(EndRow, 11)).Value = ""
Else
Exit Sub
End If
Set objXML = CreateObject("Microsoft.XMLHTTP")
gp = [A2]
For h = 1 To 4
For m = 1 To 4
kaishihang = [A65535].End(xlUp).Row
nian = Replace(Str(Year(Now) + 1 - h), " ", "")
ji = Replace(Str(4 + 1 - m), " ", "")
With objXML
.Open "GET", "http://quotes.money.163.com/trade/lsjyj_" + gp + ".html?year=" + nian + "&season=" + ji + "", False
.Send
If objXML.Status = 200 Then
txtContent = .responsetext
arr = Split(txtContent, "'>
For i = 1 To UBound(arr)
arr1 = Split(arr(i), "
arr2 = Split(arr1(1), Chr(60))
Cells(i + kaishihang, 2) = Mid(arr2(0), InStr(arr2(0), ">") + 1)
arr3 = Split(arr1(2), Chr(60))
Cells(i + kaishihang, 3) = Mid(arr3(0), InStr(arr3(0), ">") + 1)
arr4 = Split(arr1(3), Chr(60))
Cells(i + kaishihang, 4) = Mid(arr4(0), InStr(arr4(0), ">") + 1)
arr5 = Split(arr1(4), Chr(60))
Cells(i + kaishihang, 5) = Mid(arr5(0), InStr(arr5(0), ">") + 1)
arr6 = Split(arr1(5), Chr(60))
Cells(i + kaishihang, 6) = Mid(arr6(0), InStr(arr6(0), ">") + 1)
arr7 = Split(arr1(6), Chr(60))
Cells(i + kaishihang, 7) = Mid(arr7(0), InStr(arr7(0), ">") + 1)
arr8 = Split(arr1(7), Chr(60))
Cells(i + kaishihang, 8) = Mid(arr8(0), InStr(arr8(0), ">") + 1)
arr9 = Split(arr1(8), Chr(60))
Cells(i + kaishihang, 9) = Mid(arr9(0), InStr(arr9(0), ">") + 1)
arr10 = Split(arr1(9), Chr(60))
Cells(i + kaishihang, 10) = Mid(arr10(0), InStr(arr10(0), ">") + 1)
arr11 = Split(arr1(10), Chr(60))
Cells(i + kaishihang, 11) = Mid(arr11(0), InStr(arr11(0), ">") + 1)
Next i
End If
End With
Next m
Next h
Set objXML = Nothing
End Sub
第三步,获取上证历史数据,并获取所有股票的历史数据。程序如下:
Sub 所有股票历史数据获取()
Application.ScreenUpdating = False
Dim s As String, gp As String, nian As String, ji As String, s1 As String
Dim arr, arr1, arr2, arr3, arr4, arr5, arr6, arr7, arr8, arr9
Dim i, h As Long
Dim kaishihang
Dim LastRow As Long, r As Long
On Error Resume Next
EndRow = Sheet2.Range("a65536").End(xlUp).Row
startRow = 4
If startRow <= EndRow Then
Sheet2.Range(Sheet2.Cells(startRow, 1), Sheet2.Cells(EndRow, 9)).Value = ""
Else
Exit Sub
End If
For h = 1 To 5
For m = 1 To 4
kaishihang = Sheet2.[A65535].End(xlUp).Row
nian = Replace(Str(Year(Now) + 1 - h), " ", "")
ji = Replace(Str(4 + 1 - m), " ", "")
s1 = "http://quotes.money.163.com/trade/lsjysj_shu_000001.html?year=" + nian + "&season=" + ji + ""
s = GetSource(s1)
arr = Split(s, "'>
For i = 1 To UBound(arr)
arr1 = Split(arr(i), "
arr2 = Split(arr1(1), Chr(60))
Sheet2.Cells(i + kaishihang, 2) = Mid(arr2(0), InStr(arr2(0), ">") + 1)
arr3 = Split(arr1(2), Chr(60))
Sheet2.Cells(i + kaishihang, 3) = Mid(arr3(0), InStr(arr3(0), ">") + 1)
arr4 = Split(arr1(3), Chr(60))
Sheet2.Cells(i + kaishihang, 4) = Mid(arr4(0), InStr(arr4(0), ">") + 1)
arr5 = Split(arr1(4), Chr(60))
Sheet2.Cells(i + kaishihang, 5) = Mid(arr5(0), InStr(arr5(0), ">") + 1)
arr6 = Split(arr1(5), Chr(60))
Sheet2.Cells(i + kaishihang, 6) = Mid(arr6(0), InStr(arr6(0), ">") + 1)
arr7 = Split(arr1(6), Chr(60))
Sheet2.Cells(i + kaishihang, 7) = Mid(arr7(0), InStr(arr7(0), ">") + 1)
arr8 = Split(arr1(7), Chr(60))
Sheet2.Cells(i + kaishihang, 8) = Mid(arr8(0), InStr(arr8(0), ">") + 1)
arr9 = Split(arr1(8), Chr(60))
Sheet2.Cells(i + kaishihang, 9) = Mid(arr9(0), InStr(arr9(0), ">") + 1)
Next i
Next m
Next h
Application.ScreenUpdating = True
n = Worksheets.Count
For i = 4 To n
Worksheets(i).Activate
历史数据
Next
End Sub
第四步,保存工作簿,并对该工作簿命名为1,然后复制该工作簿27份,把所有股票代码写入每一个工作簿第一个工作表的A3到A127列。然后根据第一步对工作簿内的工作表命名,并在每一个工作表A2单元格内写入股票代码。
第五步,把这些工作簿存放到炒股文件夹下的数据库文件下。然后在炒股文件夹下新建一个工作簿,命名为“一键更新表格”,写入如下代码:
Sub 所有股票历史数据更新()
Dim wb As Workbook
For i = 1 To 27
Set wb = Workbooks.Open(ThisWorkbook.Path & "数据库" & i & "".xlsb"")
Application.Run ""'"" & wb.Path & """" & i & "".xlsb'!所有股票历史数据获取""
wb.Save
wb.Close
Next i
End sub
当启动这一段代码以后,程序会自动一个一个的打开对应的工作簿然后获取里面所有股票的历史数据,存放在对应的工作表当中。
第六步,对相应的程序添加按钮,这样,我们在启动对应程序时,只需要点一下对应的按钮就可以实现了。这样,我们通过多个工作簿就实现了获取所有股票历史数据的方法。而后面,我们只需要通过获取对应股票每一天的历史数据,我们就能够在任意一天很快速的能够拥有所有股票的历史数据了。
注意事项
1、在后续需要对这些数据进行分析,里面会加入很多计算,所以启动所有历史数据更新时,我们应该要关闭自动更新。
2、因为历史数据很大,所以这里只获取四年的数据,想要获取更多数据,可以更改程序里面 “For h = 1 To 5”的那个5即可。
3、历史数据的获取需要较长的时间,要提前做好准备。
4、如果你想要弄清楚用EXCEL建立炒股系统的整套方法,请看后续内容。"
㈩ 股票公司的三大报表是什么样的
三大财务报表:资产负债表、利润表和现金流量表。
第四大报:
《企业会计准则第30 号———财务报表列报》第2条规定,财务报表是对企业财务状况、经营成果和现金流量的结构性表述,至少应当包括:资产负债表、利润表、现金流量表、所有者权益(股东权益)变动表、附注。在新会计咐吵准则及最新颁布的应用指南(征求意见稿)中,随着财务报表及附注格式地位的提高,原先在上市公蠢简指司定期报告全文中以资产负债表附表形式出现的股东权益变动表,一下子成为必须与资产负债表、利润表和现金流量表并列披露的第四张财务报表。
上市公带配司公布的报表最完整的是公布在上交所的网站上的,你可以去找一下,现在很多公司有年报出来.