以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  菜鸟请教一个简单问题  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=51739)

--  作者:伍铁木
--  发布时间:2013/5/7 9:20:55
--  菜鸟请教一个简单问题
RUNMODE:1;
cc:BARPOS,linethick0;
n:=0;
IF BARPOS = 2 THEN
    n:=1;
BB:n; 

序列模式,第二根k线n=1.为何BB输出的一直为0
难道语句
IF BARPOS = 2 THEN
    n:=1;
不起作用?

--  作者:jinzhe
--  发布时间:2013/5/7 9:32:25
--  

改成逐k线模式,runmode:0,

序列只计算最后k线,逐k线计算每一根k线


--  作者:伍铁木
--  发布时间:2013/5/8 8:00:39
--  

版主早上好,我的疑惑是:

我把公式写成这样:

RUNMODE:1;
ma10:=ma(c,10);
ma30:=ma(c,30);
IF(ma10>ma30,1,5);

序列只解析最后k线,如下图


图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看

1.最后一根K线时,ma10是小于ma30的,按最后一根K线计算的话,副图公式tt应该一直输出的是5.可实际上不是,是按ma10是大于或小于ma30分别输出1或5的

2.而且上面的公式改成逐K输出没有任何变化,就是说这个公式序列和逐K没任何区别,这如何解释?

3.希望版主详细解释下,谢谢


 


--  作者:jinzhe
--  发布时间:2013/5/8 9:05:04
--  

RUNMODE:1;
ma10:=ma(c,10);
ma30:=ma(c,30);
n:=0;
if ma10>ma30 then n:=1;
n;

 

这么改,才是和你所说的是一个问题,n:=0这个在序列中全部定义好了,所以只在最后根k线判断n

 


--  作者:伍铁木
--  发布时间:2013/5/8 10:50:54
--  

RUNMODE:1;
ma10:=ma(c,10);
ma30:=ma(c,30);
IF(ma10>ma30,1,5);

我只想了解,为何最后不是一直输出5?


--  作者:jinzhe
--  发布时间:2013/5/8 11:02:20
--  
if 这个函数会在每根k线上做出判断,而直接:=就是最后根k线计算了
--  作者:伍铁木
--  发布时间:2013/5/8 22:56:35
--  

说实话,还是不太明白.

不只是IF函数的问题,在飞弧里,很多条件选股公式都是每根K线做出判断的.而不是最后一根K线来计算的.而飞弧就是序列模式.

如果说序列模式只是计算最后一根K线,那飞弧的所有选股公式岂不是都选不了股了?因为只算最后一根K线啊.中间的K线就没有信号了.

实际情况是飞弧的中间K线都有信号.而飞弧是序列模式(公式可复制到金字塔序列模式里运行),这岂不是矛盾了?

 


--  作者:王锋
--  发布时间:2013/5/8 23:03:20
--  
IF BARPOS = 2 THEN
这类的语法你在飞狐上是无法执行的,建议你多看看金字塔的编程手册

--  作者:伍铁木
--  发布时间:2013/5/8 23:09:53
--  

飞弧里这个语句IF(ma10>ma30,1,5);是可以运行的

楼上说的

IF BARPOS = 2 THEN

是不能运行,这我知道.

我就是弄不懂"序列模式只是计算最后一根K线",而序列模式运行的飞弧里,很多条件选股公式都是每根K线做出判断的

这不是矛盾吗?

金字塔的编程手册我细看过,就是不理解才在这里问的.

版主的贴深度理解金字塔公式系统的工作机理  ,我也看了


--  作者:fly
--  发布时间:2013/5/9 9:53:51
--  

(1)

RUNMODE:1;
cc:BARPOS,linethick0;
b1:if(BARPOS =datacount,1,0),linethick0;//if(BARPOS =datacount,1,0)函数是每根K线都会做判断,都会执行的.--该函数返回值跟BARPOS一样,是序列变量

 

(2)

RUNMODE:1;
cc:BARPOS,linethick0;

n:=0;

IF BARPOS = datacount THEN                 //只在最后一根K线上执行一次控制语句解析
    n:=1;
BB:n;

 

程序对控制语句