Preguntas para principiantes en MQL5. Los profesionales no pasan de largo. - página 3

 

Quizá sea el momento de pedir ayuda a los moderadores y pedirles que borren los dos primeros mensajes del hilo (espero que el señor Yedelkin no se ofenda, gracias a él por responder a mis preguntas) Espero que el señor Yedelkin no se ofenda, este post y cambie el nombre de este tema a"deseos de los entusiastas en la mejora de MT5" o algo así a su discreción... Si no sabes qué hacer con él, intenta que sea lo más sencillo posible.

¿Tal vez salga algo bueno de esto? Tal vez lo escuchen).

 

decidió leer el archivo hst, peroFileReadString dio jeroglíficos.

¿Cómo puedo luchar contra esto?

Escribo la cabecera µl4 de 5 "EURUSD " "(C)opyright 2003, MetaQuotes Software Corp. Lo estoy viendo.

Lo entiendo todo menos las líneas, ¿por qué es así?

remitente 5

#define AMOUNT_OHLCV 5 
static double OLHCV[AMOUNT_OHLCV];

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void  OnStart()  {

  int Tmp[15];
  for(int t=0;t<ArraySize(Tmp);t++)
      Tmp[t]=0;
  string Symbol_Create  = "EURDDD";     
  string FileName = Symbol_Create + "1.hst";
  int handle = FileOpen(FileName, FILE_BIN|FILE_WRITE);
   
  string s="";
  s=s+"FileWriteInteger "+FileWriteInteger(handle, 400,4)+"\n";            
  s=s+"FileWriteString "+FileWriteString(handle, "(C)opyright 2003, MetaQuotes Software Corp.",32)+"\n"; 
  s=s+"FileWriteString "+FileWriteString(handle, Symbol_Create, 6)+"\n"; //Symbol      
  s=s+"FileWriteInteger "+FileWriteInteger(handle, 1,4)+"\n";   //Period        
  s=s+"FileWriteInteger "+FileWriteInteger(handle, 4,4)+"\n";  //Digits           
  s=s+"FileWriteArray "+FileWriteArray(handle, Tmp, 0, 15)+"\n";           
  Comment(s);


   MqlRates EURUSD[];
   int bars=CopyRates("EURUSD",1,0,Bars("EURUSD",1),EURUSD);
   ArraySetAsSeries(EURUSD,true);
   
   for(int i=bars-1;i>=0;i--){
        OLHCV[0] = EURUSD[i].open;
        OLHCV[1] = EURUSD[i].low;
        OLHCV[2] = EURUSD[i].high;
        OLHCV[3] = EURUSD[i].close;
        OLHCV[4] = EURUSD[i].real_volume;
        
        double Tmph = OLHCV[ArrayMaximum(OLHCV,0, AMOUNT_OHLCV - 1)];
        OLHCV[1] = OLHCV[ArrayMinimum(OLHCV, 0, AMOUNT_OHLCV - 1)];
        OLHCV[2] = Tmph;
        FileWriteInteger(handle,EURUSD[i].time,4);  
        FileWriteArray(handle, OLHCV, 0, AMOUNT_OHLCV);
    }
  FileFlush(handle);
  FileClose(handle);
return;
}

receptor 4

int start(){
  int Tmp[15];
  for(int t=0;t<ArraySize(Tmp);t++)
      Tmp[t]=0;
  string FileName = "EURDDD1.hst",s="";
  int handle = FileOpenHistory(FileName, FILE_BIN|FILE_WRITE|FILE_READ);

  s= s+FileReadInteger(handle,4)+"\n";            
  s= s+FileReadString(handle,64)+"\n"; 
  s= s+FileReadString(handle,12)+"\n";     
  s= s+FileReadInteger(handle,4)+"\n";           
  s= s+FileReadInteger(handle,4)+"\n";             
  s= s+FileReadArray(handle, Tmp, 0, 15)+"\n";  

  for(int i=20/*(FileSize(handle)-148)/44*/;i>=0;i--){
         s= s+TimeToStr(FileReadInteger(handle,4))+"\n";             
         s= s+FileReadDouble(handle,8)+"\n";             
         s= s+FileReadDouble(handle,8)+"\n";             
         s= s+FileReadDouble(handle,8)+"\n";             
         s= s+FileReadDouble(handle,8)+"\n";             
         s= s+FileReadDouble(handle,8)+"\n";            
         s= s+"-----------------------------------------"+"\n";
  }
  Comment(s);
  return;
}
 
costy_:

y FileReadString abandonó los jeroglíficos.

Y realmente son jeroglíficos... Las consecuencias de la subcontratación, o un huevo de pascua en memoria de Kim Jong-il)
 
Figar0:
Y realmente está en jeroglífico... Consecuencias de la externalización, o huevo de pascua en memoria de Kim Jong-il)
OUTROHLIFE Y JUNG SIM KIN :(
 

Estimados expertos de MT5, en el terminal MT5 he descubierto que el número de barras (en los minutos principalmente) en los mismos intervalos de tiempo es a veces diferente.

Entiendo que si no hubo cambio de precio durante la formación de la barra, entonces la barra no se dibuja en absoluto, es decir, se salta.

Estoy sorprendido. Quiero comprobarlo.

¿Es cierto o no?

 
Edic:

Estimados expertos de MT5, en el terminal MT5 he descubierto que el número de barras (en los minutos principalmente) en los mismos intervalos de tiempo es a veces diferente.

Entiendo que si no hubo cambio de precio durante la formación de la barra, entonces la barra no se dibuja en absoluto, es decir, se salta.

Estoy sorprendido. Quiero comprobarlo.

¿Es cierto o no?

Si no hay ticks durante el tiempo de formación de la barra, la barra no se dibujará.
 

¿Cómo puedo procesar todos los objetos gráficos de un determinado tipo (por ejemplo, OBJ_HLINE)?

Con ObjectsTotal puedo averiguar el número de objetos de este tipo en el gráfico, pero cómo puedo enumerarlos a través del mismo para, si no conozco el nombre del objeto de antemano.

La tarea específica es que necesito enumerar todas las líneas horizontales del gráfico y obtener sus valores en un array.

Gracias

 
Olegts:

¿Cómo puedo procesar todos los objetos gráficos de un determinado tipo (por ejemplo, OBJ_HLINE)?

Con ObjectsTotal puedo averiguar el número de objetos de este tipo en el gráfico, pero cómo puedo enumerarlos a través del mismo para, si no conozco el nombre del objeto de antemano.

La tarea específica es que necesito enumerar todas las líneas horizontales del gráfico y obtener sus valores en un array.

Gracias

Utilice"ObjectName" después de "ObjectsTotal".
 
barabashkakvn:
Utilice"ObjectName" después de "ObjectsTotal".
Lo tengo, gracias)
 
barabashkakvn:
Si no hay ticks en el marco temporal de la barra, la barra no se construye.
Gracias)
Razón de la queja: