以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://222.73.7.161/bbs/index.asp) -- 公式模型编写问题提交 (http://222.73.7.161/bbs/list.asp?boardid=4) ---- 莫名其妙的金字塔 (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=8558) |
-- 作者:nk1m -- 发布时间:2011/10/22 16:38:09 -- 莫名其妙的金字塔 if barpos=1 then Bi:0; end dd:Bi,CIRCLEDOT;
想编个公式,才起个头,结果出现莫名其妙的错误: if(x-y>=4 and high[Shi-y]<low[Shi-x]) then |
-- 作者:nk1m -- 发布时间:2011/10/22 16:55:11 -- 工作模式用的是逐K线计算 |
-- 作者:阿火 -- 发布时间:2011/10/22 21:48:40 -- 莫名其妙的问题,没看说明书吧
x:=HHVbars(high,Shi);
这两句是不能放在 if ....then 语句内部的
其次 if.... then 的正确结构是 if (cond1 and cond2) then if 和 cond1 之间有空格存在的
而非:
if(x-y>=4 and high[Shi-y]<low[Shi-x]) then |
-- 作者:阿火 -- 发布时间:2011/10/22 21:50:42 -- 不过 if(x-y>=4) then 编译的时候可以通过测试,也可以加载运行,只是运行的结算结果错误。 可见,金字塔的语法检测不够严格吧,2.7版以上可能有改进 |
-- 作者:nk1m -- 发布时间:2011/10/23 12:24:46 -- if语句之内不能使用函数,大大限制金字塔公式平台的功能,确实有待改进。MT4,投资家等软件都没有这样的限制,看起来要编制复杂一些的公式,只能用DLL公式了,可惜不会编制,还需要进一步学习,在if语句内用函数,对于金字塔暂时还是幻想。 |
-- 作者:王锋 -- 发布时间:2011/10/23 12:29:34 -- 只是在逐K线模式下统计函数不能放在IF语句中,并不表示所有函数都不能在IF语句中,如果你非要在IF语句里使用统计函数,那么请使用序列模式. 此外逐K线模式下IF语句的统计函数,只要放在IF之外就可以了,根本不影响程序的编写和功能,只要注意一点就行了 http://www.weistock.com/bbs/dispbbs.asp?boardid=4&Id=332 问题8 |