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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → stockfunc.dll 的问题

   

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


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

主题:stockfunc.dll 的问题

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


加好友 发短信
等级:新手上路 帖子:27 积分:260 威望:0 精华:0 注册:2010/1/14 10:32:46
stockfunc.dll 的问题  发帖心情 Post By:2011/10/31 17:01:37 [显示全部帖子]

管理员能否看看 一下代码有什么问题吗

 

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

int mRSX(double Buffer[],int Lengh,double JRSX_Bufer[])
{
 //---暂时省略xx

 return 0;
}


__declspec(dllexport) int WINAPI MJRSX(CALCINFO* pData)
{
 if ( pData->m_pCalcParam[1].m_nParamStart >= 0)
 {  
  int Length=(int)pData->m_pCalcParam[1].m_pfParam[0];  
  int count=pData->m_nNumData;

  const float* pValue1 = pData->m_pCalcParam[0].m_pfParam;

  double *input=new double[count];
  double *output=new double[count];

  for (int i=0;i<count;i++)
  { input[i]=(double)pValue1[i]; }  

  int cond=mRSX(input,Length,output);

  if (cond==0)
  {
   for (int i=0;i<count;i++)
   {   
    pData->m_pResultBuf[i]=(float)output[i];     
   }   
  }

  delete []input;
  delete []output;
  return 1;
 }
 return -1;
}


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


加好友 发短信
等级:新手上路 帖子:27 积分:260 威望:0 精华:0 注册:2010/1/14 10:32:46
  发帖心情 Post By:2011/11/1 1:39:08 [显示全部帖子]

数据大部分时间不能显示 修改参数后有时能显示默认参数的结果 但是其他参数的结果无效

 

而且按键盘下键增加和减少数据时 计算出得结果会变化或者错误


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


加好友 发短信
等级:新手上路 帖子:27 积分:260 威望:0 精华:0 注册:2010/1/14 10:32:46
  发帖心情 Post By:2011/11/1 13:43:41 [显示全部帖子]

请给个qq

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


加好友 发短信
等级:新手上路 帖子:27 积分:260 威望:0 精华:0 注册:2010/1/14 10:32:46
  发帖心情 Post By:2011/11/2 9:23:34 [显示全部帖子]

stockfunc.h 部分

__declspec(dllexport) int WINAPI MJRSX(CALCINFO* pData);

 

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

 

stockfunc.cpp 部分

 

int mRSX(double Buffer[],int Lengh,double JRSX_Bufer[])
{
 int    shift,r,w,k,Tnew,counted_bars,T0,T1;

 double v4,v8,v10,v14,v18,v20,v0C,v1C,v8A;  
 double F28,F30,F38,F40,F48,F50,F58,F60,F68,F70,F78,F80;
 double f0,f28,f30,f38,f40,f48,f50,f58,f60,f68,f70,f78,f80,Kg,Hg;

 if (Lengh-1>=5)w=Lengh-1;else w=5; Kg=3/(Lengh+2.0); Hg=1.0-Kg;

 for (shift=0;shift<sizeof(Buffer);shift++)
 {
  if (r==0)
  {
   r = 1; k = 0;
  }
  else
  {
   if (r>=w) r=w+1; else r=r+1;

   v8 = Buffer[shift]-Buffer[shift-1]; v8A=abs(v8);

   f28 = Hg  * f28 + Kg  *  v8;
   f30 = Kg  * f28 + Hg  * f30;
   v0C = 1.5 * f28 - 0.5 * f30;
   f38 = Hg  * f38 + Kg  * v0C;
   f40 = Kg  * f38 + Hg  * f40;
   v10 = 1.5 * f38 - 0.5 * f40;
   f48 = Hg  * f48 + Kg  * v10;
   f50 = Kg  * f48 + Hg  * f50;
   v14 = 1.5 * f48 - 0.5 * f50;

   f58 = Hg  * f58 + Kg  * v8A;
   f60 = Kg  * f58 + Hg  * f60;
   v18 = 1.5 * f58 - 0.5 * f60;
   f68 = Hg  * f68 + Kg  * v18;
   f70 = Kg  * f68 + Hg  * f70;
   v1C = 1.5 * f68 - 0.5 * f70;
   f78 = Hg  * f78 + Kg  * v1C;
   f80 = Kg  * f78 + Hg  * f80;
   v20 = 1.5 * f78 - 0.5 * f80;

   if ((r <= w) && (v8!= 0)) k = 1;
   if ((r == w) && (k == 0)) r = 0;
  }
  if ((r >  w) &&(v20 > 0.0000000001 ))
  {
   v4 = (v14/v20+1.0)*50.0; if(v4>100.0)v4=100.0; if(v4<0.0)v4=0.0;
  }
  else  v4 = 50.0;
  JRSX_Bufer[shift]=v4;

 }

 return 0;
}


