以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  高级功能研发区  (http://weistock.com/bbs/list.asp?boardid=5)
----  公式放在图表中与公式在测试中,执行不同,请问原因。  (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=78789)

--  作者:a809011310
--  发布时间:2015/5/20 10:38:12
--  公式放在图表中与公式在测试中,执行不同,请问原因。

__declspec(dllexport) int WINAPI MYA(CALCINFO* pData)

{

if (pData->m_pfParam1)
  MessageBoxA(0, "语句0", 0, 0);
else
  MessageBoxA(0, "语句1", 0, 0);

}

 

有公式A:

"StockFunc"@MYA"(H);

"StockFunc"@MYA;

 

在图表中此公式,执行语句0,再执行语句1。

在测试中此公式,只执行语句1。也就是说,在测试中,跳过了语句0,敢问,这是不是BUG?



--  作者:a809011310
--  发布时间:2015/5/20 10:42:33
--  

别说没加return 0;不可能把所有代码全抄过来。


--  作者:王锋
--  发布时间:2015/5/20 10:48:57
--  
你代码有逻辑问题吧,if (pData->m_pfParam1) 这样做地址指针比较,有何意义?
--  作者:a809011310
--  发布时间:2015/5/20 11:02:18
--  

if(pData->m_pfParam1 && pData->m_pfParam2)

 

如果我的代码有逻辑问题。那请问这句有没有逻辑问题?这是你们自己的代码。

还有,if(pData->m_pfParam1),是指若pData->m_pfParam1!=NULL则为真。


--  作者:王锋
--  发布时间:2015/5/20 11:11:23
--  

图标显示和测试最大的不同就是图标你通常只加载少量数据,而测试你是加载大量数据。

如果你自行无法找出原因,请将你的项目工程压缩一下传到论坛,我们帮你看看


--  作者:a809011310
--  发布时间:2015/5/20 12:47:01
--  

/*对于逐K线模式,的处理方式的示范代码
 if(pData->m_pfParam1 && pData->m_pfParam2)
 这是你们的代码。如果if (pData->m_pfParam1) 有问题,那么这句呢?

此句的含义是指针!=NULL则为真。C++的指针,若不=0则指向了某个地址。指针一旦分配内存就不等于0了。NULL就是0.


--  作者:a809011310
--  发布时间:2015/5/20 12:56:09
--  

大哥,指针==NULL既为空,否则 非空。

 /*对于逐K线模式,的处理方式的示范代码
 if(pData->m_pfParam1 && pData->m_pfParam2) 这是你们的代码。

 

若说if(pData->m_pfParam1)有逻辑错误,我只能无语。


--  作者:a809011310
--  发布时间:2015/5/20 13:00:21
--  

我测试是用的IF1506的日线,没几根K线。你们可以自己写一下的,很简单的,试一下就知道了。从3月8日到今天,一共91根K线。


--  作者:a809011310
--  发布时间:2015/5/20 13:09:34
--  

__declspec(dllexport) int WINAPI MYA(CALCINFO* pData)

{

if (pData->m_pfParam1)
  MessageBoxA(0, "语句0", 0, 0);
else
  MessageBoxA(0, "语句1", 0, 0);

return 0;

}

 

有公式A逐K模式:

"StockFunc@MYA"(H);

"StockFunc@MYA";

 

工程代码全在这里了。压缩没必要吧。


--  作者:a809011310
--  发布时间:2015/5/20 15:26:39
--  

__declspec(dllexport) int WINAPI MYA(CALCINFO* pData)

{

if (pData->m_pfParam1)
  MessageBoxA(0, "语句0", 0, 0);
else
  MessageBoxA(0, "语句1", 0, 0);

return 0;

}

 

有逐K公式A:

"StockFunc@MYA"(H);

"StockFunc@MYA";