Preço de fechamento do pregão anterior

 

Caros foristas,

No tempo gráfico de 5 minutos, no fechamento da primeira barra do pregão atual (09:05h), preciso obter o preço de fechamento (close) da barra das 17:55:00 do pregão anterior.

Com o código abaixo obtenho o preço de fechamento (close) das 17:45:00. Verifico se o dia da semana está entre segunda e sexta-feira e obtenho os dados do tempo (função CopyTime) e depois o preço de fechamento (função CopyClose).

Eu quero especificamente o preço de fechamento das "17:55:00"; alguém tem como ajudar? 

//---------------
datetime tm = TimeCurrent();
   if (StringToTime(tm) >= "09:00:00")
   {
   int start = 0; int count = 6;
   datetime Saida = "17:55:00";
   datetime tbar[];//dynamic array
   MqlDateTime stm;
   TimeToStruct(tm,stm);
   int i;
   double preco_close[];//dynamic array
   double close_preco[];//dynamic array
if ((string)stm.day_of_week >= 1 || (string)stm.day_of_week <=5)
         {
            CopyTime(_Symbol,PERIOD_M5,start,count,tbar);
            i=0;
            for(i=0; i<=count-1; i++)
            {
               if(TimeToString(tbar[i],TIME_DATE)!=TimeToString(tm,TIME_DATE) && TimeToString(tbar[i],TIME_MINUTES)== Saida)
               {
                  CopyClose(_Symbol,PERIOD_M5,start,count,preco_close);
                  First_Ind = (candle[0].open / preco_close[i])-1;
               }  
            }
        }
}
//----------------------------------------------------------

Grato.

Edilson 

 
Edilson Santos:

Caros foristas,

Eu quero especificamente o preço de fechamento das "17:55:00"; alguém tem como ajudar? 

Edilson 

Olá Edilson Santos,

Se quiser saber o preço de fechamento do dia anterior, basta utilizar:

CopyTime(_Symbol,PERIOD_D1,0,2,tbar);

Ou seja, basta utilizar o timeframe PERIOD_D1 e utilizar o preço de fechamento do dia anterior.

Abraços,
Malacarne 

 
Rodrigo Malacarne:

Olá Edilson Santos,

Se quiser saber o preço de fechamento do dia anterior, basta utilizar:

CopyTime(_Symbol,PERIOD_D1,0,2,tbar);

Ou seja, basta utilizar o timeframe PERIOD_D1 e utilizar o preço de fechamento do dia anterior.

Abraços,
Malacarne 

Muito obrigado pela resposta, mas o fechamento do minicontrato, no tempo gráfico de cinco minutos pode ocorrer às 18:00 ou 18:XX. Por isso, a necessidade de especificar um horário. Por isso coloquei em um loop. Esse loop obtém o preço das "17:45", mesmo em tendo atribuído à variável "Saida" o valor de "17:55".

Já tentei utilizar o MQLRates, mas essa estrutura obtém os valores de um número limitado de barras (três). Ou seja, não resolveu o meu problema.

//--------------------------------
MqlRates candle[];
count=4;
for(int i=0; i<=count-1;i++)
         {
            if(TimeToString(candle[i].time)==Saida)
                First_Ind = (candle[0].open / candle[i].close)-1;
         }
//------------------------------------

 

Edilson 

 
Edilson Santos:

Muito obrigado pela resposta, mas o fechamento do minicontrato, no tempo gráfico de cinco minutos pode ocorrer às 18:00 ou 18:XX. Por isso, a necessidade de especificar um horário. Por isso coloquei em um loop. Esse loop obtém o preço das "17:45", mesmo em tendo atribuído à variável "Saida" o valor de "17:55".

Já tentei utilizar o MQLRates, mas essa estrutura obtém os valores de um número limitado de barras (três). Ou seja, não resolveu o meu problema.

//--------------------------------
MqlRates candle[];
count=4;
for(int i=0; i<=count-1;i++)
         {
            if(TimeToString(candle[i].time)==Saida)
                First_Ind = (candle[0].open / candle[i].close)-1;
         }
//------------------------------------

Edilson 

Olá Edilson Santos,

Nesse caso você precisa utilizar a struct MqlDatetime para especificar hora e minuto de cada candle.

Segue link para estudos: https://www.mql5.com/pt/docs/constants/structures/mqldatetime

Abraços,
Malacarne 

Documentação sobre MQL5: Constantes Padrão, Enumeradores e Estruturas / Estruturas de Dados / Estrutura do Tipo Data
Documentação sobre MQL5: Constantes Padrão, Enumeradores e Estruturas / Estruturas de Dados / Estrutura do Tipo Data
  • www.mql5.com
Constantes Padrão, Enumeradores e Estruturas / Estruturas de Dados / Estrutura do Tipo Data - Referência sobre algorítimo/automatização de negociação na linguagem para MetaTrader 5
Razão: