Análogo a iBarShift - página 17

 
Nikolai Semko:

Resultó ser muy matizado.

Si hubiera sabido lo complicado que sería, no me habría involucrado ))))

Esta versión debería funcionar correctamente.
Si alguien encuentra que funciona mal, le agradecería que informara del problema.


¡Bien hecho!

Gracias.

Construido, todo parece bien hasta ahora, la única cosa que tengo un problema con algunos gráficos dentados (de la actual TF buscando H1), pero he decidido no entender por qué hay una diferencia entre la otra versión (tal vez no es el cálculo correcto) ...

//+------------------------------------------------------------------+ 
//| Получим 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);
  }  

Pero la última variante ha funcionado mejor en las semanas.

 
Aleksey Vyazmikin:

¡Oh, eso es genial!

Gracias.

Lo construí, todo parece bueno hasta ahora, el único problema es con los gráficos rasgados (del TF actual buscando el H1), pero decidí no buscar por qué hay una diferencia entre la otra versión (tal vez no es el cálculo correcto)...

Pero la última versión funcionó mejor durante semanas.

Esta versión de iBarShift en su último post(también el mío) es mejor olvidarla. Tiene una serie de defectos. Es una explicación larga.

Utiliza esta versión.

 
Nikolai Semko:

esa versión de iBarShift en tu último post (también el mío) es mejor olvidarla. Tiene varios fallos. Es una explicación larga.

Utilice esta versión, pero sólo con este complemento.

Bien.

Razón de la queja: