以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (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=170335) |
-- 作者:小小草 -- 发布时间:2019/6/6 14:36:01 -- 请教问题出在哪。怎么改写代码。 序列计算模式下编写了一个指标系统。编译能通过,但是应用于图的时候就提示如下的此行错误:解释错误 该行代码如下:G:IF(K2=0&&K1=1&&REF(K1,1)=0,-3,IF(K1=0&&K2=1&&REF(K2,1)=0,+3,0)),NODRAW; 我仔细看了金字塔的说明,猜测问题可能出在。ref函数不能使用在if控制语句里,可是论坛里关于这点的说明是序列模式下可以。但是我在序列模式下,这个依然不行。编译能过。应用于图的时候就解释错误。请教问题出在什么地方。怎么改动。万分感谢。
|
-- 作者:小小草 -- 发布时间:2019/6/6 14:39:54 -- 另外,我将ref函数移出了If语句之外,改写成如下三行代码,依然不行。同样还是提示解释错误。改写后的如下: k3:=(K2=0)&&(K1=1)&&(REF(K1,1)=0); k4:=(K1=0)&&(K2=1)&&(REF(K2,1)=0); G:=IF(k3,-3,IF(k4,+3,0)); 求救,问题怎么解决 |
-- 作者:yukizzc -- 发布时间:2019/6/6 14:41:17 -- 请贴出其他相关代码,否者工作人员也没能力找问题 |
-- 作者:小小草 -- 发布时间:2019/6/6 14:45:07 -- K1:(C1<(A2-0.3*MINDIFF)&&C1<(A1-0.3*MINDIFF)&&C1<(A44-0.3*MINDIFF))||(C<=L40K&&N40K<10&&K40K1&&C<(A20-0.3*MINDIFF)&&C<(A40-0.3*MINDIFF)),NODRAW; //K2:C1>(A2+0.3*MINPRICE)&&C1>(A1+0.3*MINPRICE)&&KDC0,NODRAW; K2:(C1>(A2+0.3*MINDIFF)&&C1>(A1+0.3*MINDIFF)&&C1>(A44+0.3*MINDIFF))||(C>=H40D&&N40D<10&&K40D1&&C>(A20+0.3*MINDIFF)&&C>(A40+0.3*MINDIFF)),NODRAW; k3:=(K2=0)&&(K1=1)&&(REF(K1,1)=0); k4:=(K1=0)&&(K2=1)&&(REF(K2,1)=0); G:=IF(k3,-3,IF(k4,+3,0));
|
-- 作者:小小草 -- 发布时间:2019/6/6 14:49:20 -- k1 ,k2都是判断条件成立与否的参数而已。语句主要的问题是出在 G:IF(K2=0&&K1=1&&REF(K1,1)=0,-3,IF(K1=0&&K2=1&&REF(K2,1)=0,+3,0)),NODRAW; 金字塔软件反复提示的都是这行的解释错误。 请版主回答。一:在序列模式下,首先,这行的代码这样写没问题吧。序列模式下。ref函数能用在if语句里面吗? 二:if语句里能再嵌套if语句嘛?
|
-- 作者:小小草 -- 发布时间:2019/6/6 15:27:27 -- 把问题简单化吧。例如如下完整代码。序列模式下。主图叠加。编译能通过。但是应用于图。则依然是第七行,也就是最后一行解释错误。 A1:EMA(CLOSE,5); A2:EMA(CLOSE,34); A44:EMA(CLOSE,44); C1:=CLOSE; K1:(C1<(A2-0.3*MINDIFF)&&C1<(A1-0.3*MINDIFF)&&C1<(A44-0.3*MINDIFF)),NODRAW; K2:(C1>(A2+0.3*MINDIFF)&&C1>(A1+0.3*MINDIFF)&&C1>(A44+0.3*MINDIFF)),NODRAW; G:IF(K2=0&&K1=1&&REF(K1,1)=0,-3,IF(K1=0&&K2=1&&REF(K2,1)=0,+3,0)),NODRAW; 最后一行也就是G:IF(K2=0&&K1=1&&REF(K1,1)=0,-3,IF(K1=0&&K2=1&&REF(K2,1)=0,+3,0)),NODRAW; 问题出在哪? 将最后一行注释掉, //G:IF(K2=0&&K1=1&&REF(K1,1)=0,-3,IF(K1=0&&K2=1&&REF(K2,1)=0,+3,0)),NODRAW; 则正常了。可是我就是需要最后一行得到最终的判定条件啊 |
-- 作者:banzhuan -- 发布时间:2019/6/6 15:35:32 -- A1:EMA(CLOSE,5); A2:EMA(CLOSE,34); A44:EMA(CLOSE,44); C1:=CLOSE; K1:(C1<(A2-0.3*MINDIFF)&&C1<(A1-0.3*MINDIFF)&&C1<(A44-0.3*MINDIFF)),NODRAW; K2:(C1>(A2+0.3*MINDIFF)&&C1>(A1+0.3*MINDIFF)&&C1>(A44+0.3*MINDIFF)),NODRAW; G:IF(K2=0&&K1=1&&REF(K1,1)=0,-3,IF(K1=0&&K2=1&&REF(K2,1)=0,3,0)),NODRAW; [此贴子已经被作者于2019/6/6 15:35:41编辑过]
|
-- 作者:小小草 -- 发布时间:2019/6/6 15:38:55 -- 晕,就是一个加号的问题?汗。。谢谢版主。。是否出在if语句里,我的代码是+3.您去掉了加号。改为3 |
-- 作者:banzhuan -- 发布时间:2019/6/6 15:40:44 -- 对的,不要重复发帖,再一个贴中追问就行 |
-- 作者:小小草 -- 发布时间:2019/6/6 15:43:58 -- 谢谢。也就是if语句里实际上现在可以用ref函数了么。 |