以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://www.weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://www.weistock.com/bbs/list.asp?boardid=2)
----  版主/管理员请进!!!!问题提交!  (http://www.weistock.com/bbs/dispbbs.asp?boardid=2&id=174678)

--  作者:farry
--  发布时间:2020/3/2 11:30:54
--  版主/管理员请进!!!!问题提交!
俺花了一个星期时间,基本锁定了我的公式在新版5.20运行死锁的现象的场景,按以下步骤大概率能重现:(可多进出几次框架就行)
(1)首先确保内存5分钟K线数据补充完整到2018年以前,最好补全;
(2)把选项里面的图形显示和内存保留全部设成10000以上,我是设的10000;
(3)开四个框架,运行股指30分钟、螺纹30分钟、白糖60分钟、棉花60分钟;
(4)四品种分别加载下面的测试公式test-001
(5)正常运行后,退出框架,再加载框架,重复几次您看看是不是死锁了,光标转圈不动了!

请版主/管理员测试,反正我是打开10次,死9次。

公式:test001
RUNMODE:0; //逐K线模式
WARNING_DISABLE:1; //关闭公式测试提醒
WARNING_DISABLE:2;
WARNING_DISABLE:4;
PPT_MUX:=0.75; //期货品种乘数,保证金*合约单位=15%*5
PPT_PER:=5;
LAST_B:=0;LAST_S:=0;LAST_BE:=0;LAST_SE:=0;
//均线
MA01:MA(C,10),colorwhite,PRECISION0;
MA02:MA(C,20),coloryellow,PRECISION0;
开多:=cross(ma01,ma02);
开空:=cross(Ma02,ma01);
ref_buy:=ref(开多,1);
ref_sel:=ref(开空,1);
START_TRADE:=(YEAR=2018 and MONTH>0) or YEAR>2018;
IF START_TRADE THEN 
BEGIN
IF HOLDING<>0 THEN BEGIN
if HOLDING>0 then
begin
{平多}
if ref_SEL then 
begin
sell(START_TRADE,0,LIMITR,OPEN),ORDERQUEUE;
LAST_BE:=1;
end;
end;
if HOLDING<0 then
begin
{平空}
if ref_BUY then 
begin
sellshort(START_TRADE,0,LIMITR,OPEN),ORDERQUEUE;
LAST_SE:=1;
end;
end;
END;
if HOLDING=0 THEN 
BEGIN
{开多}if ref_BUY then 
begin
buy(START_TRADE,1,LIMITR,OPEN),ORDERQUEUE;
LAST_B:=1;
end;
{开空}if ref_SEL then 
begin
buyshort(START_TRADE,1,LIMITR,OPEN),ORDERQUEUE;
LAST_S:=1;
end;
END;
END;
tmp_BAR:=BARPOS-1;
LAST_sig_E:=LAST_BE or LAST_SE;
IF 开多 THEN  drawicon(START_TRADE,low-0.2,1);
IF 开空 THEN  drawicon(START_TRADE,high+0.2,2);
BUY_E:=HOLDING>0 and 开空;
SEL_E:=HOLDING<0 and 开多;
IS_reSIG:=LAST_B or LAST_S;
//================================================================================
IF ISLASTBAR THEN
BEGIN
{自动解盘}
//开仓价
hold_prc:=IF(IS_reSIG,NUMTOSTR(OPEN,0),NUMTOSTR(ENTERPRICE,0));
EXPLAIN(1,\'棉花_CF00__主力合约_\' + STRTRIMLEFT(DYNAINFO(210),\'ZQ\'),coloryellow);
IF HOLDING<0 THEN EXPLAIN(1,\'空单_持仓价_\' + hold_prc + \'__持仓_\'+NUMTOSTR(HOLDING,0)+\'手\',colorcyan);
IF HOLDING>0 THEN EXPLAIN(1,\'多单_持仓价_\' + hold_prc + \'__持仓_\'+NUMTOSTR(HOLDING,0)+\'手\',colormagenta);
IF HOLDING=0 THEN EXPLAIN(1,\'持仓:=  0 手\',colorwhite);
EXPLAIN(1,\'账户资产:=\'+NUMTOSTR(ASSET,0) ,colorwhite);
EXPLAIN(1,\'浮动盈亏:=(\'+numtostr(OPENPROFIT/10000,1)+\'万,\'+numtostr(OPENPROFITPER,1)+\'%)\',coloryellow);
可用资金:=ASSET-abs(HOLDING)*CLOSE*PPT_MUX;
EXPLAIN(1,\'可用资金:=\'+NUMTOSTR(可用资金,0),colorwhite);
//交易信息
IF LAST_SE THEN EXPLAIN(1,\'交易信号=》平空\'+NUMTOSTR(EXITVOL,0)+\'手!\',colormagenta);
IF LAST_BE THEN EXPLAIN(1,\'交易信号=》平多\'+NUMTOSTR(EXITVOL,0)+\'手!\',colorcyan);
IF LAST_B THEN EXPLAIN(1,\'交易信号=》开多\'+NUMTOSTR(ENTERVOL,0)+\'手!\',colormagenta);
IF LAST_S THEN EXPLAIN(1,\'交易信号=》开空\'+NUMTOSTR(ENTERVOL,0)+\'手!\',colorcyan);
//准备交易
IF 开多 THEN BEGIN
IF HOLDING<=0 THEN
BEGIN
//开多
EXPLAIN(HOLDING<0,\'交易信号=》准备开多\'+\'1手!\',colormagenta);
EXPLAIN(HOLDING=0,\'交易信号=》准备开多...资金不够开仓!\',colormagenta);
END;
END;
IF 开空 THEN BEGIN
IF HOLDING>=0 THEN
BEGIN
EXPLAIN(HOLDING>0,\'交易信号=》准备开空\'+\'1手!\',colorcyan);
EXPLAIN(HOLDING=0,\'交易信号=》准备开空...资金不够开仓!\',colorcyan);
END;
END;
//平空
IF SEL_E THEN EXPLAIN(1,\'交易信号=》准备平空\'+NUMTOSTR(ABS(HOLDING),0)+\'手!\',colormagenta);
//平多
IF BUY_E THEN EXPLAIN(1,\'交易信号=》准备平多\'+NUMTOSTR(HOLDING,0)+\'手!\',colorcyan);
IF HOLDING=0 THEN EXPLAIN(1,\'操盘:=空仓观望,等待入场信号!\',colorwhite);
END;
IF START_TRADE THEN
BEGIN
{显示开仓价位线}
多持:IF(HOLDING>0,ENTERPRICE,DRAWNULL),colormagenta,linethick2,PRECISION0; //多单开盘价
空持:IF(HOLDING<0,ENTERPRICE,DRAWNULL),colorcyan,linethick2,PRECISION0; //空单开盘价
//=============================================================================
{保证金计算器}
计算器:Close*PPT_MUX*手数,PRECISION0,coloryellow,NODRAW;
END;

--  作者:无为剑
--  发布时间:2020/3/2 12:35:20
--  
感谢您提供的信息,可否方便留下 联系QQ?以便于我们工作人员遇到测试问题时能及时与您进行沟通呢?
--  作者:farry
--  发布时间:2020/3/2 13:06:31
--  
QQ: 1492119276
--  作者:wenarm
--  发布时间:2020/3/2 13:15:38
--  
测试中
--  作者:wenarm
--  发布时间:2020/3/2 14:35:09
--  

感谢您反馈的问题。我们这边测试结果如下:

配置低的计算机,比较容易出现您表述的问题。高配置计算机可以稳定运行。如果您计算机配置过低,需要考虑升级配置。

对于软件,已经将问题提交开发部门,考虑对其进行优化。

[此贴子已经被作者于2020/3/2 14:39:31编辑过]

--  作者:farry
--  发布时间:2020/3/2 23:09:17
--  
俺是INTEL i7-6700K台式机, 32GB内存,512GB-固态硬盘。就跑1个金字塔,这个配置不低了。而且为什么5.12版本之前的都没问题,速度也很快?希望你们改进。
--  作者:wenarm
--  发布时间:2020/3/2 23:30:20
--  
已经提交至开发部门分析解决。后续有疑问的地方,会和您进一步沟通。
--  作者:无为剑
--  发布时间:2020/3/3 8:41:26
--  
经过我们工作人员紧急排查,已经修复该问题,会在随后的5.21版本中发布,感谢用户的问题反馈。
新的金字塔在速度优化上比之前5.12版本有了很大的提高,建议您届时升级至5.21

--  作者:garhou
--  发布时间:2020/3/3 11:07:50
--  
 5.21短时间内发布吗?
--  作者:wenarm
--  发布时间:2020/3/3 11:49:17
--  

如果没有特殊情况,本周就会发布。