Errores, fallos, preguntas - página 1460

 
no puedo encontrar el análogo de iBarsShiaft en MQL5 . sugerir ....
 
Vladimir Pastushak:
no puedo encontrar el análogo de iBarsShiaft en MQL5 . sugiera ....
int iBarShift(string symbol,
                  int tf,
                  datetime time,
                  bool exact=false)
  {
   if(time<0) return(-1);
   ENUM_TIMEFRAMES timeframe=TFMigrate(tf);
   datetime Arr[],time1;
   CopyTime(symbol,timeframe,0,1,Arr);
   time1=Arr[0];
   if(CopyTime(symbol,timeframe,time,time1,Arr)>0)
     {
      if(ArraySize(Arr)>2) return(ArraySize(Arr)-1);
      if(time<time1) return(1);
      else return(0);
     }
   else return(-1);
  }
 
Vladislav Andruschenko:

Lo he hecho de forma un poco diferente, creo que es más fiable:

//+------------------------------------------------------------------+
int BarsShift(const string sym,const ENUM_TIMEFRAMES tim,const datetime time)
  {
   if(time<0)return -1;
   datetime mas[]; int z=-1;
   while(z++<3)
      if(CopyTime(sym,tim,TimeCurrent(),time,mas)>0)
         return ArraySize(mas);
   else
      Sleep(500);
   Print(" Erorr Search BarsShift ",GetLastError());
   return -1;
  }
//+------------------------------------------------------------------+

¿Qué te parece?

 

Estimados colegas, ¿quién puede decirme cuál es el problema y por qué el indicador se desmorona (muchas flechas de más) después de un tiempo de funcionamiento?

Lo he notado sólo en el m1. Cuando vuelvo a activar el TF, todo se muestra con normalidad.

¿El problema está en el indicador o en el terminal y las cotizaciones m1?


Archivos adjuntos:
 
Aleksandr Novikov:

Estimados colegas, ¿quién puede decirme cuál es el problema y por qué el indicador se desmorona (muchas flechas de más) después de un tiempo de funcionamiento?

Lo he notado sólo en el m1. Cuando vuelvo a activar el TF, todo se muestra con normalidad.

¿El problema con el indicador o el terminal y las cotizaciones m1?


Borrar los búferes dentro del bucle al principio, antes de calcular los valores de los búferes.
Buffer[i]=0;
 
Vladimir Pastushak:
No puedo encontrar el análogo de iBarsShiaft en MQL5 . sugiera ....
En realidad, la segunda variante de la función Bars es un análogo directo, pero tiene algunos fallos. Para ser más precisos, lo hacían a principios de año, quizás ya estaban arreglados.
 

El compilador piensa y piensa y muere silenciosamente con el editor en este programa corto (32,64 bit, incluyendo diferentes OS - igual):

struct TCoord {
        int x, y;
};

void OnStart() {        
        TCoord coord = {100, 100};
        TCoord defaultCoord = {0,0};
        coord = (2 == 2) ? coord : defaultCoord;
}
En algún lugar un error en el optimizador.
Por cierto, cuando el MetaEditor se bloquea, su estado(archivos abiertos, configuración de la interfaz) no se guarda.
 
Aleksandr Novikov :


Cuando esto sucede, el indicador se reinicia... y todo vuelve a la normalidad.
 
Rodrigo da Silva Boa:
Cuando esto sucede, el indicador se reinicia... y todo vuelve a la normalidad.

No es necesario reiniciar nada. Lo que hay que limpiar en el ciclo de los indicadores es la basura de los tampones. Por ejemplo:

   for(int i=limit; i>=0; i--) {
      BufferPatternDN[i]=0;               // без обнуления буферов мусор в них появляется постоянно
      BufferPatternUP[i]=0;
      BufferLevelDN[i]=EMPTY_VALUE;
      BufferLevelUP[i]=EMPTY_VALUE;
      // ... остальной код расчёта буферов
      // ...
   }  // конец цикла

Sólo hay que añadir la puesta a cero del buffer al principio del ciclo, en lugar de reiniciar el indicador constantemente cuando hay basura en el gráfico

 

¿Cómo puedo vencer esto? Ubuntu en una caja virtual, todos los programas van en línea sin un proxy, conexión directa en todas partes

pero el terminal sigue pidiendo un proxy.