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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → 仅刷新最后K线的逐K模式下禁止调用任何会造成2次重复运行的未来函数

   

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


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

主题:仅刷新最后K线的逐K模式下禁止调用任何会造成2次重复运行的未来函数

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


加好友 发短信
等级:论坛游侠 帖子:121 积分:0 威望:0 精华:0 注册:2012/5/23 4:51:48
仅刷新最后K线的逐K模式下禁止调用任何会造成2次重复运行的未来函数  发帖心情 Post By:2015/11/3 10:26:26 [显示全部帖子]

逐K模式,权刷新最后一根K线
RUNMODE:0; 
"STOCKFUNC@MYA"();


__declspec(dllexport) int WINAPI MYA(CALCINFO* pData)
{
*pData->m_pResultBuf = 0;
return 1;
}

老是跳出:仅刷新最后K线的逐K模式下禁止调用任何会造成2次重复运行的未来函数,请取消某某公式的未来函数调用,否则本公式将无法正常运行。

换成你们的
/*    //对于逐K线模式,的处理方式的示范代码
if(pData->m_pfParam1 && pData->m_pfParam2)
{
//对于逐K线模式,由于传递数据都是数值,因此需要一个数组用来保存传递过来的参数,用来计算.
//本例只是简单演示这个用法,如果用户在公式多次调用了接口,则会出现重复使用该变量导致计算出错
//因此要根据情况做几个这种全局静态变量用于保存各种数据。
static std::vector<double> arMaData;
//第一个周期初始化数据
if(pData->m_dwBarpos == 0)
{
arMaData.clear();
}
double dbData = *pData->m_pfParam1;

//防止使用仅刷最后K线的反复刷新问题
if(arMaData.size() >= pData->m_nNumData)
arMaData[arMaData.size()-1] = dbData; //仅仅更新最后一个数据
else
arMaData.push_back(dbData);

DWORD dwCyc = (DWORD) *pData->m_pfParam2;
if(pData->m_dwBarpos < dwCyc-1)
{
//对于未到计算周期,返回无效数据
return -1;
}

//先累加
float fAdd = 0;
for(DWORD i = pData->m_dwBarpos-(dwCyc-1); i <= pData->m_dwBarpos; i++)
{
fAdd += arMaData[i];
}

*pData->m_pResultBuf = fAdd / dwCyc;
}
return 1;*/
}

//计算多个序列的均值,5个参数,参数1-4为待求多个序列,参数5用于举例说明数值参数的用法,实际在此例中无需该参数
/*
调用方法:
MA1:=MA(CLOSE,3);
MA2:=MA(CLOSE,6);
MA3:=MA(CLOSE,12);
MA4:=MA(CLOSE,24);
MYBBI: "STOCKFUNC@MYBBI"(MA1, MA2, MA3, MA4, 4);
*/

也是同样的结果。请问如何解决?

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


加好友 发短信
等级:论坛游侠 帖子:121 积分:0 威望:0 精华:0 注册:2012/5/23 4:51:48
  发帖心情 Post By:2015/11/3 11:16:03 [显示全部帖子]

忘了RUNMODE() return 1;

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


加好友 发短信
等级:论坛游侠 帖子:121 积分:0 威望:0 精华:0 注册:2012/5/23 4:51:48
  发帖心情 Post By:2015/11/5 12:53:50 [显示全部帖子]

解决了。自己不小心。忘了。

 回到顶部