以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  FILTERX 函数在逐K线模式下不能直接在IF控制语句之内引用  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=169598)

--  作者:m1978xz
--  发布时间:2019/4/26 15:11:51
--  FILTERX 函数在逐K线模式下不能直接在IF控制语句之内引用
错误提示:FILTERX 函数在逐K线模式下不能直接在IF控制语句之内引用

请问该怎么解决?


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



--  作者:FireScript
--  发布时间:2019/4/26 16:09:41
--  
 定义一个变量在if外部取到它的值,然后放在if里面调用。
--  作者:m1978xz
--  发布时间:2019/4/26 16:35:09
--  
感谢版主回复,但是我还没弄明白,比如下边这一段“

If fb1=0 and fb3=0 and fb5=0 and fb6 and fb7 then begin         
             pen:=s_direction*10+s_status;
              DRAWTEXT(h>0,s_czsc_low,\'p\'),colorwhite;
             FILTERX("p",i+1);
             DRAWTEXT(h>0,s_czsc_low,\'p\');
               end

第四句我理解是把之前第(i+1)根K线上输出的东西删掉,这个应该不是归零的意思吧?
比如我在前边(i+1)根K线顶部输出一个“顶”字。现在我让这个顶字不再出现。而不是归零吧。
而且在外部写一个变量,在if外部取到它的值,然后放在if里面调用。这个我不太理解怎么用。
比如应该在外部写个:pd:= FILTERX("p",i+1);
这样?然后在if中该怎么写呢?不能在其中某一行就写pd这个函数名吧?正确的格式应该是什么呢?





--  作者:wenarm
--  发布时间:2019/4/28 8:27:03
--  

FILTERX(条件,作用周期)。它是改变信号,不是改变字符串的。


--  作者:m1978xz
--  发布时间:2019/4/28 8:33:53
--  
谢谢版主回复,啥叫改变信号?让对应的那个值为零?还是变成无效数?
--  作者:m1978xz
--  发布时间:2019/4/28 8:35:46
--  
而且这个外部调用应该怎么做?

比如在If外边写  aa:=FILTERX("p",i+1);
然后在if里写aa=1;
这样行么?还是应该用别的写法?

--  作者:wenarm
--  发布时间:2019/4/28 8:37:48
--  

用法不对。第一个是条件。它只会改变条件。不会改变你要的字符串。

不是0就是1

例如:

FILTERX(CLOSE>OPEN,3)

[此贴子已经被作者于2019/4/28 8:38:01编辑过]

--  作者:m1978xz
--  发布时间:2019/4/28 8:39:02
--  
原来如此。我明白了。谢谢版主。
--  作者:m1978xz
--  发布时间:2019/4/28 9:04:52
--  
版主~那这个函数应该怎么在IF外边写,之后在IF内引用?
我不太清楚这个格式怎么写对的。

--  作者:wenarm
--  发布时间:2019/4/28 9:18:50
--  

很对函数必须放在if之外使用,保证其序列变量值的连续性。

然后再在判断语句中使用这个变量。