以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://weistock.com/bbs/list.asp?boardid=2)
----  系统是否存在bug,导致内存泄漏啊?我的系统16G内存都用完了  (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=149174)

--  作者:fourbrother
--  发布时间:2017/3/16 12:02:10
--  系统是否存在bug,导致内存泄漏啊?我的系统16G内存都用完了
今天早上已经崩溃了2次,每次大约能正常运行1小时,崩溃前金字塔占用了大约11G的内存,我的系统是总内存是16G。我没有调用自己编写的dll,调用的是金字塔环境下编写的指标。不过我进行的是某个品种多周期的指标数值的计算。一开始运行时金字塔软件大约只占1.4G的内存,但是占用的内存会越来越大,大约1 小时后,会占用大约11G的内存,然后系统崩溃了。整个过程我只是对一个品种进行计算,请问这个现象有没有解决办法?
[此贴子已经被作者于2017-3-16 12:02:59编辑过]

--  作者:王锋
--  发布时间:2017/3/16 12:09:47
--  

试试升级至4.1正式版


--  作者:fourbrother
--  发布时间:2017/3/16 12:32:13
--  
前两天在官网上下载的, 已经是V4.1 普通版
--  作者:shq
--  发布时间:2017/3/16 14:46:43
--  
1、限制该品种的数据量再试试呢?

2、公式有用什么特殊函数吗?比如:未来函数、for循环一类、数组变量?
[此贴子已经被作者于2017-3-16 14:48:05编辑过]

--  作者:jzthd
--  发布时间:2017/3/16 16:38:34
--  
补个数据解压  都能16G占满,然后系统压缩内存,奇卡无比。
--  作者:shq
--  发布时间:2017/3/16 16:48:42
--  
1、完全删除DATA文件夹后,再重新补数据呢?

2、完全卸载金字塔,顺便清理下电脑垃圾,重启下电脑后,再重装金字塔试试下。

--  作者:jzthd
--  发布时间:2017/3/16 18:51:06
--  
一样的 
--  作者:fourbrother
--  发布时间:2017/3/17 0:11:43
--  
公式比较复杂,经过几次调用。有ref , const , barslast  for 循环等函数,有数组,而且是跨周期调用 #month #week #day 等。
[此贴子已经被作者于2017-3-17 0:12:12编辑过]

--  作者:fourbrother
--  发布时间:2017/3/17 0:17:02
--  
指标名:01高低点

{参数: n=4}

A1:=REF(HIGH,n)=HHV(HIGH,2*n+1); 
B1:=FILTER(A1,n); 
C1:=BACKSET(B1,n+1); 
D1:=FILTER(C1,n);{高点}

A2:=REF(LOW,n)=LLV(LOW,2*n+1); 
B2:=FILTER(A2,n); 
C2:=BACKSET(B2,n+1); 
D2:=FILTER(C2,n);{低点}

E1:=(REF(LLV(LOW,2*n),1)+REF(HHV(HIGH,2*n),1))/2; 
E2:=(HIGH+LOW)/2;{高低点出现在同一K线上时可作取舍}

H1:=(D1 AND NOT(D2 AND E1>=E2)) OR BARSTATUS=2 OR BARSCOUNT(CLOSE)=1;
L1:=D2 AND NOT(D1 AND E1<E2);
H2:=D1 AND NOT(D2 AND E1>=E2);
X1:=REF(BARSLAST(H1),1)+1; 
F1:=BACKSET(H1 AND COUNT(L1,X1)>0,LLVBARS(IF(L1,LOW,1000000),X1));
G1:=F1>REF(F1,1); 
I1:=BACKSET(G1,2); 
LD:=I1>REF(I1,1);{过滤后低点}

L2:=LD OR BARSTATUS=2 OR BARSCOUNT(CLOSE)=1;
X2:=REF(BARSLAST(L2),1)+1; 
F2:=BACKSET(L2 AND COUNT(H2,X2)>0,HHVBARS(IF(H2,HIGH,0),X2));
G2:=F2>REF(F2,1); 
I2:=BACKSET(G2,2); 
HD:=I2>REF(I2,1);{过滤后高点}

J1:=BACKSET(BARSTATUS=2,MIN(BARSLAST(HD),BARSLAST(LD))+1); 
J2:=J1>REF(J1,1);
A3:=H; 
B3:=REF(H,REF(BARSLAST(HD),1)+1)>REF(H,REF(BARSLAST(HD),1)+2+REF(BARSLAST(HD),REF(BARSLAST(HD),1)+2));
D3:=A3 AND B3 AND HD; 
E3:=BACKSET(D3,REF(BARSLAST(HD),1)+2); 
HH:=E3>REF(E3,1);{找出全部长期高点}

A4:=L>REF(L,REF(BARSLAST(LD),1)+1);
B4:=REF(L,REF(BARSLAST(LD),1)+1); 
D4:=A4 AND B4 AND LD; 
E4:=BACKSET(D4,REF(BARSLAST(LD),1)+2); 
LL:=E4>REF(E4,1);{找出全部长期低点}


H3:=HH OR BARSTATUS=2 OR BARSCOUNT(C)=1; {后面进行过滤,方法同前。只是不用考虑高低点出现在同一K线}

X3:=REF(BARSLAST(H3),1)+1; 
F3:=BACKSET(H3 AND COUNT(LL,X3)>0,LLVBARS(IF(LL,L,POW(10,20)),X3));
G3:=F3>REF(F3,1); 
I3:=BACKSET(G3,2); 
LZ:=I3>REF(I3,1); {长期低点,也可供引用}

L4:=LZ OR BARSTATUS=2 OR BARSCOUNT(C)=1;
X4:=REF(BARSLAST(L4),1)+1; 
F4:=BACKSET(L4 AND COUNT(HH,X4)>0,HHVBARS(IF(HH,H,-POW(10,20)),X4));
G4:=F4>REF(F4,1); 
I4:=BACKSET(G4,2); 
HZ:=I4>REF(I4,1);{长期高点,也可供引用}

K1:=BACKSET(BARSTATUS=2,MIN(BARSLAST(HZ),BARSLAST(LZ))+1); 
K2:=K1>REF(K1,1);
UU:=BACKSET(BARSTATUS=2,BARSLAST(LD)+1);
dn1p:UU>REF(UU,1);   {前一低}
WW:=BACKSET(dn1p,REF(BARSLAST(LD),1)+2);
dn2p:WW>REF(WW,1);    {前二低}

dn2:=BACKSET(dn2p,REF(BARSLAST(LD),1)+2);
dn3p:dn2>REF(dn2,1);    {前三低}
 
UU2:=BACKSET(BARSTATUS=2,BARSLAST(HD)+1);
up1p:UU2>REF(UU2,1);   {前一高}


WW2:=BACKSET(up1p,REF(BARSLAST(HD),1)+2);
up2p:WW2>REF(WW2,1);{前二高}

up2:=BACKSET(up2p,REF(BARSLAST(HD),1)+2);
up3p:up2>REF(up2,1);    {前三高}

dn1t:barslast(dn1p);
dn2t:barslast(dn2p);
dn3t:barslast(dn3p);
up1t:barslast(up1p);
up2t:barslast(up2p);
up3t:barslast(up3p);

dn1l:ref(l,dn1t);
dn2l:ref(l,dn2t);
dn3l:ref(l,dn3t);
up1h:ref(h,up1t);
up2h:ref(h,up2t);
up3h:ref(h,up3t);


--  作者:fourbrother
--  发布时间:2017/3/17 0:18:23
--  
这只是首次被调用的指标,后面有几个指标都会调用它。