#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 o horário de início e término da sessão de cotação
PrintFormat("Symbol %s, Quote session %d:", SYMBOL_NAME, SESSION_INDEX);
for(int i=MONDAY; i<SATURDAY; i++)
SymbolInfoSessionQuotePrint(SYMBOL_NAME, (ENUM_DAY_OF_WEEK)i, SESSION_INDEX);
/*
resultado:
Symbol RU000A103661, Quote session 0:
- Monday 06:45 - 00:00
- Tuesday 06:45 - 00:00
- Wednesday 06:45 - 00:00
- Thursday 06:45 - 00:00
- Friday 06:45 - 00:00
*/
}
//+------------------------------------------------------------------+
//| Imprime no log o horário de início e término da sessão |
//| de cotação para o símbolo e dia da semana especificados |
//+------------------------------------------------------------------+
void SymbolInfoSessionQuotePrint(const string symbol, const ENUM_DAY_OF_WEEK day_of_week, const uint session_index)
{
//--- declaramos variáveis para armazenar o início e término da sessão de cotaçã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 cotação para o símbolo e dia da semana
if(!SymbolInfoSessionQuote(symbol, day_of_week, session_index, date_from, date_to))
{
Print("SymbolInfoSessionQuote() 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(0, ushort(week_day.GetChar(0)-32));
//--- imprimimos no log os dados da sessão de cotação especificada
PrintFormat("- %-10s %s - %s", week_day, TimeToString(date_from, TIME_MINUTES), TimeToString(date_to, TIME_MINUTES));
}
|