Overall Statistics
Total Trades
0
Average Win
0%
Average Loss
0%
Compounding Annual Return
0%
Drawdown
0%
Expectancy
0
Net Profit
0%
Sharpe Ratio
0
Probabilistic Sharpe Ratio
0%
Loss Rate
0%
Win Rate
0%
Profit-Loss Ratio
0
Alpha
0
Beta
0
Annual Standard Deviation
0
Annual Variance
0
Information Ratio
-0.985
Tracking Error
0.572
Treynor Ratio
0
Total Fees
$0.00
/*
 * QUANTCONNECT.COM - Democratizing Finance, Empowering Individuals.
 * Lean Algorithmic Trading Engine v2.0. Copyright 2014 QuantConnect Corporation.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
*/

using QuantConnect.Interfaces;
using System.Collections.Generic;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Securities.Future;

namespace QuantConnect.Algorithm.CSharp
{
    /// <summary>
    /// Demonstration of how to initialize and use the RenkoConsolidator
    /// </summary>
    /// <meta name="tag" content="renko" />
    /// <meta name="tag" content="indicators" />
    /// <meta name="tag" content="using data" />
    /// <meta name="tag" content="consolidating data" />
    public class WeeklyAlgorithm : QCAlgorithm
    {
    	private FuturesContract frontmonthContract;
		private Future myFuture;

    	/// <summary>
        /// Initializes the algorithm state.
        /// </summary>
        public override void Initialize()
        {
        	SetTimeZone(NodaTime.DateTimeZone.Utc);
            SetStartDate(2020, 03, 01);
            SetEndDate(DateTime.Now.Date.AddDays(-1)); // Or use a relative date.
            SetCash(1000000);

            // Subscribe to futures chain
			myFuture = AddFuture(Futures.Indices.SP500EMini, Resolution.Hour, Market.CME , false, 0m);

			// Set Brokerage Model
			SetBrokerageModel(BrokerageName.InteractiveBrokersBrokerage, AccountType.Margin);

			// Filter for front month contracts, ignore non-front month contracts
			myFuture.SetFilter(universe => universe.FrontMonth());

			Schedule.On(DateRules.WeekStart(myFuture.Symbol), TimeRules.At(0, 0), () =>
			{
				Debug($"WeekStart(myFuture.Symbol), TimeRules.At(0, 0) fired at: {myFuture.Symbol} {Time}");
			});

			Schedule.On(DateRules.WeekEnd(myFuture.Symbol), TimeRules.At(0, 0), () =>
			{
				Debug($"WeekEnd(myFuture.Symbol), TimeRules.At(0, 0) fired at: {myFuture.Symbol} {Time}");
			});

            Schedule.On(DateRules.WeekStart(myFuture.Symbol), TimeRules.AfterMarketOpen(myFuture.Symbol), () =>
            {
				Debug($"WeekStart(myFuture.Symbol), TimeRules.AfterMarketOpen(myFuture.Symbol) fired at: {myFuture.Symbol} {Time}");
            });

            Schedule.On(DateRules.WeekEnd(myFuture.Symbol), TimeRules.BeforeMarketClose(myFuture.Symbol), () =>
            {
				Debug($"WeekEnd(myFuture.Symbol), TimeRules.BeforeMarketClose(myFuture.Symbol) fired at: {myFuture.Symbol} {Time}");
            });
		}

        public void OnData(TradeBars data)
        {
        }
        
        public void OnData(Slice data)
        {
		}
	}
}