欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → [求助]c++实现wma算法的问题

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有2388人关注过本帖树形打印复制链接

主题:[求助]c++实现wma算法的问题

帅哥哟,离线,有人找我吗?
lksj
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:41 积分:0 威望:0 精华:0 注册:2013/6/11 17:12:56
[求助]c++实现wma算法的问题  发帖心情 Post By:2017/3/6 11:05:50 [只看该作者]

实在没找到哪里有错误,但是实际计算出来的画的线与公式里写WMA(H,50)不一致,请问算法哪里有错?应如何修改?
以下内容为程序代码:

1 __declspec(dllexport) int WINAPI MYYGDC1(CALCINFO* pData)
2 {
3     if (CONFIRMLOCKINFO() == 0) //加密狗检测不合法
4         return 0;
5     if (pData->m_pfParam1 &&     //参数1有效
6         pData->m_nParam1Start >= 0                    //参数1为序列数
7         )
8     {
9         const float* pValue = pData->m_pfParam1;    //参数1
10         int nFirst = pData->m_nParam1Start;            //有效值起始位
11         float fParam = 50;            //参数2
12         int nPeriod = (int)fParam;
13         if (nFirst >= 0 && nPeriod > 0)
14         {
15             float fTotal;
16             int i, j;
17             for (i = nFirst + nPeriod - 1; i < pData->m_nNumData; i++)
18             {
19                 fTotal = 0.0f;
20                 float fSum = 0.0f;
21                 for (j = 0; j < nPeriod; j++) //累加
22                     fTotal += (pValue[i - j] * (j + 1));
23                 for (j = 1; j <= nPeriod; j++)
24                     fSum += j;
25
26                 pData->m_pResultBuf[i] = fTotal / fSum;//平均
27             }
28             return nFirst + nPeriod - 1;
29         }
30     }
31 }

[此贴子已经被作者于2017-3-6 11:06:11编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
lksj
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:41 积分:0 威望:0 精华:0 注册:2013/6/11 17:12:56
  发帖心情 Post By:2017/3/6 14:24:30 [只看该作者]

已解决问题

 回到顶部