#define SYMBOL_NAME Symbol()
#define SESSION_INDEX 0
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
//--- 심볼과 SESSION_INDEX로 헤더를 인쇄하고
//--- 월요일부터 금요일까지 요일별 루프에서 거래 세션의 시작 및 종료 시간을 저널에 인쇄합니다.
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);
/*
결과:
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
*/
}
//+------------------------------------------------------------------+
//| 지정된 거래 세션의 시작 및 종료 시간 보내기 |
//| 지정된 심볼 및 요일에 대한 저널 |
//+------------------------------------------------------------------+
void SymbolInfoSessionTradePrint(const string symbol, const ENUM_DAY_OF_WEEK day_of_week, const uint session_index)
{
//--- 거래 세션의 시작과 끝을 기록하는 변수를 선언합니다.
datetime date_from; // 세션 시작 시간
datetime date_to; // 세션 종료 시간
//--- 심볼 및 요일별로 거래 세션에서 데이터를 가져옵니다.
if(!SymbolInfoSessionTrade(symbol, day_of_week, session_index, date_from, date_to))
{
Print("SymbolInfoSessionTrade() failed. Error ", GetLastError());
return;
}
//--- 열거형 상수로부터 요일 이름을 생성합니다.
string week_day=EnumToString(day_of_week);
if(week_day.Lower())
week_day.SetChar(0, ushort(week_day.GetChar(0)-32));
//--- 지정된 거래 세션에 대한 데이터를 저널로 보냅니다.
PrintFormat("- %-10s %s - %s", week_day, TimeToString(date_from, TIME_MINUTES), TimeToString(date_to, TIME_MINUTES));
}
|