[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 315

 
chief2000 >> :

问题是它如何工作(优化指标)。

我的理解是否正确,每一个新的刻度线都有相同的矩形

(相同大小、相同数量的条子)将被删除并重新绘制?

是否值得增加对条数的检查(如果有更多的条数,才会重画)?

为了卸载计算机的CPU,还是说收益会很小,不值得乱来?

是的,而不是删除,ObjectCreate可以通过检查if(ObjectFind(RectangleSell)==-1){ ObjectCreate()}设置。

而其余的则不需要检查,这样你就不必在每次打勾时删除和重新设置一个对象。

if( MA_Fast[ i+1]> MA_Slow[ i+1]) {
   string RectangleSell = StringConcatenate("RECTANGLE_", StartBoxTime);   
   if(ObjectFind( RectangleSell)==-1){
      ObjectCreate( RectangleSell, OBJ_RECTANGLE, 0,  StartBoxTime, BoxLow,  EndBoxTime, BoxHigh);
     }
   ObjectSet( RectangleSell, OBJPROP_STYLE, STYLE_SOLID);
   ObjectSet( RectangleSell, OBJPROP_RAY, False);
   ObjectSet( RectangleSell, OBJPROP_WIDTH, 1);
   ObjectSet( RectangleSell, OBJPROP_BACK , True);
   ObjectSet( RectangleSell, OBJPROP_COLOR, ColorSell);
}
 
Vinin >> :

我们需要添加时间同步功能。

当然有发展,你可以展示如何在MA上实现它!

 
Vladimir11 >> :

你能给我建议吗,我正在按照每天的时间表工作。

而我想访问分钟数据。它是最新的还是旧的数据?

如果是实时的,它们会被更新,如果在D1的测试器中,数据M.在最后一个小节(实时的,而不是被测试的)。

 

这是我在论坛上的第一个帖子。我正在学习MQL4。我不知道以前是否有这样的问题,我没有找到。我想我需要使用 IndicatorCounted 函数,但我不知道如何做。我已经添加了300000的报价,现在当我试图启动指标挂时,我想我不应该指定所有的报价,而应该只指定某个报价,例如3000。 但我不想也重新计算所有的3000,我需要IndicatorCounted。 我不知道如何指定条件,只显示最后的3000而不重新计算已经通过的报价。

谢谢你的反馈。

 
depth_finde >> :

这是我在论坛上的第一个帖子。我正在学习MQL4。我不知道以前是否有这样的问题,我没有找到。我想我需要使用 IndicatorCounted 函数,但我不知道如何做。我已经添加了300000的报价,现在当我试图启动指标挂时,我想我不应该指定所有的报价,而应该只指定某个报价,例如3000。 但我不想也重新计算所有的3000,我需要IndicatorCounted。 我不知道如何指定条件,只显示最后的3000而不重新计算已经通过的报价。

谢谢你的反馈。

是的,像这样。

int start()
  {
   int counted_bars = IndicatorCounted();
//----
   if( counted_bars < 0) 
       return(-1);
//----
   if( counted_bars > 0) 
       counted_bars --;
   int pos = Bars - counted_bars;  
//----
   while( pos >= 0) 
     {
       ma1_buffer[ pos] = iMA(NULL, 0 , Period1* Коэфициент, 0, Метод_Вычисления_МА, Низ,  pos);
       ma2_buffer[ pos] = iMA(NULL, 0 , Period1* Коэфициент, 0, Метод_Вычисления_МА, Верх, pos);
       ma3_buffer[ pos] = iMA(NULL, 0 , Period2* Коэфициент, 0, Метод_Вычисления_МА, Низ,  pos);
       ma4_buffer[ pos] = iMA(NULL, 0 , Period2* Коэфициент, 0, Метод_Вычисления_МА, Верх, pos);
       ma5_buffer[ pos] = iMA(NULL, 0 , Period3* Коэфициент, 0, Метод_Вычисления_МА, Низ,  pos);
       ma6_buffer[ pos] = iMA(NULL, 0 , Period3* Коэфициент, 0, Метод_Вычисления_МА, Верх, pos);
       pos--;
       
     }
     
//----
   return(0);
  }
//+------------------------------------------------------------------+
 
costy_ писал(а)>>

如果是实时的,它们会被更新,如果在D1测试器中,数据M.在最后一个小节(实时的,而不是测试的)。

已私下回复

 
costy_ писал(а)>>

这或多或少是这样的。

可能不会,因为正如你在第一次运行中所显示的,将计算出的不是3000个而是300000个报价,所有这些都是有的。

 
depth_finde >> :

可能不会,因为你展示的第一次运行的方式,它不会读取3000个,而是300000个报价,有多少就有多少。

是的,只有一次,然后他们会改变!!!。

要使指标出现在整个图表上,而不是图表的一部分。

 
Vinin >> :

当面回答了。

>>非常感谢您!

 
costy_ писал(а)>>

嗯,是的,就一次,然后改变了!!!。

在整个图表上而不是在部分图表上显示指标。

这就是不下载所有30万个指标并等待5分钟加载的想法,而是在第一次运行时下载3000个,然后只下载那些有变化的指标。

如果我们在一个图表上有五个这样的指标,加载过程将需要25分钟。