I can't figure out how to print an error when it happens in another class. Here is some example code taken from CustomDataBitcoinAlgorithm.py fromĀ 

https://www.quantconnect.com/docs/algorithm-reference/importing-custom-datafrom clr import AddReference AddReference("System") AddReference("QuantConnect.Algorithm") AddReference("QuantConnect.Common") from System import * from QuantConnect import * from QuantConnect.Algorithm import * from QuantConnect.Data import SubscriptionDataSource from QuantConnect.Python import PythonData from datetime import date, timedelta, datetime import numpy as np import json class CustomDataBitcoinAlgorithm(QCAlgorithm): def Initialize(self): self.SetStartDate(2020, 7, 13) self.SetEndDate(datetime.now().date() - timedelta(1)) self.SetCash(100000) # Define the symbol and "type" of our generic data: self.AddData(Bitcoin, "BTC") def OnData(self, data): if not data.ContainsKey("BTC"): return close = data["BTC"].Close # If we don't have any weather "SHARES" -- invest" if not self.Portfolio.Invested: # Weather used as a tradable asset, like stocks, futures etc. self.SetHoldings("BTC", 1) self.Debug("Buying BTC 'Shares': BTC: {0}".format(close)) self.Debug("Time: {0} {1}".format(datetime.now(), close)) class Bitcoin(PythonData): '''Custom Data Type: Bitcoin data from Quandl - http://www.quandl.com/help/api-for-bitcoin-data''' def GetSource(self, config, date, isLiveMode): Console.Write("Test") try: raise ValueError('error?') except Exception as e: Console.Write(e) return SubscriptionDataSource("https://www.quandl.com/api/v3/datasets/BCHARTS/BITSTAMPUSD.csv?order=asc", SubscriptionTransportMedium.RemoteFile); def Reader(self, config, line, date, isLiveMode): coin = Bitcoin() coin.Symbol = config.Symbol # Example Line Format: # Date Open High Low Close Volume (BTC) Volume (Currency) Weighted Price # 2011-09-13 5.8 6.0 5.65 5.97 58.37138238, 346.0973893944 5.929230648356 if not (line.strip() and line[0].isdigit()): return None try: data = line.split(',') # If value is zero, return None value = data[4] if value == 0: return None coin.Time = datetime.strptime(data[0], "%Y-%m-%d") coin.Value = value coin["Open"] = float(data[1]) coin["High"] = float(data[2]) coin["Low"] = float(data[3]) coin["Close"] = float(data[4]) coin["VolumeBTC"] = float(data[5]) coin["VolumeUSD"] = float(data[6]) coin["WeightedPrice"] = float(data[7]) return coin; except ValueError: # Do nothing, possible error in json decoding return None

I removed some parts of the code that were used for live trading. In the GetSource function I added a try except and raised an exception. I can print in that function normally using Console.Write, but it won't print the exception. The algo also doesn't trade at all when I add the exception. Any help would beĀ appreciated, thanks.

Author