以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  for 循环后编译通不过,怎么解决?  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=50322)

--  作者:kingovern
--  发布时间:2013/3/27 13:20:56
--  for 循环后编译通不过,怎么解决?
INPUT: rolltime(55),maxwin(35),maxlose(-14);
VARIABLE:var0=0;


var0 = 0;
for BarBackNo = rolltime downto  1 do 
begin
  if C[rolltime-BarBackNo]>C[rolltime-BarBackNo+1] THEN
     var0:=var0+C[rolltime-BarBackNo];
  else
     var0:=var0-C[rolltime-BarBackNo];
END 



KD:= var0>0 and TIME>092000 and TIME<143900;          //开多条件
PD:=C-ENTERPRICE>maxwin or C-ENTERPRICE<maxlose or TIME>145900;          //平多条件
KK:= var0<0  and TIME>092000 and TIME<143900;          //开空条件
PK:=ENTERPRICE-C>maxwin or ENTERPRICE-C<maxlose or TIME>145900;          //平空条件

平空:SELLSHORT(PK,1,THISCLOSE);                  //平空信号
开多:BUY(KD AND HOLDING=0,1,THISCLOSE);          //开多信号
平多:SELL(PD,1,THISCLOSE);                       //平多信号
开空:BUYSHORT(KK AND HOLDING=0,1,THISCLOSE);     //开空信号


{
信号语句排列规则——先平后开
“费率设置”按钮——用于合理设置模型“费率”,以便在图形上正确输出如下帐户信息:

持仓:holding,linethick0;
资产:asset,noaxis;
可用现金:cash(0),linethick0;
}



--  作者:jinzhe
--  发布时间:2013/3/27 13:22:37
--  
编译了一下,可以通过
--  作者:kingovern
--  发布时间:2013/3/27 13:26:06
--  
C[0]就是等于C吗?
--  作者:kingovern
--  发布时间:2013/3/27 13:27:20
--  
测试的说数组越界操作
--  作者:admin
--  发布时间:2013/3/27 15:15:07
--  

为了避免产生混淆,金字塔的在数组的使用上继承了编程语言的模式,而没有使用TS的模式。

编程语言上的数组的定义为 CLOSE[1]则是K线图上第一个数据,当前K线数据应该使用 CLOSE[BARPOS];

 

更多数组的使用方法请参考

 

金字塔数组使用的高级编程技巧

http://www.weistock.com/bbs/dispbbs.asp?BoardID=10&ID=30380&replyID=&skin=1