改变TF是一个问题 - 页 6

 
Vasyl Nosal:
就这样了?它不会出现故障吗?
不是代码出了问题。:)拿着它并使用它。
 
Sergei Vladimirov:

Vladimir,你为什么要在OnCalculate()里面做这个?我是指最后两行--数组的重新初始化。你在每个柱子上都计算了两个缓冲区,这是一个不必要的动作。

if(prev_calculated==0)
{
   limit=rates_total-1;
   ArrayInitialize(up_arr,EMPTY_VALUE);
   ArrayInitialize(down_arr,EMPTY_VALUE);
}
为什么你决定初始化将在每个tick 上进行?条件prev_calculated==0在指标开始时被执行一次或两次。在操作过程中,如果历史被改变,prev_calculated==0可能会变成这样--但它很少或从不,历史的改变需要重新计算指标。
 
Sergei Vladimirov:
不是代码出了问题。:)拿着它并使用它。

谢谢你:))))))))))))))))))))))))))))))))))))))))))))))))))

谁是下一个?

 
Karputov Vladimir:
为什么你决定初始化将在每一个刻度上进行?条件prev_calculated==0在启动指标时被执行一次或两次。在操作过程中,如果历史被改变,prev_calculated==0可能会变成--但它很少甚至从来没有,历史的改变需要重新计算指标。
在加载历史记录时,你能不对缓冲区进行清零吗?
 
Karputov Vladimir:
你为什么认为初始化会在每个tick上发生?
我在哪里写过这个?我问的是,如果你在所有的柱子上都计算了缓冲区,为什么还要在OnCalculate() 中重新初始化缓冲区。
 
Sergei Vladimirov:
我在哪里写过这个?我问的是,如果你在所有的柱子上都计算了缓冲区,为什么还要在OnCalculate()中重新初始化缓冲区。
不正确的说法。当prev_calculated==0时,我随后绕过了所有的条形图,但它不能保证替换指标缓冲区 中的所有值。因此,当prev_calculated==0时,你需要清除指标缓冲区。
 
Vasyl Nosal:

谢谢你:))))))))))))))))))))))))))))))))))))))))))))))))))

谁是下一个?

为什么要撒谎?

 
Karputov Vladimir:
不正确的说法。当prev_calculated==0时,我随后绕过了所有的条形图,但它不能保证替换指标缓冲区 中的所有数值。因此,在prev_calculated==0时,我需要清除指标缓冲区。

是吗?你能给我一个例子,说明在你的代码中,某些缓冲区的某些值不会被填充?也许除了故事中的第一个酒吧。

 
Sergei Vladimirov:

为什么要撒谎?

天才。

你是否试过换成没有历史记录的一对,然后再换成另一个TF?

 
Sergei Vladimirov:

这不是一个声明,而是一个问题。

是吗?也许你可以给我们一个例子,在你的代码中,一些缓冲区的某些值不会被填充?

你知道,让我们这样做:从 篇文章中提取代码1.43,并注释掉这几行。

if(prev_calculated==0)
{
   limit=rates_total-1;
//ArrayInitialize(up_arr,EMPTY_VALUE);
//ArrayInitialize(down_arr,EMPTY_VALUE);
}

并在将图形滚动到历史的后面时看一下结果,并有历史的加载。