__declspec(dllexport) int WINAPI MYMACLOSE(CALCINFO* pData)
{
if ( pData->m_pfParam1 && //参数1有效
pData->m_nParam1Start<0 && //参数1为常数
pData->m_pfParam2==NULL ) //仅有一个参数
{
float fParam = *pData->m_pfParam1;
int nPeriod = (int)fParam; //参数1
if(nPeriod>0)
{
float fTotal;
int i, j;
for ( i = nPeriod-1; i < pData->m_nNumData; i++ )//计算nPeriod周期的均线,数据从nPeriod-1开始有效
{
fTotal = 0.0f;
for ( j = 0; j < nPeriod; j++ ) //累加
fTotal += pData->m_pData[i-j].m_fClose;
pData->m_pResultBuf[i] = fTotal/nPeriod; //平均
}
return nPeriod-1;
}
}
return -1;
}
---------------------------------------------------------
m_fClose是当前周期的收盘价,如果图表在5分钟周期,我要指定使用30分钟周期的收盘价应怎么替换这个地方?
这个DLL函数扩展协议没法做到这个的。你可以通过变相办法解决,就是在PEL中跨周期引用30分钟的收盘价数据,作为参数传递进来。