改变TF是一个问题 - 页 3

 
Vasyl Nosal:

我有一个想法。我以后再写。

这个想法已经死了。

我会要求开发人员制作类似HistoryUpdated()系统的东西,检查所有历史是否被更新。

一个最佳的变体。要保持所有时间段的历史记录是最新的。最近在CodeBase 中出现了一个类似的指标
[删除]  
Slawa:

开发人员 不会帮助你,因为他们不会。

已经说过:如果rate_total和prev_calculated之间的差异大于1,那么就是historyUpdated。

大于0,而不是1。

И?这是否解决了问题?

或者对你来说,在每一个新的条形图 上重新计算整个故事是没有问题的?

 
Vasyl Nosal:

大于0,而不是1。

И?这是否解决了问题?

或者对你来说,在每一个新的条形图 上重新计算整个故事是没有问题的?

你被告知的情况是正确的。大于1.当新条形图出现时,差值为1。

而这完全解决了问题。

一个正常的指标需要很少的时间来完全重新计算。不到一秒钟。

[删除]  
Victor Nikolaev:

你被告知的情况是正确的。超过1.当一个新的柱子出现时,差值为1。

而这完全解决了问题。

一个正常的指标需要很少的时间来完全重新计算。不到一秒钟。

只有在缓冲区被清零的情况下才有效。

//history update
  int all=rates_total;
  int counted=prev_calculated;
  if(all-counted>1)
  { 
  ArrayInitialize(up_arr,EMPTY_VALUE);
  ArrayInitialize(down_arr,EMPTY_VALUE);
  counted=0;
  }
   
   //main
 for(int i=all-counted;i>=0;i--)
{
 
Vasyl Nosal:

只有当你把缓冲区重置为零时,它才会起作用。

//history update
  int all=rates_total;
  int counted=prev_calculated;
  if(all-counted>1)
  { 
  ArrayInitialize(up_arr,EMPTY_VALUE);
  ArrayInitialize(down_arr,EMPTY_VALUE);
  counted=0;
  }
   
   //main
 for(int i=all-counted;i>=0;i--)
{

抱歉,但让我问一下。

  • 为什么你需要把rate_total和prev_calculated分配给在这里的每个tick 上创建的单独变量?
  • 在表达条件运算符if()和循环for()中要重新计算这些变量的差值吗?
  • 为什么不直接引入一个变量来表示 rates_total 和 prev_calculated 之间的差异,比如说 limit?
根据任务的不同,实施方式也可能不同。细微的差别可能是不同的。你为什么不看看别人是如何实施的,这取决于不同的条件?包括,并在引子的帮助下,根据任务的不同,理解、决定、形成自己可接受的变体?
 
Vasyl Nosal:

P.S. 我将在此基础上补充。

你关于在条件运算符if(){}块中归零(counted=0)的想法对我来说似乎很清楚。

为了让你更清楚我上面的意思,这里摘录了文档 中的一个部分......。语言基础知识 / 函数 / 事件处理函数

... 如果自上次调用OnCalculate()后,价格数据发生了变化(抽出了更深的历史或填补了历史空白),那么输入参数prev_calculated的值将被终端本身设置为零。

 
Vasyl Nosal:

只有当你把缓冲区重置为零时,它才会起作用。

你不需要重置任何东西。

int OnCalculate(...)
{
   // индекс последнего посчитанного на прошлом вызове бара
   // с которого начинаем расчёт
   int nStartBar = rates_total - MathMax(prev_calculated, 1);

   for(int i = nStartBar; i >= 0; i--)
   {
       // рассчитываем индикатор на всех непосчитанных барах
   }
}

如果你把prev_caclulated重置为零,指标将完全重新计算。而这是正确的--你不知道在历史上到底发生了什么变化。也许,有的孔被装上了,也许螺柱在什么地方被清理了。有义务完全重新计算。在所有其他情况下,只有最后一个柱子会被重新计算(当一个新的柱子 出现时,最后两个)。

[删除]  
Dina Paches:

抱歉,但让我问一下。

  • 为什么你需要在每次打勾时将rate_total和prev_calculated的值分配给不同的变量?
  • 在有条件的if()语句和for()循环中,你是否重新计算这些变量的差异?
  • 为什么不直接输入一个变量来表示 rates_total 和 prev_calculated 之间的差异,例如 limit?
根据任务的不同,实施方式也会有所不同。细微的差别可能是不同的。你为什么不看看别人是如何实施的,这取决于不同的条件?包括,并在引子的帮助下,根据任务的不同,理解、决定、形成自己可接受的变体?

谢谢你。说得好。

不是的。这是为了在有差距的情况下,你可以重新计算整个历史。

[删除]  
Dina Paches:

P.S. 我将在此基础上补充。

你关于在条件运算符if(){}块中归零(counted=0)的想法对我来说似乎很清楚。

为了让你更清楚我上面的意思,这里摘录了文档 中的一个部分......。语言基础知识 / 函数 / 事件处理函数

... 如果自上次调用OnCalculate()后,价格数据发生了变化(抽出了更深的历史或填补了历史空白),那么输入参数prev_calculated的值将被终端自己设置为零。

不会的。它是0,然后不是0,然后又是0(当加载历史几次后)。
[删除]  
Sergei Vladimirov:

不需要重置任何东西。

如果你把prev_caclulated清零,指标将完全重新计算。而这是正确的--你不知道在历史上到底发生了什么变化。也许,有的孔被装上了,也许螺柱在什么地方被清理了。有义务完全重新计算。在所有其他情况下,只有最后一个柱子会被重新计算(当一个新的柱子 出现时,最后两个)。

不,没有归零就会是截图显示的那样。