错误、漏洞、问题 - 页 2572

 
Vict:

你如何创建一个CJVal? 可能是新的CJVal()?

终端不太可能抓到这一点。

不,就像圣经作者的例子一样,在栈道上

CJAVal js(NULL, jtUNDEF);
 

我发现在我的视觉测试模式中,SymbolInfoTick() 返回一个值,但Close[0]时间序列有一个不同的值。

这是我的错误吗?我是不是做错了什么?

看起来应该是相同的数值。

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---

   MqlTick mtLastTick;
   SymbolInfoTick(Symbol(),mtLastTick);
   
   ArraySetAsSeries(close,true);


   Comment("Close[0] = " + DoubleToString(close[0],5) + "\nLastBid = " + DoubleToString(mtLastTick.bid,5));
   
//--- return value of prev_calculated for next call
   return(rates_total);
  }

通常情况下,差异为1-2个点,但在急剧运动中,差异可能更大。

只有我是这样吗?

如果SymbolInfoTick()给出的值与Close[0]不同,我就认为正确的值是Close[0],并保留SymbolInfoTick()返回的点差。

然而,我想知道哪个价格是正确的,是Close[0]还是SymbolInfoTick()。

附加的文件:
TestTick.mq5  2 kb
 
Georgiy Merts:

我发现在我的视觉测试模式中,SymbolInfoTick() 返回一个值,但Close[0]时间序列有一个不同的值。

这是我的错误吗?我是不是做错了什么?

看起来应该是相同的数值。

通常情况下,差异为1-2个点,但在急剧运动中,差异可能更大。

只有我是这样吗?

现在我把时间序列作为 "更正确的"。 如果事实证明SymbolInfoTick()给出的值与Close[0]不同,那么我认为正确的值是Close[0],我让价差保持在SymbolInfoTick()返回的值。

但我想知道哪个价格是正确的--是SymbolInfoTick()还是Close[0]。

还有SymbolInfoDouble(_Symbol,SYMBOL_BID)。

 
Andrey Barinov:

还有SymbolInfoDouble(_Symbol,SYMBOL_BID)。

是的,它的返回值与SymbolInfoTick() 相同。

 

关于全局变量的一些建议。解决了从Market Watch保存ticks的问题。

每一个新的刻度都会使相应的全局变量增加一个。通过眼睛,Market Watch每秒钟接收大约100个点。

总的来说,全局变量以100赫兹的速度更新。我想知道它是否对SSD产生负面影响?

我每隔1000就写一次蜱虫本身(~1Gb的一周)。所以,我对它没有意见。但在全局方面--以前没有想过,它们在每次更新时都被写入SSD。

这就是为什么我有这样一个问题。

 
fxsaber:

关于全局变量的一些建议。解决了从Market Watch保存ticks的问题。

每一个新的刻度都会使相应的全局变量增加一个。通过眼睛,Market Watch每秒钟接收大约100个点。

总的来说,全局变量以100赫兹的速度更新。我想知道它是否对SSD产生负面影响?

我每隔1000就写一次蜱虫本身(~1Gb的一周)。所以,我对它没有意见。但在全局方面--以前没有想过,它们在每次更新时都被写入SSD。

这就是为什么我有这样一个问题。

每次更新时,它们不会被写入磁盘

 
fxsaber:

关于全局变量的一些建议。解决了从Market Watch保存ticks的问题。

每一个新的刻度都会使相应的全局变量增加一个。通过眼睛,Market Watch每秒钟接收大约100个点。

总的来说,全局变量以100赫兹的速度更新。我想知道它是否对SSD产生负面影响?

我每隔1000就写一次蜱虫本身(~1Gb的一周)。所以,我对它没有意见。但在全局方面--以前没有想过,它们在每次更新时都被写入SSD。

这就是为什么出现了这样一个问题。

我认为全局终端变量是通过资源实现的,并定期自动保存到磁盘。我认为自动保存发生的频率不会超过每3秒一次,很可能更少,甚至有可能只在脱机事件发生时发生。

 

我不想查找我曾经在帮助中读到的关于终端的全局变量 的内容,但似乎它们在终端关闭时被保存了--尽管我可能忘记了,我已经很久没有读过了。

检查起来比较容易,在Windows任务管理器中,有一个硬盘使用情况的图表。


 
Igor Makanu:

我不想查找我曾经在帮助中读到的关于终端的全局变量 的内容,但似乎它们在终端关闭时被保存了--尽管我可能忘记了,我已经很久没有读过了。

这很容易检查,在Windows任务管理器中,有一个硬盘使用率图表


可能是在这里的脚注中。

 
感谢每个人的回应。同花顺功能立即否定了任何矛盾的解释。