以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://www.weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://www.weistock.com/bbs/list.asp?boardid=4)
----  昨天在QQ群问了客服一个问题还没有得到解答  (http://www.weistock.com/bbs/dispbbs.asp?boardid=4&id=30655)

--  作者:sven0321
--  发布时间:2012/11/15 8:39:21
--  昨天在QQ群问了客服一个问题还没有得到解答

我编了一段小代码想测试extgbdata 和extgbstring 用的图表模式测试的 品种是CF00

 

extgbdataset(\'a1\',0);

 

if extgbdata(\'a1\')=0 then begin
extgbdataset(\'a1\',extgbdata(\'a1\')+1);

end;


if extgbdata(\'a1\')=1 then begin
EXTGBSTRINGSET( \'多头品种\',stklabel);
end;

 

if EXTGBSTRING(\'多头品种\')= "CF00" then begin
EXTGBSTRINGSET( \'多头品种\',\'ax00\');
end;

 

a4:extgbstring(\'多头品种\'),linethick0;

drawtext(1,100,a4);

a2:extgbdata(\'a1\'),linethick0;

 

按照我的想法是 DRAWTEXT的显示 应该是AX00 可是结果是CF00也就是当前的STKLABEL 通过单步调试 上面代码红色部分 IF判断条件不成立 直接跳过了 我很疑惑 不知道问题是在哪


--  作者:jinzhe
--  发布时间:2012/11/15 9:18:16
--  

工作人员测试中,请稍候


--  作者:董小球
--  发布时间:2012/11/15 9:25:48
--  
extgbdata 这种全局变量是一个单一数值的变量,如果你在图表交易中使用,并且作为下单信号的判断条件的话,他的变化会不断影响你的历史信号。


另外,你的红色语句无效是因为你不能用 =来判断字符串,只有数值才能用=来判断是否相等
EXTGBSTRING(\'多头品种\')= "CF00"   

对于字符串应该用STRCMP函数来比较

下面这么写,就对了:
if STRCMP(EXTGBSTRING(\'多头品种\') , \'CF00\')=0 then begin
EXTGBSTRINGSET( \'多头品种\',\'ax00\');
end;

--  作者:jinzhe
--  发布时间:2012/11/15 9:32:26
--  哪次数据更准确可靠?

""是引用

 

可以在公式里面进行如下修改

nn:=stklabel;
 

if EXTGBSTRING(\'多头品种\')= nn then begin
EXTGBSTRINGSET( \'多头品种\',\'ax00\');
end

 

 

可以得到预期的结果


--  作者:jinzhe
--  发布时间:2012/11/15 9:33:13
--  

这样的公式问题不要在群里问客服,此类的公式问题统一在论坛上处理


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


--  作者:sven0321
--  发布时间:2012/11/15 13:09:22
--  
嗯 懂了 多谢楼上2位的解答