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 |
using QuantConnect.Data; using QuantConnect.Data.Consolidators; using QuantConnect.Data.Market; using QuantConnect.Data.UniverseSelection; using QuantConnect.Indicators; using System; using System.Collections.Generic; namespace QuantConnect.Algorithm.CSharp { public class ForumHistory : QCAlgorithm { private const int SmaPeriod = 140; private TimeSpan _barPeriod; private List<string> _instrumentNames = new List<string> { "SPY", "TLT" }; private Dictionary<Symbol, SimpleMovingAverage> _indicators = new Dictionary<Symbol, SimpleMovingAverage>(); private Dictionary<Symbol, IDataConsolidator> _consolidators = new Dictionary<Symbol, IDataConsolidator>(); public override void Initialize() { SetStartDate(2013, 10, 8); //Set Start Date SetEndDate(2013, 10, 18); //Set End Date SetCash(100000); //Set Strategy Cash // We need to operate 15-min bars _barPeriod = TimeSpan.FromMinutes(15); RefreshSymbols(); Schedule.On(DateRules.EveryDay(), TimeRules.At(11, 00), RefreshSymbols); } private void RefreshSymbols() { System.Console.WriteLine("Refreshing symbols"); foreach (var symbol in Portfolio.Securities.Keys) { System.Console.WriteLine("Liquidating " + symbol.Value.ToString()); if (Portfolio[symbol].Invested) { Liquidate(symbol); } Securities.Remove(symbol); } foreach (var symbol in _instrumentNames) { System.Console.WriteLine("Adding " + symbol); AddEquity(symbol); } } private void OnNewBar(object sender, IBaseData baseData) { var symbol = baseData.Symbol; _indicators[symbol].Update(baseData); if (_indicators[symbol].IsReady && _indicators[symbol].Current.Price > baseData.Price) SetHoldings(symbol, 0.2); } // this event fires whenever we have changes to our universe public void OnSecuritiesChanged(SecurityChanges changes) { if (changes.AddedSecurities.Count > 0) { foreach (var security in changes.AddedSecurities) { var symbol = security.Symbol; if (!_indicators.ContainsKey(symbol)) { var consolidator = (IDataConsolidator)new TradeBarConsolidator(_barPeriod); var SMA = new SimpleMovingAverage(CreateIndicatorName(symbol, "SMA" + SmaPeriod, Resolution.Minute), SmaPeriod); consolidator.DataConsolidated += OnNewBar; SubscriptionManager.AddConsolidator(symbol, consolidator); _consolidators.Add(symbol, consolidator); /* SOMEWHERE HERE I NEED TO FILL MY INDICATOR HISTORY */ /* BUT I DON't KNOW HOW */ var history = History<TradeBar>(symbol, TimeSpan.FromMinutes(15 * 140), Resolution.Minute); } } } if (changes.RemovedSecurities.Count > 0) { foreach (var security in changes.RemovedSecurities) { var symbol = security.Symbol; SubscriptionManager.RemoveConsolidator(symbol, _consolidators[symbol]); _indicators.Remove(symbol); _consolidators.Remove(symbol); } } } } }