金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 7056|回复: 20

断点调试

[复制链接]

61

主题

197

帖子

197

积分

等级: 免费版

注册:
2021-9-28
曾用名:
发表于 2021-12-1 15:13 | 显示全部楼层 |阅读模式
我在软件中间设置断点,以检查 中间变量的值是否正确。我发现 数组变量hold_v[0] 中的值一直为0,明明设置为1(hold_v[0]=1),但还是没起作用。设置断点后,说的是运行到断点可看,“运行”是启动调试还是 应用于图表 或 进行公式测试?“运行” 是用这几种方式执行? 另外python 有print() 输出变量调试功能,但金字塔没有,有个 msgout(), 不方便,好有啥更好的方式找出程序执行中数据变量 错误的 方法?

回复

使用道具 举报

20

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2021-12-1 15:20 | 显示全部楼层
1.金字塔里数组下标从1开始的。
2.设置断点之后 直接应用到图表上即可。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

61

主题

197

帖子

197

积分

等级: 免费版

注册:
2021-9-28
曾用名:
 楼主| 发表于 2021-12-2 11:27 | 显示全部楼层
金字塔数组定义后,给数组赋值,立刻显示数值内容值,结果不起作用,还是原来之前的值,这导致数据数据没法用?如何解决?
回复

使用道具 举报

20

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2021-12-2 11:30 | 显示全部楼层
贴下你的代码。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

61

主题

197

帖子

197

积分

等级: 免费版

注册:
2021-9-28
曾用名:
 楼主| 发表于 2021-12-2 11:30 | 显示全部楼层

VARIABLE strv:= '',top_stock:= '';
VARIABLE CONDITION_IN := 0;
VARIABLE hold_v[NDAY] := 0;
VARIABLE hold_d[NDAY] := 0;

If BarPos = 1 Then
Begin
        //SETPYTHONVAL('day_ahead',0,dayahead); python 文件类型 控制参数 在python端程序传不过去
        hold_v[NDAY]:= 0;
        hold_d[NDAY]:= 0;
        //MSGOUT(1,NUMTOSTR(NDAY,0) );
        //MSGOUT(1,numtostr(topN,0) );
End;



//VARIABLE  day_cn:= 0;
if date <> ref(date,1)THEN
begin
        a:=date+19000000;
    SETPYTHONVAL('date',0,a);
   
    FIREPYHANDLEBAR;  //触发Python中的Handle_bar方法  
        i:= 1;
    condition_in:= 0;
        while i<=topN and condition_in = 0 DO
        BEGIN
                strv:= 's'+numtostr(i,0);
                top_stock: getpythonval(strv),linethick0;
                if stklabel = top_stock THEN
                begin
                    condition_in:= 1;
                end;
                i:= i + 1;
                //MSGOUT(date+19000000>=20210910,top_stock);
                //temp: numtostr(hold_v[0],2);
                //MSGOUT(date+19000000>=20210910,temp);
        END;
        //temp: numtostr(hold_v[0],2);
        //MSGOUT(date+19000000>=20210910,temp);
        j:= 1;
        WHILE hold_v[j] > 0 and j <= NDAY DO    // adding one new day for all the remaining
        BEGIN
                hold_d[j]: hold_d[j] + 1;  // shift one day for remaining hold_v stock
                j:= j + 1;
                //i:= hold_v[j];       
                //MSGOUT(date+19000000>=20210910,numtostr(i,0));
        END;
        if j < NDAY THEN   // less than NDAY and set zero after the end part
        BEGIN
                hold_v[j]:= 0;
                hold_d[j]:= 0;
        END;       
end;
hold_d[1]: 1313;
temp_v:hold_d[1];
temp_str:= NUMTOSTR((temp_v,0));
//MSGOUT(date<>ref(date,1),temp_str);


上面数组变量 hold_v[1] 和 hold_d[1] 赋值都不起作用?
回复

使用道具 举报

33

主题

8472

帖子

8482

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2021-12-2 13:05 | 显示全部楼层
variable:ss[10]=0;
ss[1]:=1;
a:ss[1]
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

20

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2021-12-2 13:15 | 显示全部楼层
NDAY:=1;
topN:=1;
VARIABLE:strv:= '',top_stock:= '';
VARIABLE:CONDITION_IN := 0;
VARIABLE:hold_v[NDAY] := 0;
VARIABLE:hold_d[NDAY] := 0;



hold_d[1]:=1313;
temp_v:hold_d[1];

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

使用道具 举报

61

主题

197

帖子

197

积分

等级: 免费版

注册:
2021-9-28
曾用名:
 楼主| 发表于 2021-12-2 16:02 | 显示全部楼层
谢谢,知道问题出在哪里了,定义少了个:号,编译系统没有发现就通过了
回复

使用道具 举报

35

主题

9409

帖子

5万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2021-12-2 17:11 | 显示全部楼层
这种不属于语法错误,pel中,单独的等号代表比较
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

61

主题

197

帖子

197

积分

等级: 免费版

注册:
2021-9-28
曾用名:
 楼主| 发表于 2021-12-3 09:20 | 显示全部楼层
INPUT:fund(1000000,0,1000000,1),fund_double(1,0,10,0.1),direction(1,-1,1,1),in_time(100000,0,240000,1),exit_time(110000,0,240000,1),loc_stock(1,1,100,1),len_stock(10,1,100,1),NDAY_hold(5,1,10,1);
老是提醒loc_stock 错误,删了重写或拷贝别的编译通过的过来,依然提示这个错误,逻辑简单,是啥原因?
截图202112030918375872.png
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-2-6 06:44 , Processed in 0.243608 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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