Perguntas de principiantes em MQL5. Os profissionais não passam por eles. - página 3

 

Talvez seja altura de pedir ajuda aos moderadores e pedir-lhes que eliminem os dois primeiros posts do tópico (espero que o Sr. Yedelkin não se ofenda, graças a ele por ter respondido às minhas perguntas) Espero que o senhor Yedelkin não fique ofendido, este cargo e renomear este tópico para"desejos de entusiastas sobre a melhoria do MT5" ou algo do género, à sua discrição... Vou tentar mudar o nome deste tópico por outra coisa, vou deixá-lo no seu lugar.

Talvez algum bem saia dele? Talvez eles o ouçam).

 

decidiu ler o ficheiro hst, masFileReadString deu hieróglifos.

Como é que combato isto?

Escrevo o cabeçalho µl4 de 5 "EURUSD" "(C)opyright 2003, MetaQuotes Software Corp. Estou a olhar para ela.

Eu recebo tudo menos as linhas, porque é assim?

remetente 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_:

e FileReadString renunciaram aos hieróglifos.

E são realmente hieróglifos... As consequências da externalização, ou um ovo de Páscoa em memória de Kim Jong-il)
 
Figar0:
E está realmente em hieróglifos... Consequências da externalização, ou ovo de Páscoa em memória de Kim Jong-il)
OUTROHLIFE E JUNG SIM KIN :(
 

Caros peritos do MT5, no terminal MT5 descobri que o número de barras (principalmente nos minutos) em intervalos de tempo por vezes é diferente.

Compreendo que se não houve alteração de preço durante a formação da barra, então a barra não é sorteada, ou seja, é ignorada.

Estou chocado. Quero verificá-lo.

É ou não verdade?

 
Edic:

Caros peritos do MT5, no terminal MT5 descobri que o número de barras (principalmente nos minutos) em intervalos de tempo por vezes é diferente.

Compreendo que se não houve alteração de preço durante a formação da barra, então a barra não é sorteada, ou seja, é ignorada.

Estou chocado. Quero verificá-lo.

É ou não verdade?

Se não houver carrapatos durante o período de formação da barra, a barra não será desenhada.
 

Como posso processar todos os objectos gráficos de um determinado tipo (por exemplo, OBJ_HLINE)?

Com ObjectsTotal posso descobrir o número de objectos deste tipo no gráfico, mas como posso enumerá-los através do mesmo, se não souber previamente o nome do objecto.

A tarefa específica é que preciso de enumerar todas as linhas horizontais do gráfico e colocar os seus valores numa matriz.

Obrigado

 
Olegts:

Como posso processar todos os objectos gráficos de um determinado tipo (por exemplo, OBJ_HLINE)?

Com ObjectsTotal posso descobrir o número de objectos deste tipo no gráfico, mas como posso enumerá-los através do mesmo, se não souber previamente o nome do objecto.

A tarefa específica é que preciso de enumerar todas as linhas horizontais do gráfico e colocar os seus valores numa matriz.

Obrigado

Usar"ObjectName" depois de "ObjectsTotal".
 
barabashkakvn:
Usar"ObjectName" depois de "ObjectsTotal".
Já está, obrigado)
 
barabashkakvn:
Se não houvesse carraças no período de tempo do bar, o bar não é construído.
Obrigado)
Razão: