以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  示例dll函数不能正常显示效果  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=160224)

--  作者:xugjniu
--  发布时间:2017/12/7 11:22:53
--  示例dll函数不能正常显示效果

请教,

我使用软件自带的DLL示例,形成DLL文件,然后放入到软件下面目录的FmlDLL文件夹中,然后在软件中编辑指标,输入:D:"STOCKFUNC@MYMACLOSE"(5);主图叠加,序列计算。编译成功,双击这个指标后,主图上没有出现5日均线,怎么回事?


--  作者:yukizzc
--  发布时间:2017/12/7 13:03:32
--  

//DLL公式的运行模式,系统系统调用该DLL时,告知公式系统该DLL公式运行在何种模式下
//返回值:   0本DLL运行序列模式 1本DLL运行逐周期模式
__declspec(dllexport) int WINAPI RUNMODE()
{
 //本DLL运行序列模式,如果运行逐K线模式将此函数返回1,此时每执行一个K线都是调用本接口一次。
// return 1;
 return 0;
}

 

程序里return0表示用在序列模式下,你注释掉1的返回

 

另外确认下自己金字塔是32还是64位,你的dll编译也必须配套编译32还是64


--  作者:xugjniu
--  发布时间:2017/12/7 13:33:40
--  

您说到的几个问题

1、运行模式里面,return 1是注释掉的,也就是序列模式,这个示例就是这样,原封不动,都没有改

2、金字塔是32位的,编译器是mingw32-g++,是32位的

不知道是什么问题


--  作者:yukizzc
--  发布时间:2017/12/7 13:43:11
--  

你用我这边的编译吧

你那里编译如果有问题不知道什么原因了


图片点击可在新窗口打开查看此主题相关图片如下:duil0xm9@`h2qj@0~fjm~c.png
图片点击可在新窗口打开查看

--  作者:yukizzc
--  发布时间:2017/12/7 13:47:59
--  
这个dll
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:stockfunc.rar


--  作者:xugjniu
--  发布时间:2017/12/7 13:52:33
--  
搞定了,的确是编译器的问题,我之前使用的是code blocks的编译器,换成vc++的编译器搞定,谢谢。
--  作者:xugjniu
--  发布时间:2017/12/7 16:22:48
--  

示例里面的return nPeriod-1;和 return -1;有什么特别的意义吗?

以下是示例

__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;
}


--  作者:wangyongljl
--  发布时间:2018/10/13 19:52:58
--  

用dll引用函数,编译正常,运行在某些股票主图上正常,但是始终有某些股票显示错误:第N行,错误:解释错误

 

为了测试用了上面版主给的dll,引用函数编译正常,加载还是出现同样的如图问题,请版主帮忙确认下问题,感谢!

图片点击可在新窗口打开查看此主题相关图片如下:dll.png
图片点击可在新窗口打开查看

金字塔指标代码

TESE:"STOCKFUNC@MYMACLOSE"(5);

 

加载正常实例:


图片点击可在新窗口打开查看此主题相关图片如下:ok1.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:ok2.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:ok3.png
图片点击可在新窗口打开查看

 

加载报错实例:

图片点击可在新窗口打开查看此主题相关图片如下:error1.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:error2.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:error3.png
图片点击可在新窗口打开查看


--  作者:wangyongljl
--  发布时间:2018/10/13 22:01:19
--  
版本:32位 V4.81
--  作者:无为剑
--  发布时间:2018/10/13 22:28:04
--  
你是用的自带的范例未做任何修改然后运行出现的错误的?
这种错误一般是你的C++代码里出现了异常导致的,常见问题是无效指针或数组越界,建议你代码里加上日志调试一下看看