Overall Statistics
namespace QuantConnect
{
    /// <summary>
    /// QCU Scheduled Events Algorithm
    /// </summary>
    public class ScheduledEventsAlgorithm : QCAlgorithm
    {
    	bool _ibMantenienceFlag = false;
    	
        /// <summary>
        /// Initialise the data and resolution required, as well as the cash and start-end dates for your algorithm. All algorithms must initialized.
        /// </summary>
        public override void Initialize()
        {
            SetStartDate(2013, 10, 07);  //Set Start Date
            SetEndDate(2013, 10, 11);    //Set End Date
            SetCash(100000);             //Set Strategy Cash
            // Find more symbols here: http://quantconnect.com/data
            AddSecurity(SecurityType.Equity, "SPY", Resolution.Minute);

                       // schedule an event to fire at a specific date/time
            Schedule.On(DateRules.EveryDay(),  TimeRules.At(23, 45), () =>
            {
                Log("IB mantenience Start : " + Time);
                _ibMantenienceFlag = true;
            });

           Schedule.On(DateRules.EveryDay(),  TimeRules.At(0, 15), () =>
            {
                Log("IB mantenience Ended : " + Time);
                _ibMantenienceFlag = false;
            });
            
        }

        /// <summary>
        /// OnData event is the primary entry point for your algorithm. Each new data point will be pumped in here.
        /// </summary>
        /// <param name="data">Slice object keyed by symbol containing the stock data</param>
        public override void OnData(Slice data)
        {
        	if(_ibMantenienceFlag) return;
            if (!Portfolio.Invested)
            {
                SetHoldings("SPY", 1);
            }
        }
    }
}