Overall Statistics
Total Trades
1
Average Win
0%
Average Loss
0%
Compounding Annual Return
58.222%
Drawdown
2.500%
Expectancy
0
Net Profit
6.985%
Sharpe Ratio
4.106
Loss Rate
0%
Win Rate
0%
Profit-Loss Ratio
0
Alpha
0.767
Beta
-16.257
Annual Standard Deviation
0.111
Annual Variance
0.012
Information Ratio
3.929
Tracking Error
0.111
Treynor Ratio
-0.028
Total Fees
$3.25
namespace QuantConnect.Algorithm.CSharp
{
    /// <summary>
    /// Basic template algorithm simply initializes the date range and cash. This is a skeleton
    /// framework you can use for designing an algorithm.
    /// </summary>
    public class BasicTemplateAlgorithm : QCAlgorithm
    {
    	private string _spy_s="SPY";
    	private TradeBar _workingDailyBar,_workingWeeklyBar;
    	private bool   dailydataJustConsolidated = false,weeklydataJustConsolidated = false;
        private Symbol _spy = QuantConnect.Symbol.Create("SPY", SecurityType.Equity, Market.USA);
        private int totalticks,totaldays;

        /// <summary>
        /// Initialise the data and resolution required, as well as the cash and start-end dates for your algorithm. All algorithms must initialized.
        /// need to consolidate weekly bars.
        /// </summary>
        public override void Initialize()
        {
        	totalticks=0;
        	totaldays=0;
            SetStartDate(2013, 10, 03);  //Set Start Date
            SetEndDate(2013, 11, 25);    //Set End Date
            SetCash(100000);             //Set Strategy Cash

            // Find more symbols here: http://quantconnect.com/data
            // Forex, CFD, Equities Resolutions: Tick, Second, Minute, Hour, Daily.
            // Futures Resolution: Tick, Second, Minute
            // Options Resolution: Minute Only.
            AddEquity(_spy_s, Resolution.Second );
             
            TradeBarConsolidator dailyconsolidator = new TradeBarConsolidator(TimeSpan.FromDays(1) );
			dailyconsolidator.DataConsolidated += DailyHandler;
			SubscriptionManager.AddConsolidator(_spy_s, dailyconsolidator); 
			
     		TradeBarConsolidator weeklyconsolidator = new TradeBarConsolidator(TimeSpan.FromDays(7) );
			weeklyconsolidator.DataConsolidated += WeeklyHandler;
			SubscriptionManager.AddConsolidator(_spy_s, weeklyconsolidator);
			
			 // The time rule here tells it to fire 10 minutes before SPY's market close
Schedule.On(DateRules.EveryDay(_spy_s), TimeRules.BeforeMarketClose(_spy_s, 10), () =>
{
	Log("EveryDay.SPY 10 min before close: Fired at: " + Time);
});


            // There are other assets with similar methods. See "Selecting Options" etc for more details.
            // AddFuture, AddForex, AddCfd, AddOption
        }
        

        /// <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)
        {
        	ConsolidateDailyWeeklyBars( data);
        		totalticks++;
        	
            if (!Portfolio.Invested)
            {
                SetHoldings(_spy, 1);
                Debug("Purchased Stock");
            }
           // Log("OnData" + data.Time);
            
        }
        public void OnData(TradeBars data) {
    // TradeBars objects are piped into this method.
    Debug("????????got TradeBars " );
    
}

        
        private void ConsolidateDailyWeeklyBars(Slice data)
        {
        	//https://groups.google.com/forum/#!topic/lean-engine/JRKIP-QDwNs
        	


        
        	if(_workingWeeklyBar == null || weeklydataJustConsolidated)
        	{
        		        		

        	}
        	
        }
        protected DateTime GetRoundedBarTime(DateTime time)

{

// return last EOD time

return time.RoundDown(TimeSpan.FromDays(1));

}
         public override void OnEndOfDay(string symbol)
        {
            // close up shop each day and reset our 'last' value so we start tomorrow fresh
            Log("eod data" + symbol  + "total ticks" + 	totalticks);
           
        }
       
        public override void OnEndOfDay()
        {
            // close up shop each day and reset our 'last' value so we start tomorrow fresh
            Log("eod data" );
        }
       
       
        public void WeeklyHandler(object sender, TradeBar data) {
        	
        Log(" *****WeeklyHandler" + data.EndTime + "total days " + totaldays);
        totaldays=0;
        	
    // handle the data each daily here
}
 public void DailyHandler(object sender, TradeBar data) {
        	
        Log("Daily Handler" + data.EndTime + "total ticks" +  totalticks);
         totalticks=0;
            totaldays++;
        	
    // handle the data each daily here
}
    }
}