Alex2020 发表于 2020-12-23 16:13:53

求教:程序运算错误! 做一个减法,居然算错了,这是怎么回事?

本帖最后由 Alex2020 于 2020-12-30 14:41 编辑

我让程序做一个减法, 居然结果不对,请问怎么回事?
开盘价减minpoint   , 在某一条bar上 Open=2070, minpoint=1,  myentryPrice=Open-minpoint , 结果应该是2069 , 但是,程序计算结果是2054, 这是怎么回事?

程序如下:
  
                          MyEntryPrice = Open-Minpoint;
                          Commentary("Open="+Text(Open)) ;
                          Commentary("Minpoint="+Text(Minpoint)) ;
                          Commentary("MyEntryPrice="+Text(MyEntryPrice)) ;
                          Commentary("MyEntryPrice2="+Text( Open-Minpoint)) ;


运行结果:


....
版本: 1.2.4.1.p2 标准版(Beat) ,
前后还有其他语句,但是,这一段语句中间就没有其他语句了.
就是简单的做一个减法,然后输出结果,很明显,计算结果是错的.
这是怎么回事,有人知道吗?

tblaocai 发表于 2020-12-23 17:54:52

本帖最后由 tblaocai 于 2020-12-23 18:01 编辑

什么版本?中间应该还有其他代码吧

Alex2020 发表于 2020-12-30 14:40:53

tblaocai 发表于 2020-12-23 17:54 static/image/common/back.gif
什么版本?中间应该还有其他代码吧

版本: 1.2.4.1.p2 标准版(Beat) ,
前后还有其他语句,但是,这一段语句中间就没有其他语句了.
就是简单的做一个减法,然后输出结果,很明显,计算结果是错的.
这是怎么回事,有人知道吗?

lmxy202 发表于 2020-12-30 20:50:46

可能跟这个有关,你把MyEntryPrice,Open,Minpoint都加Global修饰看看

3)公式运行的机制
3.1)公式运行机制的建立:在每个数据源上建立局部变量的备份

当只有一个数据源时,公式依赖于data0这唯一的数据源运行。这体现在除了全局变量其余的局部变量都是依赖于data0的数据源的。

当有多个数据源时,公式会在每个数据源都建立一套机制,对应的除了全局变量其余的局部变量在每个数据源都有自己独立的存在。

比如公式定义一个普通的数值变量numeric num(0); 如果公式应用于有三个数据源的交易单元,则实际上存在三个独立的num,分别是data0.num,data1.num,data2.num。


页: [1]
查看完整版本: 求教:程序运算错误! 做一个减法,居然算错了,这是怎么回事?