金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 2392|回复: 16

让金字塔任何时候都不弹出这个对话框?

[复制链接]

4633

主题

4723

帖子

4748

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2024-8-1 14:43 | 显示全部楼层 |阅读模式
请教:这个选项总是时不时弹出来,每次都要手动去修改maxcallstock字段,挺麻烦的。我想即使我用的公式多,能否在设置里面增加一个选项,让金字塔任何时候都不弹出这个对话框?
我因为交易需要,代码确实复杂点,但是代码运行是没有问题的
截图202408011443041359.jpg
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

3

主题

16

帖子

26

积分

Rank: 2

等级: 标准版

注册:
2021-5-20
曾用名:
发表于 2024-8-1 14:52 | 显示全部楼层
因为这个警告对话框吧,他弹出来有点随机,有时候代码运行很长时间都不弹出来,有时候一用就弹出来,而且一弹出来就不停的弹,要关闭很多次才行。我觉得警告信息不是错误信息,警告信息应该可以设置成不弹出,至少可以设置成打开某个策略时这个警告最多弹出来一次。任何其他语言的编译器其实也都是这样做的。
回复

使用道具 举报

0

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
gxx978
发表于 2024-8-1 15:03 | 显示全部楼层
这个窗口是警告窗口,是无法设置关闭的。检查下你的被引用策略中是否也有引用语句或者在for循环中使用了引用,这种嵌套引用在历史K线上会被判定为是多次引用的。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

3

主题

16

帖子

26

积分

Rank: 2

等级: 标准版

注册:
2021-5-20
曾用名:
发表于 2024-8-1 16:05 | 显示全部楼层
我的代码运行正常啊,我的代码一千多行也不太好删除什么。为什么警告信息不可以关闭呢?我的代码又没有违法中华人民共和国的法律。再说为了一个警告信息就修改上千行的代码,能不能真的去除警告信息不说,改后会不会造成程序的逻辑出问题呢,如果出现这个后果责任又归谁承担
回复

使用道具 举报

3

主题

16

帖子

26

积分

Rank: 2

等级: 标准版

注册:
2021-5-20
曾用名:
发表于 2024-8-1 16:10 | 显示全部楼层
VARIABLE:
mdhighprice:=-999999,
mdtempprice:=999999,//计算高低价回撤时候作为最低价用的
mdlowprice:=999999,
mdopprice:=0;
bap:=0;

mdhldrawback:=0; //按照高低点计算回撤
mdhldbratio:=0;
mdmaxdrawback:=0;
mdmaxdbratio:=0;

for i=1 to barpos do
begin
        IF (i=1 and 持仓[i]>0  ) Then
        begin
            mdopprice:=close[i];
                mdlowprice:=close[i];
                mdhighprice:=-9999999;
                MDTEMPPRICE:=9999999;
                CONTINUE;
        end
        IF (i>=2 and 持仓[i]>0 and  持仓[i-1]<=0  ) Then
        begin
            mdopprice:=close[i];
                mdlowprice:=close[i];
                mdhighprice:=-9999999;
                MDTEMPPRICE:=9999999;
        end
        IF ((i>=2 and 持仓[i]>0 and  持仓[i-1]>0) or (i>=2 and 持仓[i]<=0 and   持仓[i-1]>0) ) THEN
        BEGIN
                IF MDLOWPRICE>low[i] THEN
                        MDLOWPRICE:=low[i];
                IF mdmaxdrawback<mdopprice-MDLOWPRICE THEN
                        mdmaxdrawback:=mdopprice-MDLOWPRICE;
                IF mdmaxdbratio<1-MDLOWPRICE/MDOPPRICE THEN
                        mdmaxdbratio:=1-MDLOWPRICE/MDOPPRICE;
                IF mdhighprice<high[i] THEN
                BEGIN
                        mdhighprice:=high[i];
                        MDTEMPPRICE:=low[i];
                END
                IF mdhighprice>=high[i] and MDTEMPPRICE>low[i] THEN       
                        MDTEMPPRICE:=low[i];
                IF mdhldrawback<mdhighprice-MDTEMPPRICE THEN
                        MDHLDRAWBACK:=mdhighprice-MDTEMPPRICE;
                IF mdhldbratio<1-MDTEMPPRICE/mdhighprice THEN
                        mdhldbratio:=1-MDTEMPPRICE/mdhighprice;
        END
end

多头OL回撤率:mdmaxdbratio,colorwhite,nodraw;
//多头高低回撤比:mdhldbratio,nodraw;


