#define SYMBOL_NAME Symbol()
#define SESSION_INDEX 0
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
//--- affiche l'en-tête avec le symbole et le numéro de la session SESSION_INDEX et
//--- dans une boucle sur les jours de la semaine du lundi au vendredi, affiche les heures de début et de fin des sessions de trading dans le journal
PrintFormat("Symbol %s, Trade session %d:", SYMBOL_NAME, SESSION_INDEX);
for(int i=MONDAY; i<SATURDAY; i++)
SymbolInfoSessionTradePrint(SYMBOL_NAME, (ENUM_DAY_OF_WEEK)i, SESSION_INDEX);
/*
résultat :
Symbol GBPUSD, Trade 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
*/
}
//+------------------------------------------------------------------+
//| Ajoute au journal les heures de début et de fin de la session |
//| pour le symbole et le jour de la semaine spécifiés |
//+------------------------------------------------------------------+
void SymbolInfoSessionTradePrint(const string symbol, const ENUM_DAY_OF_WEEK day_of_week, const uint session_index)
{
//--- déclare les variables pour récupérer les heures de début et de fin de la session de trading
datetime date_from; // heure de début de la session
datetime date_to; // heure de fin de la session
//--- récupère les données de la session de trading par symbole et jour de la semaine
if(!SymbolInfoSessionTrade(symbol, day_of_week, session_index, date_from, date_to))
{
Print("SymbolInfoSessionTrade() failed. Error ", GetLastError());
return;
}
//--- crée le nom du jour de la semaine depuis la constante de l'énumération
string week_day=EnumToString(day_of_week);
if(week_day.Lower())
week_day.SetChar(0, ushort(week_day.GetChar(0)-32));
//--- envoie les données de la session de trading spécifiée dans le journal
PrintFormat("- %-10s %s - %s", week_day, TimeToString(date_from, TIME_MINUTES), TimeToString(date_to, TIME_MINUTES));
}
|