| 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 );
}
}
}