mdhldrawback:=0; //按照高低点计算回撤
mdhldbratio:=0;
mdmaxdrawback:=0;
mdmaxdbratio:=0;
for i=1 to barpos do
begin
        IF (i=1 and 持仓[i]<0  ) Then
        begin
            mdopprice:=close[i];
                mdhighprice:=close[i];
                mdlowprice:=9999999;
                MDTEMPPRICE:=-9999999;
                CONTINUE;
        end       
        IF (i>=2 and 持仓[i]<0 and  持仓[i-1]>=0  ) Then
        begin
            mdopprice:=close[i];
                mdhighprice:=close[i];
                mdlowprice:=9999999;
                MDTEMPPRICE:=-9999999;
        end       
        IF ((i>=2 and 持仓[i]<0 and  持仓[i-1]<0) or (i>=2 and 持仓[i]>=0 and   持仓[i-1]<0) ) THEN
        BEGIN
                IF MDHIGHPRICE<high[i] THEN
                        MDHIGHPRICE:=high[i];
                IF mdmaxdrawback<mdhighprice-mdopprice THEN
                        mdmaxdrawback:=mdhighprice-mdopprice;
                IF mdmaxdbratio<MDHIGHPRICE/MDOPPRICE-1 THEN
                        mdmaxdbratio:=MDHIGHPRICE/MDOPPRICE-1;
                IF MDLOWPRICE>LOW[i] THEN
                BEGIN
                        MDLOWPRICE:=LOW[i];
                        MDTEMPPRICE:=high[i];
                END
                IF MDLOWPRICE<=low[i] and MDTEMPPRICE<high[i] THEN       
                        MDTEMPPRICE:=high[i];
                IF mdhldrawback<MDTEMPPRICE-MDLOWPRICE THEN
                        MDHLDRAWBACK:=MDTEMPPRICE-MDLOWPRICE;
                IF mdhldbratio<MDTEMPPRICE/mdlowprice-1 THEN
                        mdhldbratio:=MDTEMPPRICE/mdlowprice-1;
        END       
end

空头OH回撤率:mdmaxdbratio,colorwhite,nodraw;
//空头高低回撤比:mdhldbratio,nodraw;
回复

使用道具 举报

3

主题

16

帖子

26

积分

Rank: 2

等级: 标准版

注册:
2021-5-20
曾用名:
发表于 2024-8-1 16:10 | 显示全部楼层
我看了看,整个代码也就两个地方用了for
回复

使用道具 举报

0

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
gxx978
发表于 2024-8-1 17:14 | 显示全部楼层
这个和运行是否正常没有关系,该警告是防止策略出现引用太多导致软件运行异常,所以才出这个提示,目前就是不建议客户使用这次循环或嵌套引用。这个只能排查整个代码,这段代码我们也看不出有什么问题。看for循环或者被引用策略中是否有引用。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

37

主题

1万

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2024-8-1 17:19 | 显示全部楼层
本帖最后由 技术006 于 2024-8-1 17:23 编辑

这个提示只针对跨周期引用,你策略中一定存在引用问题,除了7楼的情况以外,跨周期引用的周期参数如果是变量,它对应的每一个值对应的引用函数都会被认定是一条独立的跨周期引用语句。所以跨周期引用中的参数中,周期最好是定值。



金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

3

主题

16

帖子

26

积分

Rank: 2

等级: 标准版

注册:
2021-5-20
曾用名:
发表于 2024-8-2 15:05 | 显示全部楼层
weekclose_1:=CALLSTOCK('',vtCLOSE,7,-1);
weekopen_1:=CALLSTOCK('',vtOpen,7,-1);
weekhigh_1:=CALLSTOCK('',vtHigh,7,-1);
weeklow_1:=CALLSTOCK('',vtLOW,7,-1);
weekvol_1:=CALLSTOCK('',vtVOL,7,-1);

weekclose_2:=CALLSTOCK('',vtCLOSE,7,-2);
weekopen_2:=CALLSTOCK('',vtOpen,7,-2);
weekhigh_2:=CALLSTOCK('',vtHigh,7,-2);
weeklow_2:=CALLSTOCK('',vtLOW,7,-2);
weekvol_2:=CALLSTOCK('',vtVOL,7,-2);

weekclose_3:=CALLSTOCK('',vtCLOSE,7,-3);
weekopen_3:=CALLSTOCK('',vtOpen,7,-3);
weekhigh_3:=CALLSTOCK('',vtHigh,7,-3);
weeklow_3:=CALLSTOCK('',vtLOW,7,-3);
weekvol_3:=CALLSTOCK('',vtVOL,7,-3);

weekma5:=Stkindiex('','ma(5,10,20,60).ma1',0,7,-1,0);
weekma10:=Stkindiex('','ma(5,10,20,60).ma2',0,7,-1,0);
weekma20:=Stkindiex('','ma(5,10,20,60).ma3',0,7,-1,0);

weekhhv_1:=Stkindiex('','WFHVHIGH(5).hvhigh',0,7,-1,0);
weekatrhhv_1:=Stkindiex('','WFHVATR(3).hvatr',0,7,-1,0);
weekma10:=Stkindiex('','ma(5,10,20,60,120).ma2',0,7,-1,0),nodraw;
回复

使用道具 举报

3

主题

16

帖子

26

积分

Rank: 2

等级: 标准版

注册:
2021-5-20
曾用名:
发表于 2024-8-2 15:08 | 显示全部楼层
以上是我代码里面全部的跨周期代码,仅仅只是在日线基础上引用的周线的指标而已。
就算该警告是防止策略出现引用太多导致软件运行异常,能否设置成加载该策略时只弹出一次?不停的弹出难道不是另外一种软件崩溃吗?反正目前我遇到的最大的软件崩溃就是不停的弹这个警告和我需要不停的手动关闭。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2025-7-18 15:02 , Processed in 0.221129 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表