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

|
第九部分 指标函数计算【参数数组为正序,返回数组也为正序,适合做中间变量计算用】
头文件声明变量:- //第九部分 指标函数计算(开始)【参数数组为正序,返回数组也为正序】
- vector<double>SeriesRSI(vector<double> pc, int num); //数组型RSI计算公式
- //指标函数计算(结束)
复制代码 |
论坛官方微信、群(期货热点、量化探讨、开户与绑定实盘)
|
|
|
|
|
|
  
- UID
- 2
- 积分
- 2954160
- 威望
- 1427117 布
- 龙e币
- 1527043 刀
- 在线时间
- 13879 小时
- 注册时间
- 2009-12-3
- 最后登录
- 2025-5-13

|
公式模块增加:- //第九部分 指标函数计算(开始)【参数数组为正序,返回数组也为正序】
- //RSI(相对强弱指数)设计【参数数组为正序,返回数组也为正序】
- vector<double> test::SeriesRSI(vector<double> pc, int num)
- {
- vector<double>cp1, p1_p2, u_p, d_p;//容器变量存入相对应数据元素
- //采集close数据元素
- cp1 = pc;
- //计算close[1]
- vector <double>c1;
- c1 = SeriesForwardref(cp1, 1);
- //计算close - close[1]
- p1_p2 = SeriesMinus(cp1, c1);
- for (size_t i = 0; i < cp1.size(); i++)
- {
- u_p.push_back(iff(p1_p2[i] > 0, p1_p2[i], 0));
- d_p.push_back(iff(p1_p2[i] < 0, abs(p1_p2[i]), 0));
- }
- //取平均,默认是14周期
- vector<double>sum_u, sum_d;
- ////wilder
- //sum_u = SeriesWilderSmoothingMethod(u_p, 14);
- //sum_d = SeriesWilderSmoothingMethod(d_p, 14);
- sum_u = SeriesSMA(u_p, num, 1);
- sum_d = SeriesSMA(d_p, num, 1);
- //计算RS
- vector<double>RS;
- RS = SeriesDivide(sum_u, sum_d);
- //计算RSI
- vector<double>rs1, rs2, rs3, RSI;
- rs1 = SeriesPlusN(RS, 1);//RS+1
- rs2 = SeriesNDivide(100, rs1);//100/(RS+1)
- RSI = SeriesNMinus(100, rs2);//100 - 100/(RS+1)
- return RSI;
- }
- //第九部分 指标函数计算(开始)【参数数组为正序,返回数组也为正序】
复制代码 |
|
|
|
|
|
|