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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → [求助]金字塔编写dll函数无输出

   

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


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

主题:[求助]金字塔编写dll函数无输出

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


加好友 发短信
等级:新手上路 帖子:9 积分:0 威望:0 精华:0 注册:2015/5/12 18:56:28
[求助]金字塔编写dll函数无输出  发帖心情 Post By:2015/6/1 10:04:57 [只看该作者]

新手请教各路大侠,刚刚开始用c学习编写dll函数,源代码如下,

函数目的:实现顶底分型输出1,底分型输出-1,其他输出0;

在公式前端调用没有任何输出,请教斑竹和论坛编程高手帮忙分析如何正确显示,不胜感激!

 

_declspec(dllexport)  int WINAPI MYDING(CALCINFO* pData)
{
       //运行在逐k线模式下,
 
   float xg,xd,yg,yd,zg,zd;//定义三根k线高低点的变量
   int i;
   bool top,bot;
  if(pData->m_pfParam1 && pData->m_pfParam2==NULL && pData->m_nParam1Start<0)//这里不加这句是否可以,因为函数不需要参数?
  
  { for ( i =0; i < pData->m_nNumData-1; i++ )
   {    if(i<2)
        pData->m_pResultBuf[i]=0;
    if(i>=2 )
    {
    xg=pData->m_pData[i-2].m_fHigh;
    xd=pData->m_pData[i-2].m_fLow;//逐k模式,每根k线,完全执行一遍程序,并且返回结果在缓冲区。


                yg=pData->m_pData[i-1].m_fHigh;
    yd=pData->m_pData[i-1].m_fLow;

    zg=pData->m_pData[i].m_fHigh;//当下行情价格
    zd=pData->m_pData[i].m_fLow;

    top= yg>xg && yd>xd && zg<yg && zd<yd;//顶分型满足的条件,中间k线是最高的

                bot= xg>yg && xd>yd && zg>yg && zd>yd;//底分型满足的条件,中间k线是最低的

    if(top)
    pData->m_pResultBuf[i]=1;
       
    if(bot)
       pData->m_pResultBuf[i]=-1;
    
    else pData->m_pResultBuf[i]=0;
    }
  }  
    
  } 
 
 return -1;  
}
是否和变量存储有关?


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


加好友 发短信
等级:论坛游侠 帖子:121 积分:0 威望:0 精华:0 注册:2012/5/23 4:51:48
  发帖心情 Post By:2015/6/2 14:04:48 [只看该作者]

你这个程序是序列模式的,不是逐K模式的。
逐K模式返回是*pData->m_pResultBuf

版主评定:好评,获得7个金币奖励好评,获得7个金币奖励
(理由:奖励)
 回到顶部
帅哥哟,离线,有人找我吗?
东方居士
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:9 积分:0 威望:0 精华:0 注册:2015/5/12 18:56:28
  发帖心情 Post By:2015/6/2 17:18:12 [只看该作者]

好的非常感谢,对序列和逐k模式有迷惑,多谢指正!


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


加好友 发短信
等级:新手上路 帖子:9 积分:0 威望:0 精华:0 注册:2015/5/12 18:56:28
  发帖心情 Post By:2015/6/2 22:32:48 [只看该作者]

改完之后在最新的金字塔32位版本上,依然无函数返回值,新手请教什么原因?

_declspec(dllexport)  int WINAPI MYDING(CALCINFO* pData)
{
       //运行在逐k线模式下,
 
   float xg,xd,yg,yd,zg,zd;//定义三根k线高低点的变量
   int i;
   bool top,bot;
  for ( i =0; i < pData->m_nNumData-1; i++ )
   {    if(i<2)
        *pData->m_pResultBuf=0;
    if(i>=2 )
    {
    xg=pData->m_pData[i-2].m_fHigh;
    xd=pData->m_pData[i-2].m_fLow;//逐k模式,每根k线,完全执行一遍程序,并且返回结果在缓冲区。


                yg=pData->m_pData[i-1].m_fHigh;
    yd=pData->m_pData[i-1].m_fLow;

    zg=pData->m_pData[i].m_fHigh;//当下行情价格
    zd=pData->m_pData[i].m_fLow;

    top= yg>xg && yd>xd && zg<yg && zd<yd;//顶分型满足的条件,中间k线是最高的

                bot= xg>yg && xd>yd && zg>yg && zd>yd;//底分型满足的条件,中间k线是最低的

    if(top)
    *pData->m_pResultBuf=1;
       
    if(bot)
       *pData->m_pResultBuf=-1;
    
    else *pData->m_pResultBuf=0;//逐k模式下的返回值,是单个值存储,而不是序列模式的数组。
    }
    
    
  } 
 
 return -1;  
}


 回到顶部