在股票投资分析技术里,衡量股票投资与回报的工具有很多,其中最基础的是平均回报率(均值)和平均波动率(标准差)。
本程序通过c++编程将股票数据导入,计算股票日平均回报率以及日标准差,以衡量股票在一段时间内的回报与风险(波动)。平均回报率越高说明股票收益越高,标准差越大则说明股票波动越大风险越大。
均值公式:
X = (X₁ + X₂ + ··· + Xn)/n
标准差公式:
s = {[(X₁-X)2 + (X₂-X)2 + ··· + (Xn-X)2]/n}½
txt文件为股票数据,代码在word里头。数据来源在yahoo finance, 朋友们也可以通过通达讯,同花顺等软件导出数据再导入编译器进行分析。
之前银行股涨幅巨大,因此分析数据我选取了中国银行2014.11.14-2015.2.13期间的数据作为分析对象,数据来源于yahoo finance, 朋友们也可以通过通达信,同花顺等软件导出数据进行分析。
注:股票数据要复制到txt文件里头,最后一行不要有空格,txt文件要和cpp文件放在同一个目录下面,文件名不要更改,这样编译器才能读取txt文件里头的股票数据。
代码如下:
本帖隐藏的内容
本帖隐藏的内容
- //中国银行股票投资回报与风险分析 -by Freddy
- #include <iostream>
- #include <fstream>
- #include <vector>
- #include <cmath>
- using namespace std;
- vector<double> x;
- double mx_fun(vector<double> x, double mx)
- { mx=0.0;
- for (int i=0;i<x.size();i++){
- mx+=x[i]/x.size();
- }
- return mx;
- }
-
- double vx_fun(vector<double> x, double vx, double mx)
- { vx=0.0;
- for (int i=0;i<x.size();i++){
- vx+=pow(x[i]- mx_fun(x,mx),2)/(x.size()-1);
- }
- return vx;
- }
-
-
-
- int main(){
- ifstream source1("bank of china.txt");
-
- double a;
- if (source1.is_open()){
- while(!source1.eof()){
- source1 >> a;
- x.push_back(a);
- }
- source1.close();
- }
- double beta=0.0,mx=0.0, my=0.0,vx=0.0,vy=0.0;
-
-
- double mean= mx_fun(x, mx);
- double var=vx_fun(x,vx, mx);
-
-
- double sdv=sqrt(var);
-
- cout<< "The average return of Bank of china is : " << mean<<endl;
- cout<<"The volatility(standard deviation) of Bank of china is : "<< sdv <<endl;
-
-
- return 0;
-
- }