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
Tracking Error
0
Treynor Ratio
0
Total Fees
$0.00
namespace QuantConnect.Algorithm.CSharp
{	
    public class ParticleMultidimensionalEngine : QCAlgorithm
    {
		private RenkoConsolidator renkoConsolidator;
		private FuturesContract frontmonthContract;
        public override void Initialize()
        {
            SetStartDate(2019, 9, 3);  //Set Start Date
            SetEndDate(2019, 12, 3);
            SetCash(100000);             //Set Strategy Cash
            
            // Subscribe to gold futures chain
            var gc = AddFuture(Futures.Metals.Gold);
            // Filter contracts to only front month contract
            gc.SetFilter(universe => universe.FrontMonth());
            
            // Define the Renko consolidator
            renkoConsolidator = new RenkoConsolidator(10);
            // Set DataConsolidated event handler for the Renko Consolidator
            renkoConsolidator.DataConsolidated += (sender, bar) => {
            	Debug($"Renko Bar Consolidated On {bar.EndTime} for {bar}");
            };
            

        }

        public override void OnData(Slice data)
        {
        	foreach(var chain in data.FutureChains){
        		// Get trade bars for contracts in chain
        		var tradebars = chain.Value.TradeBars;
        		// Get front month contract
        		var contract = chain.Value.FirstOrDefault();
        		
        		// If front month contract has been delisted/updated
        		if(frontmonthContract == null || (contract.Symbol != frontmonthContract.Symbol)){
        			frontmonthContract = contract;
        		}
        		
        		// Get symbol for front month contract
        		var symbol = frontmonthContract.Symbol;
        		
        		// Update Renko Consolidator with trade bar data
        		if(tradebars.Keys.Contains(symbol)){
        			var tradebar = tradebars[symbol];
        			renkoConsolidator.Update(tradebar);
        		}
        		
        		
        	}
        }

    }
}