download 2008-1-19 14:46
请教各位公式高手
听说飞狐的公式平台非常强大,认真研究了几天,但有几问题一直无法解决:
variable:a=0;
a:a+1;
以上运算的结都为1,是否不支持"[b]迭代[/b]"?
if(barpos>datacount-30,c,[b]空值[/b])
只显示最后30天的收盘价,上面的[b]空值[/b]不知怎样才能表达??
[b]if c>hhv(h,0) then[/b] var1:(hhv(h,0)-llv(l,0))*0.618+hhv(h,0);
上面公式通不过,上网查了一下,说是条件语句不支持时间序列,这就奇怪了,不随时间改变的条件怎么建立交易系统,这怎么炒股???
可见,飞狐的公式平台只一大堆函数的集合,没有完整的条件、循环、迭代功能,本身不能表达交易思想,除非函数设计者已表达的.如果我说错了,欢迎指正!
如有冒犯之处,请原谅!
myxl4 2008-1-19 22:46
我也想如MA(C,X);中的X可以是函数,不知道能实现否?
股市浪子 2008-1-20 01:13
[quote]原帖由 [i]download[/i] 于 2008-1-19 14:46 发表 [url=http://bbs.fjfox.com/redirect.php?goto=findpost&pid=377022&ptid=43061][img]http://bbs.fjfox.com/images/common/back.gif[/img][/url]
听说飞狐的公式平台非常强大,认真研究了几天,但有几问题一直无法解决:
variable:a=0;
a:a+1;
以上运算的结都为1,是否不支持"迭代"?
if(barpos>datacount-30,c,空值)
只显示最后30天的收盘价,上面的空值不知 ... [/quote]
自己没掌握,先不要说三道四,好好看看《量化思路》及函数中的说明。
if(barpos>datacount-30,c,空值),不知你想要的空值是什么?如果可以是0,就写作:
if(barpos>datacount-30,c,0);
只显示最后30天的收盘价,也可以这样写:
CC:C;
A:=SETLBOUND(CC,DATACOUNT-30);
至于if c>hhv(h,0) then var1:(hhv(h,0)-llv(l,0))*0.618+hhv(h,0);语句,可以写成:
cc:=c;
hhh:=hhv(h,0);
if cc[SYSPARAM(1)]>hhh[SYSPARAM(1)] then var1:(hhh-llv(l,0))*0.618+hhh;
但实际上,C是永远不会大于hhv(h,0)(历史最高价)的。
download 2008-1-21 10:39
[quote]原帖由 [i]股市浪子[/i] 于 2008-1-20 01:13 发表 [url=http://bbs.fjfox.com/redirect.php?goto=findpost&pid=377068&ptid=43061][img]http://bbs.fjfox.com/images/common/back.gif[/img][/url]
自己没掌握,先不要说三道四,好好看看《量化思路》及函数中的说明。
if(barpos>datacount-30,c,空值),不知你想要的空值是什么?如果可以是0,就写作:
if(barpos>datacount-30,c,0);
只显示最后30天的收盘价, ... [/quote]
谢谢!
C是不会大于hhv(h,0),应是hhv(ref(h,1),0)才能成立.
cc:=c;
hhh:=hhv(ref(h,1),0);
if cc[SYSPARAM(1)]>hhh[SYSPARAM(1)] then var1:(hhh-llv(l,0))*0.618+hhh;
这确实是很好的变通方法,但我举这个例子不是针对指标,是为了说明系统本身没有这个功能,而这个功能明显是有用的
CC:C;
A:=SETLBOUND(CC,DATACOUNT-30);
这个写法我以前确实不会,但这个解决不了"空值"深刻的内涵,
能否帮我写出下面的公式,在一个指标里输出,因为条件是可以变化的,
if(barpos>(datacount-300) and barpos<(datacount-30),c*0.9,if(barpos>datacount-20,c*1.1,空值));
还有系统不支持迭代,现有的用for函数的变通方法,会使计算量大增,但迭代情况增多时会使公式难以编写,也难以解读.