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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → [求助]求救DLL,求金大神指点

   

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


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

主题:[求助]求救DLL,求金大神指点

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


加好友 发短信
等级:论坛游侠 帖子:109 积分:764 威望:0 精华:0 注册:2010/6/27 14:04:16
[求助]求救DLL,求金大神指点  发帖心情 Post By:2014/7/24 9:16:47 [只看该作者]

TCore::TCore( CALCINFO* pData,int x)
{
   if ( pData->m_pfParam1 &&  pData->m_nParam1Start<0 && //参数1有效且为常数  
  pData->m_pfParam2 &&  
  pData->m_pfParam3 &&  
  pData->m_pfParam4)
 {
 float fParam = *pData->m_pfParam1;
 slow= (int)fParam;
 float fParam1 = *pData->m_pfParam2;
 fast= (int)fParam1;
 float fParam2 = *pData->m_pfParam3;
 Mid= (int)fParam2;
 float fParam3 = *pData->m_pfParam4;
 MaSelect= (int)fParam3;
 }
      //数组初始化   
 DataLen=pData->m_nNumData;
      int realLen=DataLen+10;
 H.resize(realLen,0);
 L.resize(realLen,0);
 MidHL.resize(realLen,0);
      RstArray.resize(realLen,0);
 BL=6;

 B.resize(realLen,0);
 D.resize(realLen,0);
 Macd.resize(realLen,0);
 Diff.resize(realLen,0);
 Dea.resize(realLen,0);


 HB.resize(realLen,0);
 HD.resize(realLen,0);
 HMacd.resize(realLen,0);
 HDiff.resize(realLen,0);
 HDea.resize(realLen,0);

 HHB.resize(realLen,0);
 HHD.resize(realLen,0);
 HHMacd.resize(realLen,0);
 HHDiff.resize(realLen,0);
 HHDea.resize(realLen,0);

 //----------------------数组初始化     
 switch (MaSelect)
 {
 case 1:
  {
 initEmaData(pData,x);
  };
 case 2:;
 case 3:;
 default:;
 }


init emaData


void TCore::initEmaData( CALCINFO* pData,int x)
{
float factorB=2.0f/(fast+1.0f);
float factorD=2.0f/(slow+1.0f);
float factorHB=2.0f/(fast*BL+1.0f);
float factorHD=2.0f/(slow*BL+1.0f);
float factorHHB=2.0f/(fast*BL*BL+1.0f);
float factorHHD=2.0f/(slow*BL*BL+1.0f);

for(int i=0;i<DataLen;i++)
{
RstArray[i]=0;//类成员,临时结果缓存

H[i]=(pData->m_pData[i].m_fHigh);
L[i]=(pData->m_pData[i].m_fLow);


MidHL[i]=(H[i]+L[i])*0.5f;


if(i==0)
{
B[i]=MidHL[0];
D[i]=MidHL[0];
Diff[i]=B[i]-D[i];
Dea[i]=Diff[i];

HB[i]=MidHL[0];
HD[i]=MidHL[0];
HDiff[i]=HB[i]-HD[i];
HDea[i]=HDiff[i];

HHB[i]=MidHL[0];
HHD[i]=MidHL[0];
HHDiff[i]=HHB[i]-HHD[i];
HHDea[i]=HHDiff[i];
}
else
{      
float A=MidHL[i];
B[i]=B[i-1]+factorB*(A-B[i-1]);
D[i]=D[i-1]+factorD*(A-D[i-1]);
Diff[i]=B[i]-D[i];
float factorDea=2.0f/(Mid+1.0f);
Dea[i]=Dea[i-1]+factorDea*(Diff[i]-Dea[i-1]);
Macd[i]=2.0f*(Diff[i]-Dea[i]);

HB[i]=HB[i-1]+factorHB*(A-HB[i-1]);
HD[i]=HD[i-1]+factorHD*(A-HD[i-1]);
HDiff[i]=HB[i]-HD[i];
float factorHDea=2.0f/(Mid*BL+1.0f);
HDea[i]=HDea[i-1]+factorHDea*(HDiff[i]-HDea[i-1]);
HMacd[i]=2.0f*(HDiff[i]-HDea[i]);

HHB[i]=HHB[i-1]+factorHHB*(A-HHB[i-1]);
HHD[i]=HHD[i-1]+factorHHD*(A-HHD[i-1]);
HHDiff[i]=HHB[i]-HHD[i];
float factorHHDea=2.0f/(Mid*BL*BL+1.0f);
HHDea[i]=HHDea[i-1]+factorHHDea*(HHDiff[i]-HHDea[i-1]);
HHMacd[i]=2.0f*(HHDiff[i]-HHDea[i]);
}
}


if(x==-1)
{
for(int i=0;i<DataLen;i++)
{
L[i]=(100000-pData->m_pData[i].m_fHigh);
H[i]=(100000-pData->m_pData[i].m_fLow);

Diff[i]=-1*Diff[i];
Dea[i]=-1*Dea[i];
Macd[i]=-1*Macd[i];

HDiff[i]=-1*HDiff[i];
HDea[i]=-1*HDea[i];
HMacd[i]=-1*HMacd[i];

HHDiff[i]=-1*HHDiff[i];
HHDea[i]=-1*HHDea[i];
HHMacd[i]=-1*HHMacd[i];
}
}



extern "C" __declspec(dllexport) int WINAPI OPSUP(CALCINFO* pData)
{
   TCore Core(pData,1);
   Core.CalCore();
   for(int m=0;m<pData->m_nNumData;m++)
   {
  pData->m_pResultBuf[m] =Core.L[m];
   }
   return 0;
  Core.~TCore();

return -1;  
}


为什么core.L赋值每间隔几根就会不赋值,求金字塔大神解救!多谢!


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


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2014/7/24 9:59:49 [只看该作者]

有经验的编程人员会利用写文件日志的方式来调试你自己的代码



金字塔—专业程序化软件提供商

金字塔-技术部

-----------------------------------------------------------------------------------------------------

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
volersky
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:109 积分:764 威望:0 精华:0 注册:2010/6/27 14:04:16
  发帖心情 Post By:2014/7/24 10:50:08 [只看该作者]

那你能帮我看下,为什么会赋值有间隔?谢了

 回到顶部