真心谢谢楼上各位热心的朋友给我的教导。祝你们开心快乐。
关于那个求积的问题。我研究很久了。最后发现C++程序这部分是没有问题。出问题的地方在于和大智慧数据交接的地方
经过多次研究。发现求积和求和不同。求和可以把以往所有的数据相加。就算是以住第一次数剧出现为零也没关系,因为是累加。求积就不行了。它把以住所有的数据相乘,如果第一次数剧或第一次之前为零。。相乘的话,那是没用了。所以我们要找到第一次数剧不为零的地方。让程序从这个不为零的地方开始累乘.
比如第一次出现线1的位置是8.
-----------------------------这样就不行。
线1:ma(c,5)/ma(c,8);
nn:BARPOS-BARSSINCE(线1);-------------//事实上。这个数值求出来也是8
要求积的线:"fxjfunc@函数"(线1,nn);
-----------------------------这样就能求出这条线的累乘。
线1:ma(c,5)/ma(c,8);
要求积的线:"fxjfunc@函数"(线1,8);
难道输进去的变量,一定要是常数吗。不能用求出来的数值代替吗。
//-------------------------C++程序如下
__declspec(dllexport) int WINAPI IETWOVAR(const CALCINFO* pCalcInfo)
{
float f,fTotal;
int nPeriod,i,j;
const float* pValue;
if(pCalcInfo->m_pfParam1 &&
pCalcInfo->m_pfParam2 &&
pCalcInfo->m_nParam1Start>=0 &&
pCalcInfo->m_pfParam3==NULL)
{
pValue = pCalcInfo->m_pfParam1;
f = *pCalcInfo->m_pfParam2;
nPeriod=(int)f;
for(i=nPeriod-1;i<pCalcInfo->m_nNumData;i++)
{
fTotal = 1.0f;
for(j=nPeriod-1;j<=i;j++)
fTotal *= pValue[j];
pCalcInfo->m_pResultBuf[i] = fTotal;
}
return nPeriod;
}
}
---------------------------另我想再请教大家一个问题。
fTotal = 0.0f;
for(j=0;j<nPeriod;j++)
//累加
fTotal *= pCalcInfo->m_pStkData[i-j].m_fVolume;
pCalcInfo->m_pResultBuf[i] = fTotal
我想求fTotal的平方根,用什么表达式实现
就是求
fTotal^2