__declspec(dllexport) int WINAPI MJRSX(CALCINFO* pData)
{
 if ( pData->m_pCalcParam[1].m_nParamStart >= 0)
 {  
  int Length=(int)pData->m_pCalcParam[1].m_pfParam[0];  
  int count=pData->m_nNumData;

  const float* pValue1 = pData->m_pCalcParam[0].m_pfParam;

  double *input=new double[count];
  double *output=new double[count];

  for (int i=0;i<count;i++)
  { input[i]=(double)pValue1[i]; }  

  int cond=mRSX(input,Length,output);

  if (cond==0)
  {
   for (int i=0;i<count;i++)
   {   
    pData->m_pResultBuf[i]=(float)output[i];     
   }   
  }

  delete []input;
  delete []output;
  return 1;
 }
 return -1;
}


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


加好友 发短信
等级:新手上路 帖子:27 积分:260 威望:0 精华:0 注册:2010/1/14 10:32:46
  发帖心情 Post By:2011/11/2 10:47:52 [显示全部帖子]

似乎也很复杂啊

 

谢谢~


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


加好友 发短信
等级:新手上路 帖子:27 积分:260 威望:0 精华:0 注册:2010/1/14 10:32:46
  发帖心情 Post By:2011/11/2 11:30:05 [显示全部帖子]

Error 19 error C2065: 'CFileStatus' : undeclared identifier Z:\FmlDevelope\StockFunc.cpp 1347 1 StockFunc

似乎还缺少 头文件吧。。 能看看是什么吗


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


加好友 发短信
等级:新手上路 帖子:27 积分:260 威望:0 精华:0 注册:2010/1/14 10:32:46
  发帖心情 Post By:2011/11/9 11:12:59 [显示全部帖子]

实在搞不懂了 很简单的ma 还是没输出

 

int mMA(double input[],int Length,double output[])
{

 for (int i=0;i<Length-1;i++)
 {
  output[i]=0;
 }

 for (int i=0;i<sizeof(input)-Length+1;i++)
 {
  double tmp=0;
  for (int j=0;j<Length;j++)
  {
   tmp+=input[i+j];
  }
  output[i+Length-1]=tmp/Length;
  
 }

 return 0;
}

 

 

__declspec(dllexport) int WINAPI MMA(CALCINFO* pData)
{
 if ( pData->m_pCalcParam[1].m_nParamStart >= 0)
 {  
  int Length=(int)pData->m_pCalcParam[1].m_pfParam[0];  
  int count=pData->m_nNumData;

  const float* pValue1 = pData->m_pCalcParam[0].m_pfParam;

  double *input=new double[count];
  double *output=new double[count];

  for (int i=0;i<count;i++)
  { input[i]=(double)pValue1[i]; }  

  int cond=mMA(input,Length,output);

  if (cond==0)
  {
   for (int i=0;i<count;i++)
   {   
    pData->m_pResultBuf[i]=(float)output[i];     
   }   
  }

  delete []input;
  delete []output;
  return 0;
 }
 return -1;
}

[此贴子已经被作者于2011-11-9 11:13:12编辑过]

 回到顶部