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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → 软件调用策略速度太慢问题

   

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


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

主题:软件调用策略速度太慢问题

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


加好友 发短信
等级:管理员 帖子:2437 积分:0 威望:0 精华:0 注册:2016/3/5 22:53:41
  发帖心情 Post By:2019/9/16 16:43:35 [显示全部帖子]

1,不清楚你是否是以序列模式还是逐K线模式调用的DLL,因为如果是逐K线模式的,你的DLL也必须设计成逐K的对应模式
2,你记录的CPU时钟周期是用什么记录的,如果是TXT文本等方式记录的,本身记录这些也需要时间的

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


加好友 发短信
等级:管理员 帖子:2437 积分:0 威望:0 精华:0 注册:2016/3/5 22:53:41
  发帖心情 Post By:2019/9/16 21:44:46 [显示全部帖子]

我前面解释过了,你用fprintf打印日志时也是需要时间的

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


加好友 发短信
等级:管理员 帖子:2437 积分:0 威望:0 精华:0 注册:2016/3/5 22:53:41
  发帖心情 Post By:2019/10/14 14:35:12 [显示全部帖子]

经过我们内部测试,测试程序如下:

//计算收盘价的均价,一个常数参数,表示计算周期
//调用方法:
// "STOCKFUNC@MYMACLOSE"(5)
DWORD dwStart;
FILE *fp;
__declspec(dllexport) int WINAPI MYMACLOSE(CALCINFO* pData)
{
 if ( pData->m_pfParam1 &&    //参数1有效
   pData->m_nParam1Start<0 &&   //参数1为常数
   pData->m_pfParam2==NULL )   //仅有一个参数
 {
  if (pData->m_dwBarpos == 0)
   
  {
   
   fp = fopen( "d:\\mytest.txt", "w" );
   dwStart = ::GetTickCount();
   
   fprintf(fp, "%lld\n", dwStart);
   
  }
  
  pData->m_pResultBuf[0] = 0;
  
  if (pData->m_dwBarpos == pData->m_nNumData - 1)
   
  {
   
   DWORD dwEnd = ::GetTickCount();
   
   fprintf(fp, "%lld, %lld\n", dwEnd,
    
    (dwEnd - dwStart));
   fclose( fp );
   
  }
 }
 return -1;
}

由于每次测试的结果只都有所不同,大致取中位数如下:
当K线数量为 34000根时 406ms  当为4000根时  47ms, 其中5ms为fprintf写盘时间,测试机器 I7 8750
测试结果大致为你前面的一半,并未达到800ms以上,建议你测试时关闭所有图表的公式,逐k运行时其他的pel公式也会影响本pel公式运行。

有关你提到的效率问题,做如下回答:
逐K线模式运行时,每根K线都会去对PEL运行引擎做计算调用操作,406ms的计算时间,其中有350ms均消耗在此,其他的50ms是计算前的初始化和计算后的数据处理消耗。
3万4千根K线的调用DLL裸计算速度为400ms这个效率对于PEL来说后面也没什么太多空间了,运行卡顿主要消耗点应该还是在你的DLL策略本身,建议您对你的DLL做效率优化。如果你的策略对于这3万4千根k350ms的计算消耗非常在意,你可以考虑直接使用我们金字塔提供的C++开发接口,直接调用我们提供的数据API和下单API来直接交易。
参考 

使用金字塔C++ API开发策略的优势
http://www.weistock.com/bbs/dispbbs.asp?boardid=5&Id=11548

 回到顶部