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 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 { /* * QuantConnect University: Full Basic Template: * * The underlying QCAlgorithm class is full of helper methods which enable you to use QuantConnect. * We have explained some of these here, but the full algorithm can be found at: * https://github.com/QuantConnect/QCAlgorithm/blob/master/QuantConnect.Algorithm/QCAlgorithm.cs */ public class BasicTemplateAlgorithm : QCAlgorithm { private static int PERIOD_DAYS = 5; private static decimal BB_UPPER_STD_DEV = 3.0m; //Initialize the data and resolution you require for your strategy: public override void Initialize() { //Start and End Date range for the backtest: SetStartDate(2016, 3, 16); // Keep the end date consistient //SetEndDate(DateTime.Now.Date.AddDays(-1)); SetEndDate(2016, 6, 1); //Cash allocation SetCash(25000); UniverseSettings.MinimumTimeInUniverse = TimeSpan.FromDays(1); // So securities don't 'hang around' in the Universe when no longer selected UniverseSettings.Resolution = Resolution.Daily; // 5 for testing AddUniverse(Universe.DollarVolume.Top( 5 )); } //Data Event Handler: New data arrives here. "TradeBars" type is a dictionary of strings so you can access it by symbol. public override void OnData(Slice slice) { var bars = slice.Bars; // e.g. bars["IBM"].Open string logString = Time.Date.ToString() + " " + bars.Count.ToString() + " tickers: "; foreach(string ticker in bars.Keys) { logString = logString + ticker; SimpleMovingAverage sma = SMA(ticker, PERIOD_DAYS, Resolution.Daily, Field.Close); BollingerBands upperBB = BB(ticker, PERIOD_DAYS, BB_UPPER_STD_DEV, MovingAverageType.Simple, Resolution.Daily); // WORKS IF COMMENT OUT THIS LINE var history = History(ticker, PERIOD_DAYS); foreach (var tradeBar in history) // explicitly populate the inidcators with historical data { //Console.WriteLine( tradeBar.EndTime.ToString() + " " + tradeBar.Close); //upperBB.Update(tradeBar.EndTime, tradeBar.Close); sma.Update(tradeBar.EndTime, tradeBar.Close); } logString = logString + " SMA: " + sma; //logString = logString + " Upper: " + upperBB.UpperBand; logString = logString + " "; } Console.WriteLine( logString ); } } }