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 -13.596 Tracking Error 0.033 Treynor Ratio 0 Total Fees $0.00 Estimated Strategy Capacity $0 |
using System; using QuantConnect.Data.Market; using QuantConnect.Data; using QuantConnect.Securities; using System.Collections.Generic; namespace QuantConnect.Algorithm.CSharp { public class ExampleRS : QCAlgorithm { // Contains all of our equity symbols public readonly IReadOnlyList<string> EquitySymbols = new List<string> { "NIO" }; public readonly IReadOnlyList<string> FSIPSymbols = new List<string> { "AMD","CCL","AAL","PLTR" }; private readonly DateTime startDate = new DateTime(2021, 4, 12, 0, 0, 0); private readonly DateTime endDate = new DateTime(2021, 4, 13, 0, 0, 0); private readonly decimal startingCash = 100000; private bool add = true; public override void Initialize() { SetStartDate(startDate.Date); // Set Start Date SetEndDate(endDate.Date); // Set End Date SetCash(startingCash); // Set Strategy Cash UniverseSettings.MinimumTimeInUniverse = new TimeSpan(0, 1, 0); foreach (var symbol in EquitySymbols) { const bool fillDataForward = true; // returns the last available data even if none in that timeslice const bool extendedMarketHours = true; // Show pre/post market data var equity = AddEquity(symbol, Resolution.Minute, Market.USA, fillDataForward, Security.NullLeverage, extendedMarketHours); } for (int i = -20; i < 0; i += 5) { Schedule.On(DateRules.Every(DayOfWeek.Tuesday), TimeRules.AfterMarketOpen(EquitySymbols[0], i), FindStocksToTrade); } } public void FindStocksToTrade() { Log("--- FindStocksToTrade ENTRY ---"); const bool fillDataForward = true; // returns the last available data even if none in that timeslice const bool extendedMarketHours = true; // Show pre/post market data foreach (var fsip in FSIPSymbols) { var symbol = QuantConnect.Symbol.Create(fsip, SecurityType.Equity, Market.USA); var histBars = History<TradeBar>(symbol, 60, Resolution.Minute); foreach (var histBar in histBars) { // Do stuff } if (add) // If we want to add the symbol { Log($" Add {symbol}"); AddEquity(fsip, Resolution.Minute, Market.USA, fillDataForward, Security.NullLeverage, extendedMarketHours); } else { Log($" Remove {symbol}"); RemoveSecurity(symbol); } } add = !add; Log("--- FindStocksToTrade EXIT ---"); } public override void OnData(Slice data) { //RemoveSecurity(Symbol.Create("PLTR", SecurityType.Equity, Market.USA)); if (Time.Hour == 9 && Time.Minute >= 20 && Time.Minute <= 35) { foreach (var kvp in Securities) { Log($"OnData: symbol = {kvp.Key}, hasData = {kvp.Value.HasData}"); } if (data.HasData) { foreach (var kvp in data) { Log($"OnData: symbol = {kvp.Key}, Price = {kvp.Value.Price}, EndTime = {kvp.Value.EndTime}"); } } } } public override void OnSecuritiesChanged(SecurityChanges changes) { if (changes.AddedSecurities.Count > 0) { Debug("Securities added: " + string.Join(",", changes.AddedSecurities.Select(x => x.Symbol.Value))); } if (changes.RemovedSecurities.Count > 0) { Debug("Securities removed: " + string.Join(",", changes.RemovedSecurities.Select(x => x.Symbol.Value))); } } } }