以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 高级功能研发区 (http://weistock.com/bbs/list.asp?boardid=5) ---- [求助]c++实现wma算法的问题 (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=148661) |
-- 作者:lksj -- 发布时间:2017/3/6 11:05:50 -- [求助]c++实现wma算法的问题 实在没找到哪里有错误,但是实际计算出来的画的线与公式里写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 -- 发布时间:2017/3/6 14:24:30 -- 已解决问题 |