设为首页收藏本站

 找回密码
 注册
查看: 1535|回复: 7
打印 上一主题 下一主题

TBQuant公测版,条件分支中对序列变量赋值的问题 [复制链接]

Rank: 1

精华
0
UID
227944
积分
9
帖子
6
主题
1
阅读权限
10
注册时间
2016-2-7
最后登录
2019-12-31
跳转到指定楼层
1#
发表于 2019-4-24 17:27:49 |只看该作者 |倒序浏览
在如下代码中,序列变量counter应该在每个交易日开始的第1根K线上被置为零。但实际观察发现“if (new_day) counter = 0;”没起作用,怀疑是“if”条件分支中对序列变量的处理机制有问题:

Vars
        Bool new_day(False);
        NumericSeries counter(0);
       
Begin
        if (Close > High[1]) counter = counter + 1;
        if (Close < Low[1])  counter = counter - 1;
       
        new_day = (TrueDate(0) != TrueDate(1));
        if (new_day) counter = 0;
       
        PlotNumeric("counter", counter);
End

Rank: 2

精华
0
UID
172734
积分
64
帖子
25
主题
2
阅读权限
30
注册时间
2013-9-22
最后登录
2021-6-5
2#
发表于 2019-4-24 23:52:38 |只看该作者
Bool new_day(False);
为TRUE呢?

使用道具 举报

Rank: 1

精华
0
UID
227944
积分
9
帖子
6
主题
1
阅读权限
10
注册时间
2016-2-7
最后登录
2019-12-31
3#
发表于 2019-4-25 10:05:22 |只看该作者
uniwin 发表于 2019-4-24 23:52
Bool new_day(False);
为TRUE呢?

公式每次执行时new_day都会被重新计算,所以它的初始值不是问题所在

使用道具 举报

Rank: 1

精华
0
UID
227944
积分
9
帖子
6
主题
1
阅读权限
10
注册时间
2016-2-7
最后登录
2019-12-31
4#
发表于 2019-4-25 10:08:43 |只看该作者
在TBQuant公测版里运行有问题,但在旗舰版里结果是对的

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
5#
发表于 2019-4-25 10:57:46 |只看该作者
zjsong 发表于 2019-4-25 10:08
在TBQuant公测版里运行有问题,但在旗舰版里结果是对的

用上述代码,分别在两款软件版本里试了一下,1小时图表,对比了最近两天的数据,结果是一致的呢。
您说的不一致,具体表现是啥样的?或者将您加载此代码的环境说一下,我看看这边能否重现呢?

使用道具 举报

Rank: 1

精华
0
UID
227944
积分
9
帖子
6
主题
1
阅读权限
10
注册时间
2016-2-7
最后登录
2019-12-31
6#
发表于 2019-4-25 17:11:38 |只看该作者
小米 发表于 2019-4-25 10:57
用上述代码,分别在两款软件版本里试了一下,1小时图表,对比了最近两天的数据,结果是一致的呢。
您说的 ...

呃… 如下代码又加了Commentary语句输出,发现counter在每日第1根K线上的值确实是0,但图上曲线显示位置对应的值不对,所以现在问题可以归结为图形显示的问题,而不是编译器的问题了。

Vars
        Bool new_day(True);
        NumericSeries counter(0);
       
Begin
        if (Close > High[1]) counter = counter + 1;
        if (Close < Low[1])  counter = counter - 1;
       
        new_day = (TrueDate(0) != TrueDate(1));
        if (new_day) counter = 0;

        PlotNumeric("counter", counter);

        Commentary("counter="+Text(counter));

        PlotNumeric("zero", 0);
        PlotNumeric("up", 1);
        PlotNumeric("dn", -1);
End

具体问题见附图。画箭头的几个位置counter值都是0(commentary的输出),但对应的曲线显示的位置显然不是0,而且“PlotNumeric("zero", 0);”画出的零轴在图中也看不到。

使用道具 举报

Rank: 1

精华
0
UID
227944
积分
9
帖子
6
主题
1
阅读权限
10
注册时间
2016-2-7
最后登录
2019-12-31
7#
发表于 2019-4-25 17:13:10 |只看该作者
本帖最后由 zjsong 于 2019-4-25 17:16 编辑
zjsong 发表于 2019-4-25 17:11
呃… 如下代码又加了Commentary语句输出,发现counter在每日第1根K线上的值确实是0,但图上曲线显示位置 ...


附件: 你需要登录才可以下载或查看附件。没有帐号?注册

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
8#
发表于 2019-4-25 17:14:45 |只看该作者
zjsong 发表于 2019-4-25 17:11
呃… 如下代码又加了Commentary语句输出,发现counter在每日第1根K线上的值确实是0,但图上曲线显示位置 ...

嗯嗯。plotNumerict输不出0的问题,这个问题我们有开发人员在跟进了。

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

bottom

静态版|手机版|联系我们|交易开拓者 ( 粤ICP备07044698   

GMT+8, 2024-5-4 17:26

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部