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 -4.743 Tracking Error 0.104 Treynor Ratio 0 Total Fees $0.00 |
from datetime import datetime class AWSData(QCAlgorithm): def Initialize(self): self.SetStartDate(2020, 12, 1) # Set Start Date self.SetEndDate(2021, 1, 10) self.SetCash(10000) # Set Strategy Cash self.assets = ["VMVL"] for etf in self.assets: symbol = self.AddData(AWSImport, 'AWS').Symbol self.Log(str.format("{0} data was added with symbol {1}.", etf, symbol.Value)) def OnData(self, data): '''OnData event is the primary entry point for your algorithm. Each new data point will be pumped in here. Arguments: data: Slice object keyed by symbol containing the stock data ''' self.Log(f"Data at {data.Time}") for asset in self.assets: if not data.ContainsKey(asset): self.Log("Asset key not found in data slice.") return if data[asset] is not None: self.Log("Asset data slice empty.") return self.Log(data[asset].Value) self.SetHoldings("VMVL", 0.8) class AWSImport(PythonData): '''Custom Data Class to import prepared AWS data''' def GetSource(self, config, date, isLiveMode): return SubscriptionDataSource("https://v78wgv6s66.execute-api.us-east-2.amazonaws.com/test/get_data_from_investing?cid=986914&ticker=VMVL&start_date=12/01/2020&end_date=12/31/2020&resolution=Daily", SubscriptionTransportMedium.RemoteFile) #def GetSource(self, config, date, isLiveMode): # # cids = {"VMVL": 986914, # "IMIE": 45820, # "LRUS": 47592, # "XD3E": 38681, # "IS3S": 959560, # "IUSN": 1123006} # # requrl = str.format("https://v78wgv6s66.execute-api.us-east-2.amazonaws.com/test/get_data_from_investing?cid={0}&ticker={1}&start_date={2}&end_date={3}&resolution={4}", # cids[config.Symbol.Value], # config.Symbol.Value, # str.format("{0}/{1}/{2}", date.month, date.day, date.year), # str.format("{0}/{1}/{2}", date.month, date.day+1, date.year), # "Daily") # # return SubscriptionDataSource(requrl, SubscriptionTransportMedium.Rest) def Reader(self, config, line, date, isLiveMode): # New AWSImport object index = AWSImport() index.Symbol = config.Symbol try: data = line.split(';') index.Time = datetime.strptime(data[0], "%b %d, %Y") index.Value = float(data[1]) index["Close"] = float(data[1]) index["Open"] = float(data[2]) index["High"] = float(data[3]) index["Low"] = float(data[4]) index["Volume"] = float(data[5][:-1])*1000 index["Dailyreturn"] = float(data[6][:-1]) / 100 except ValueError: return None return index