今天通过朋友介绍尝试使用了一下金字塔这个软件,感觉开发人员在模仿国内主流软件上下了很多的功夫,而且让我比较欣赏的是在功能上进行了一些扩展,但是有几个小问题希望管理员能解答一下。首先请看下面一个很小的程序
cc:c,linethick0;
for i=2 to datacount do
begin
if cc[i] > cc[i-1] then
begin
cc[i-1]:=1;
end;
else
begin
cc[i-1]:=-1;
end;
end;
cc;
这个程序在金字塔上运行很慢,初步估计大概是要1分多钟吧,而在同样数据量的飞狐上很快就计算出结果了。我用的是金字塔决策1.96版!
后来经过研究,感觉金字塔对于向前赋值的处理速度很慢,甚至有些情况下提示出现语法错误(就是满足某一条件时对某一变量赋完值后,在另一条件满足后需要对前面赋过值的变量进行重新赋值时提示出现语法错误,而这些语句在飞狐上完全正确,该指标可以运行)。
不知开发人员是否注意到这个问题,是否已经找到原因了,是否已经有所改进。
ps:我现在是1.96版本
这个帖子可以给你圆满的答案
http://www.weistock.com/bbs/dispbbs.asp?boardid=4&Id=40&page=12
由于目前金字塔是以期货的自动交易为主要的发掌方向,所有公式系统的架构与飞狐不同,为了完成更多的功能,只能在效率上做出牺牲.
这个问题只能等日后逐渐解决,后面100%兼容飞狐,肯定是金字塔未来的大方向
谢谢管理员 但是还是没有回答我后面的情况——“甚至有些情况下提示出现语法错误(就是满足某一条件时对某一变量赋完值后,在另一条件满足后需要对前面赋过值的变量进行重新赋值时提示出现语法错误,而这些语句在飞狐上完全正确,该指标可以运行)”。
可能是我的描述不是很精确。我明天写做一个测试指标后再和你讨论吧,谢谢。
麻烦看一下下面的代码 这是我为了测试金字塔写的,在飞狐上可以按我的想法实现,但是在金字塔中无法实现。
LC := REF(CLOSE,1);
RSI14:=SMA(MAX(CLOSE-LC,0),14,1)/SMA(ABS(CLOSE-LC),14,1)*100;
//rsi的公式,取参数为14.
cc:=c;
aa:0*c;
//IF NOT(ISLASTBAR) THEN EXIT; //测试过用和不用结果一样,只是速度区别?
for i = 20 to datacount-1 do
begin
if cc[i]>cc[i-1] and cc[i]>cc[i+1] then //首先找一个收盘价高点
begin
for k=2 to 9 do
begin
if rsi14[i-k]>rsi14[i] then
begin
break;
end;
if cc[i-k]>cc[i-k-1] and cc[i-k]>cc[i-k+1] and cc[i-k] > cc[i] then
//然后再往前找最近的一个高点,如果当天的收盘价比第一次找到的高点的收盘价高,同时由于上面的语句保证rsi低,那么对第一个高点的aa进行赋值。
//如果不满足收盘价高的条件则继续往前找,直到满足条件赋值,或者达到9停止为止。
begin
aa[i]:=k;
break;
end;
end;
end;
end;
这个问题是我第一个帖子中提出的问题的一个案例,请指出错误的地方,或者帮忙改成金字塔中可以实现的代码,谢谢