/*******************************************************************************
* Copyright (c) 2013 Luigi Sgro. All rights reserved. This
* program and the accompanying materials are made available under the terms of
* the Eclipse Public License v1.0 which accompanies this distribution, and is
* available at http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Luigi Sgro - initial API and implementation
******************************************************************************/
package com.quantcomponents.core.calendar;
import java.util.Date;
import java.util.TimeZone;
/**
* Trivial trading calendar, with a continuous trading period every day, weekend included.
*/
public class FlatCalendar implements ITradingCalendar {
public static final String NAME = "Flat Trading Calendar";
public static final String DESC = "Always open for trading";
public static final Date START_DATE = new Date(0L);
public static final Date END_DATE = new Date(Long.MAX_VALUE);
public static final TimeZone TIME_ZONE = TimeZone.getTimeZone("GMT");
private static final ITradingPeriod FLAT_TRADING_PERIOD = new ITradingPeriod() {
@Override
public int getStartHour() {
return 0;
}
@Override
public int getStartMinute() {
return 0;
}
@Override
public int getEndHour() {
return 24;
}
@Override
public int getEndMinute() {
return 0;
}
@Override
public boolean contains(int hour, int minute) {
return true;
}};
private static final ITradingPeriod[] FLAT_TRADING_PERIOD_ARRAY = new ITradingPeriod[] { FLAT_TRADING_PERIOD };
private static final ITradingDay FLAT_TRADING_DAY = new ITradingDay() {
@Override
public ITradingPeriod[] getTradingPeriods() {
return FLAT_TRADING_PERIOD_ARRAY;
}};
@Override
public String getName() {
return NAME;
}
@Override
public String getDescription() {
return DESC;
}
@Override
public Date getStartDate() {
return START_DATE;
}
@Override
public Date getEndDate() {
return END_DATE;
}
@Override
public TimeZone getTimeZone() {
return TIME_ZONE;
}
@Override
public ITradingDay tradingDay(Date date) {
return FLAT_TRADING_DAY;
}
@Override
public Boolean isIncludeAfterHours() {
return null;
}
@Override
public String[] getExchanges() {
return null;
}
}