以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  求高手把大智慧代码改成金字塔  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=13539)

--  作者:jiangsen
--  发布时间:2012/8/8 12:03:51
--  求高手把大智慧代码改成金字塔
IF BARSCOUNT(C)=1 THEN
   A1:=C*0.98;
ELSE IF BARSCOUNT(C)>1 AND REF(C,1)>REF(A1,1) AND C>=REF(A1,1) THEN
   A1:=MAX(REF(A1,1),0.98*C);
ELSE IF BARSCOUNT(C)>1 AND REF(C,1)>REF(A1,1) AND C<REF(A1,1) THEN
   A1:=1.02*C;
ELSE IF BARSCOUNT(C)>1 AND C<=REF(A1,1) AND C<REF(A1,1) THEN
   A1:=min(REF(A1,1),1.02*C);
ELSE IF BARSCOUNT(C)>1 AND C<=REF(A1,1) AND C>=REF(A1,1) THEN
   A1:=0.98*C;
止损价:A1;
收盘价:CLOSE;
--  作者:RogarZ
--  发布时间:2012/8/8 13:08:20
--  
不用改 直接用 金字塔兼容大智慧 同花顺 通达信95%以上的代码
--  作者:jiangsen
--  发布时间:2012/8/8 14:01:34
--  
这个好像不能用啊==
--  作者:王锋
--  发布时间:2012/8/8 17:23:33
--  

RUNMODE:0;
VARIABLE : a1=0;

MYBARSCOUNT:=BARSCOUNT(C);
MYref:=REF(C,1);
MYA1:=REF(A1,1);

IF MYBARSCOUNT=1 THEN
   A1:=C*0.98;
ELSE IF MYBARSCOUNT>1 AND MYref>MYA1 AND C>=MYA1 THEN
   A1:=MAX(MYA1,0.98*C);
ELSE IF MYBARSCOUNT>1 AND MYref>MYA1 AND C<MYA1 THEN
   A1:=1.02*C;
ELSE IF MYBARSCOUNT>1 AND C<=MYA1 AND C<MYA1 THEN
   A1:=min(MYA1,1.02*C);
ELSE IF MYBARSCOUNT>1 AND C<=MYA1 AND C>=MYA1 THEN
   A1:=0.98*C;
止损价:A1;
收盘价:CLOSE;

 

 

用金字塔的逐K线模式改进一下即可。

你的代码中多次引用了REF等等这些语句,多次的重复引用没有什么意义也会增加系统负担,金字塔中也不允许在IF语句中使用REF等统计函数,因此挪到了外面