以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  高级功能研发区  (http://weistock.com/bbs/list.asp?boardid=5)
----  怎样使用固定的周期数据?  (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=147859)

--  作者:bb523
--  发布时间:2017/2/16 18:22:03
--  怎样使用固定的周期数据?

__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分钟周期的收盘价应怎么替换这个地方?


--  作者:王锋
--  发布时间:2017/2/16 19:03:50
--  

这个DLL函数扩展协议没法做到这个的。你可以通过变相办法解决,就是在PEL中跨周期引用30分钟的收盘价数据,作为参数传递进来。


--  作者:bb523
--  发布时间:2017/2/17 8:55:30
--  
DLL可以引用PEL中的变量吗?这个应该怎能么写,我刚开始看C++的部分。
--  作者:王锋
--  发布时间:2017/2/17 9:32:20
--  
也不可以的,唯一的通讯方法就只能是作为参数传递到DLL中来。