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 -0.403 Tracking Error 0.162 Treynor Ratio 0 Total Fees $0.00 Estimated Strategy Capacity $0 Lowest Capacity Asset |
using Newtonsoft.Json; using System; using System.Collections.Generic; namespace ApiResponseModels { public sealed class BarsResponse { [JsonProperty("results")] public List<BarResults>? Results { get; set; } [JsonProperty("error")] private String? error = null; public string? Error { get => error; set => error = value; } } }
using Newtonsoft.Json; using System; namespace ApiResponseModels { public sealed class BarResults { [JsonProperty("o")] public readonly double Open; [JsonProperty("c")] public readonly double Close; [JsonProperty("h")] public readonly double High; [JsonProperty("l")] public readonly double Low; [JsonProperty("t")] public readonly long TimeUnix; [JsonProperty("v")] public readonly long Volume; public DateTime StartDate { get; set; } public DateTime EndDate { get; set; } } }
#region imports using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Globalization; using System.Drawing; using QuantConnect; using QuantConnect.Algorithm.Framework; using QuantConnect.Algorithm.Framework.Selection; using QuantConnect.Algorithm.Framework.Alphas; using QuantConnect.Algorithm.Framework.Portfolio; using QuantConnect.Algorithm.Framework.Execution; using QuantConnect.Algorithm.Framework.Risk; using QuantConnect.Parameters; using QuantConnect.Benchmarks; using QuantConnect.Brokerages; using QuantConnect.Util; using QuantConnect.Interfaces; using QuantConnect.Algorithm; using QuantConnect.Indicators; using QuantConnect.Data; using QuantConnect.Data.Consolidators; using QuantConnect.Data.Custom; using QuantConnect.DataSource; using QuantConnect.Data.Fundamental; using QuantConnect.Data.Market; using QuantConnect.Data.UniverseSelection; using QuantConnect.Notifications; using QuantConnect.Orders; using QuantConnect.Orders.Fees; using QuantConnect.Orders.Fills; using QuantConnect.Orders.Slippage; using QuantConnect.Scheduling; using QuantConnect.Securities; using QuantConnect.Securities.Equity; using QuantConnect.Securities.Future; using QuantConnect.Securities.Option; using QuantConnect.Securities.Forex; using QuantConnect.Securities.Crypto; using QuantConnect.Securities.Interfaces; using QuantConnect.Storage; using QuantConnect.Data.Custom.AlphaStreams; using QCAlgorithmFramework = QuantConnect.Algorithm.QCAlgorithm; using QCAlgorithmFrameworkBridge = QuantConnect.Algorithm.QCAlgorithm; using Newtonsoft.Json; using ApiResponseModels; #endregion namespace QuantConnect.Algorithm.CSharp { public class MuscularAsparagusSheep : QCAlgorithm { public override void Initialize() { var symbol = "TSLA"; var stockPrices = GetStockPrices(symbol, "2022-08-22", "2022-08-30"); foreach (var item in stockPrices.Results) { Debug($" {symbol} StarDate: {item.StartDate.Date} EndDate:{item.EndDate.Date} O:{item.Open} H:{item.High} L:{item.Low} C:{item.Close} "); } } public BarsResponse GetStockPrices(string symbol,string startDate, string EndDate, bool splittAdjusted = false) //DT format : 2021-07-22 { string APIKey = "wxGOlGP5bZW4I3MBgowKgqm5bGKdq4p6";//This API KEY no longer valid, Enter your own KEY. try { string endPoint = $"https://api.polygon.io/v2/aggs/ticker/{symbol}/range/1/day/{startDate}/{EndDate}?adjusted={splittAdjusted}&sort=asc&limit=120&apiKey={APIKey}"; //get async and read asstring async string responseString = Download(endPoint); Debug(responseString); var jsonResponse = JsonConvert.DeserializeObject<BarsResponse>(responseString);//deserialize into objects //Deference JsonResponse null values for (int i = 0; i < jsonResponse.Results.Count; i++) { if (jsonResponse.Results[i] != null) { jsonResponse.Results[i].StartDate = UnixTimeStampToDateTime(jsonResponse.Results[i].TimeUnix); jsonResponse.Results[i].EndDate = jsonResponse.Results[i].StartDate.AddDays(1); } } return jsonResponse; } catch (Exception e) { Debug(e.ToString()); return new BarsResponse() { Error = "Error catched" }; } } public static DateTime UnixTimeStampToDateTime(long unixTimeStamp) { // Unix timestamp is seconds past epoch DateTime dateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc); dateTime = dateTime.AddMilliseconds(unixTimeStamp).ToLocalTime(); return dateTime; } } }