第十部分 数组高级运算函数(高等数学与统计)【参数数组为正序,返回数组也为正序,适合做中间变量计算用】
  
- UID
- 2
- 积分
- 2954160
- 威望
- 1427117 布
- 龙e币
- 1527043 刀
- 在线时间
- 13879 小时
- 注册时间
- 2009-12-3
- 最后登录
- 2025-5-13

|
第十部分 数组高级运算函数(高等数学与统计)【参数数组为正序,返回数组也为正序,适合做中间变量计算用】
头文件声明变量:- //第十部分 数组高级运算函数(高等数学与统计)
- vector<double>SeriesSine(vector<double> pc); //数组元素进行正弦转化
- vector<double>SeriesPearsoncorrelationcoefficient(vector<double> pc1, vector<double>pc2, int num); //皮尔逊相关系数计算公式
复制代码 |
论坛官方微信、群(期货热点、量化探讨、开户与绑定实盘)
|
|
|
|
|
|
  
- UID
- 2
- 积分
- 2954160
- 威望
- 1427117 布
- 龙e币
- 1527043 刀
- 在线时间
- 13879 小时
- 注册时间
- 2009-12-3
- 最后登录
- 2025-5-13

|
公式模块增加:- //第十部分 数组高级运算函数(高等数学与统计)【参数数组为正序,返回数组也为正序】
- //皮尔逊相关系数计算公式【参数数组为正序,返回数组也为正序】
- vector<double> test::SeriesPearsoncorrelationcoefficient(vector<double> pc1, vector<double> pc2, int num)
- {
- //皮尔逊相关系数(Pearson correlation coefficient)设计
- //声明两个vector变量存入X,Y两组数据
- vector<double>X, Y;//两个容器变量存入相对应数据元素
- vector<double>avgX, avgY;//X,Y的平均值
- vector<double>covXY;//X,Y的协方差(covariance)
- vector<double>stdX, stdY;//X,Y标准差
- vector<double>Rxy;//相关系数
- //采集X数据元素
- X = pc1;
- //采集Y数据元素(Y与X数据不同品种合约,但是相同周期)
- Y = pc2;
- //求length周期X,Y的平均值
- avgX = SeriesAverage(X, num);//调用数组计算公式计算
- avgY = SeriesAverage(Y, num);//计算Y在length周期的平均数
- vector<double>x_avgx, y_avgy, covxy;
- x_avgx = SeriesMinus(X, avgX);//计算X[i] - avgX[i]
- y_avgy = SeriesMinus(Y, avgY);//计算Y[i] - avgY[i]
- covxy = SeriesTimes(x_avgx, y_avgy);//计算(x-avgx)*(y-avgy)
- covXY = SeriesSummation(covxy, num);//sumcovxy
- //计算X,Y各自的方差
- vector<double>x_avgxpow, y_avgypow;
- vector<double>sum_x_avgx, sum_y_avgy;
- vector<double>std_x_avgx, std_y_avgy, std_xy;
- x_avgxpow = SeriesPowerN(x_avgx, 2);//(X[i] - avgX)^2
- y_avgypow = SeriesPowerN(y_avgy, 2);//(Y[i] - avgY)^2
- sum_x_avgx = SeriesSummation(x_avgxpow, num);
- sum_y_avgy = SeriesSummation(y_avgypow, num);
- std_x_avgx = Seriessquareroot(sum_x_avgx);
- std_y_avgy = Seriessquareroot(sum_y_avgy);
- std_xy = SeriesTimes(std_x_avgx, std_y_avgy);
- //计算相关性
- Rxy = SeriesDivide(covXY, std_xy);//计算相关性
- return Rxy;
- }
- //Vector正弦值数组计算【参数数组为正序,返回数组也为正序】
- vector<double> test::SeriesSine(vector<double> pc)
- {
- vector<double>newvector;//声明新变量容器
- for (size_t i = 0; i < pc.size(); i++)
- {
- newvector.push_back(sin(pc[i]));//sin(x)
- }
- return newvector;
- }
- //第十部分 数组高级运算函数(高等数学与统计)【参数数组为正序,返回数组也为正序】
复制代码 |
|
|
|
|
|
|