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

    }
}