欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件金字塔软件问题提交 → 版主/管理员请进!!!!问题提交!

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有3664人关注过本帖平板打印复制链接

主题:版主/管理员请进!!!!问题提交!

帅哥哟,离线,有人找我吗?
farry
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:125 积分:75 威望:0 精华:0 注册:2012/4/25 23:42:32
版主/管理员请进!!!!问题提交!  发帖心情 Post By: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;

 回到顶部
总数 11 1 2 下一页