Hi!

I'm trying to use capabilities of Rolling window and got an error:

" System.ArgumentOutOfRangeException: Must be between 0 and 0
Parameter name: i
Actual value was 1. "

using System; using QuantConnect.Data.Market; using QuantConnect.Indicators; namespace QuantConnect.Algorithm.CSharp { public class BasicTemplateAlgorithm : QCAlgorithm { private Symbol _symbol = QuantConnect.Symbol.Create("BTCUSD", SecurityType.Crypto, Market.GDAX); private RollingWindow<decimal> Close; public override void Initialize() { SetStartDate(DateTime.Now.Date.AddDays(-30)); //Set Start Date SetEndDate(DateTime.Now.Date.AddDays(-1)); //Set End Date SetCash(10000); //Set Strategy Cash AddSecurity(SecurityType.Equity, _symbol, Resolution.Hour); Close = new RollingWindow<decimal>(2); } public void OnData(TradeBars data) { Close.Add(data[_symbol].Close); var Close_priv = Close[1]; var Close_cur = Close[0]; var holding = Portfolio[_symbol]; var SellCondition = (Close_priv > Close_cur); var BuyCondition = (Close_priv < Close_cur); if (holding.Quantity == 0) //no position { if (BuyCondition) { SetHoldings(_symbol, 1.0); } else if (SellCondition) { SetHoldings(_symbol, -1.0); } } else if (holding.Quantity > 0) //in long position { if (SellCondition) { Liquidate(_symbol); SetHoldings(_symbol, -1.0); } } else if (holding.Quantity < 0) //in short position { if (BuyCondition) { Liquidate(_symbol); SetHoldings(_symbol, 1.0); } } } } }

Author