SymbolInfoSessionTrade

Permite obter a hora de início e término da sessão de negociação especificada para o símbolo e dia da semana indicados.

bool  SymbolInfoSessionTrade(
   string            name,                // nome do ativo
   ENUM_DAY_OF_WEEK  day_of_week,         // dia da semana
   uint              session_index,       // índice da sessão
   datetime&         from,                // hora de início da sessão
   datetime&         to                   // hora de término da sessão
   );

Parâmetros

name

[in]  Nome do ativo.

ENUM_DAY_OF_WEEK

[in]  Dia da semana, um valor da enumeração ENUM_DAY_OF_WEEK.

uint

[in]  Número ordinal da sessão para a qual se deseja obter o horário de início e término. A indexação das sessões começa em 0.

from

[out]  Hora de início da sessão em segundos a partir de 00:00. A data no valor obtido deve ser ignorada.

to

[out]  Hora de término da sessão em segundos a partir de 00:00. A data no valor obtido deve ser ignorada.

Valor de retorno

Se os dados para a sessão, símbolo e dia da semana especificados forem obtidos, retorna true; caso contrário, retorna false.

Exemplo:

#define SYMBOL_NAME   Symbol()
#define SESSION_INDEX 0
 
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- imprime o cabeçalho com o símbolo e o índice da sessão SESSION_INDEX e
//--- em um loop de segunda a sexta, imprime no log a hora de início e término da sessão de negociação
   PrintFormat("Symbol %s, Trade session %d:"SYMBOL_NAMESESSION_INDEX);
   for(int i=MONDAYi<SATURDAYi++)
      SymbolInfoSessionTradePrint(SYMBOL_NAME, (ENUM_DAY_OF_WEEK)iSESSION_INDEX);
   /*
   resultado:
   Symbol GBPUSDTrade session 0:
   - Monday     00:15 - 23:55
   - Tuesday    00:15 - 23:55
   - Wednesday  00:15 - 23:55
   - Thursday   00:15 - 23:55
   - Friday     00:15 - 23:55
   */
  }
//+------------------------------------------------------------------+
//| Imprime no log o horário de início e término da sessão |
//| de negociação para o símbolo e dia da semana especificados |
//+------------------------------------------------------------------+
void SymbolInfoSessionTradePrint(const string symbolconst ENUM_DAY_OF_WEEK day_of_weekconst uint session_index)
  {
//--- declaramos variáveis para armazenar o início e término da sessão de negociação
   datetime date_from;  // hora de início da sessão
   datetime date_to;    // hora de término da sessão
   
//--- obtemos os dados da sessão de negociação para o símbolo e dia da semana
   if(!SymbolInfoSessionTrade(symbolday_of_weeksession_indexdate_fromdate_to))
     {
      Print("SymbolInfoSessionTrade() failed. Error "GetLastError());
      return;
     }
     
//--- criamos o nome do dia da semana a partir da constante de enumeração
   string week_day=EnumToString(day_of_week);
   if(week_day.Lower())
      week_day.SetChar(0ushort(week_day.GetChar(0)-32));
 
//--- imprimimos no log os dados da sessão de negociação especificada
   PrintFormat("- %-10s %s - %s"week_dayTimeToString(date_fromTIME_MINUTES), TimeToString(date_toTIME_MINUTES));
  }

Também Veja

Propriedade de Ativo, TimeToStruct, Estrutura de Dados