以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  请教jinzhe老师  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=94487)

--  作者:muxia5568
--  发布时间:2016/3/8 14:56:02
--  请教jinzhe老师

jinzhe老师;您帮我解决了跨周期KDJ漂移的问题,十分感谢。

现在模型中这样编写跨周期引用后,软件在运行,测试时明显变慢,有时还死机,有什么办法解决吗?谢谢

 

rsv1:=stkindi(\'\',\'yy1.rsv\',0,3,-1);
k1:=stkindi(\'\',\'yy1.k\',0,3,-1);
d1:=stkindi(\'\',\'yy1.d\',0,3,-1);
c1:=callstock(stklabel,vtclose,3,-1),linethick0;

。。。。。。

。。。。。。


--  作者:jinzhe
--  发布时间:2016/3/8 15:02:24
--  

引用是消耗内存的,引用太多会造成大量的系统资源被占用。所以软件会运行变卡

你现在是一共用了多少的引用/


--  作者:muxia5568
--  发布时间:2016/3/9 13:53:56
--  
我的模型现在一共有3个跨周期引用。
--  作者:jinzhe
--  发布时间:2016/3/9 14:07:23
--  
问题是上面你写的就有4个,你现在讲有3个怎么可能
--  作者:muxia5568
--  发布时间:2016/3/9 14:17:20
--  
我把上面的算一个了,有什么好办法解决吗?请老师给以帮助解决。
--  作者:jinzhe
--  发布时间:2016/3/9 14:25:45
--  
你的引用代码都贴一下,看看引用的数量是多少
--  作者:muxia5568
--  发布时间:2016/3/9 14:51:31
--  

rsv1:=stkindi(\'\',\'yy1.rsv\',0,3,-1);
k1:=stkindi(\'\',\'yy1.k\',0,3,-1);
d1:=stkindi(\'\',\'yy1.d\',0,3,-1);
c1:=callstock(stklabel,vtclose,3,-1),linethick0;
cc:=ref(c,1)=c1,linethick0;
nn:=barslast(cc),linethick0;
hh:=stkindi(\'\',\'yy1.hh\',0,3,-1);
ll:=stkindi(\'\',\'yy1.ll\',0,3,-1);
mn:=min(ll,llv(l,nn+1));
mx:=max(hh,hhv(h,nn+1));
rsv:=(callstock(stklabel,vtclose,2)-mn)/(mx-mn)*100;
k:=(rsv+2*k1)/3;
d:=(k+2*d1)/3;
j:=3*k-2*d;

k5:=stkindi(\'\',\'kdj.k\',0,2);
j5:=stkindi(\'\',\'kdj.j\',0,2);

csjk:=cross(j5,k5);// AND j>100;
cskj:=cross(k5,j5);//AND j<0;

15sc:=cross(k,j);
15jc:=cross(j,k);

 

rsv1:=stkindi(\'\',\'yy1.rsv\',0,5,-1);
k1:=stkindi(\'\',\'yy1.k\',0,5,-1);
d1:=stkindi(\'\',\'yy1.d\',0,5,-1);
c1:=callstock(stklabel,vtclose,5,-1),linethick0;
cc:=ref(c,1)=c1,linethick0;
nn:=barslast(cc),linethick0;
hh:=stkindi(\'\',\'yy1.hh\',0,5,-1);
ll:=stkindi(\'\',\'yy1.ll\',0,5,-1);
mn:=min(ll,llv(l,nn+1));
mx:=max(hh,hhv(h,nn+1));
rsv:=(callstock(stklabel,vtclose,2)-mn)/(mx-mn)*100;
k:(rsv+2*k1)/3;
d:(k+2*d1)/3;
j:3*k-2*d;

k5:=stkindi(\'\',\'kdj.k\',0,2);
j5:=stkindi(\'\',\'kdj.j\',0,2);

csjk:=cross(j5,k5);// AND j>100;
cskj:=cross(k5,j5);//AND j<0;

60sc:=cross(k,j);
60jc:=cross(j,k);

 

mm2:=stkindi(\'\',\'boll.mid\',0,2);
ss2:=stkindi(\'\',\'boll.upper\',0,2);
xx2:=stkindi(\'\',\'boll.lower\',0,2);

mm4:=stkindi(\'\',\'boll.mid\',0,24,2);
ss4:stkindi(\'\',\'boll.upper\',0,24,2);
xx4:stkindi(\'\',\'boll.lower\',0,24,2);


--  作者:jinzhe
--  发布时间:2016/3/9 15:07:09
--  
我看了一下一共24个,是挺多的,如果一定要用这么多的引用,推荐是用stkindiex,和stkindi差不多,但是限制使用数据的数量,会增加效率
--  作者:muxia5568
--  发布时间:2016/3/9 15:19:40
--  

请金老师指点怎么换?是把所有的stkindi都换成stkindiex吗?


--  作者:jinzhe
--  发布时间:2016/3/9 15:28:47
--  

对,还有把callstock换成callstockex

具体用法看函数说明