类似于iBarShift - 页 17

 
Nikolai Semko:

结果是非常微妙的。

如果我知道会有多复杂,我就不会参与其中了))))。

这个版本应该能正确工作。
如果有人发现它的工作方式不正确,如果他们能报告这个问题,我将非常感激。


干得好!

谢谢你!

建立了它,目前看来一切都很好,我唯一的问题是一些锯齿状的图表(从当前的TF寻找H1),但我已经决定不理解为什么其他版本之间会有差异(也许是计算方式不对)...

//+------------------------------------------------------------------+ 
//| Получим iBarShift для заданного номера бара                      | +++
//+------------------------------------------------------------------+    
int iBarShift(const string Symb,const ENUM_TIMEFRAMES TimeFrame,datetime time,const bool Exact=false)
  {
   static int Res=-1;
   static string LastSymb=NULL;
   static ENUM_TIMEFRAMES LastTimeFrame=0;
   static datetime LastTime=0;
   static bool LastExact=false;
   static int PerSec=::PeriodSeconds(LastTimeFrame);
   
   if (LastTimeFrame!=TimeFrame) PerSec=::PeriodSeconds(TimeFrame);
   time-=time%PerSec;

   if((time!=LastTime) || (Symb!=LastSymb) || (TimeFrame!=LastTimeFrame) || (Exact!=LastExact))
     {
      Res=::Bars(Symb,TimeFrame,time,UINT_MAX)-1;
      if(Res<0) Res=0;

      LastTime = time;
      LastSymb = Symb;
      LastTimeFrame=TimeFrame;
      LastExact=Exact;
     }

   return(Res);
  }  

但最后一个变体在几周内效果更好!

 
Aleksey Vyazmikin:

哦,那太好了

谢谢你!

建好了,目前看来一切都很好,唯一的问题是撕裂的图表(从当前的TF寻找H1),但我决定不研究为什么其他版本之间会有差异(也许是计算方式不对)...

但最后一个版本在几周内工作得更好!

你上一篇文章中的这个版本的iBarShift(也是我的)最好忘记。它有一些缺陷。这是个很长的解释。

使用这个版本

 
Nikolai Semko:

你上一篇文章中的那个版本的iBarShift(也是我的)最好忘记。它有一些错误。这是个很长的解释。

使用这个版本,但只能使用这个插件

好的。