Overall Statistics |
Total Trades 4 Average Win 0% Average Loss 0% Compounding Annual Return -24.509% Drawdown 1.900% Expectancy 0 Net Profit -0.461% Sharpe Ratio -1.196 Probabilistic Sharpe Ratio 37.487% Loss Rate 0% Win Rate 0% Profit-Loss Ratio 0 Alpha -0.483 Beta -0.788 Annual Standard Deviation 0.166 Annual Variance 0.028 Information Ratio 0.458 Tracking Error 0.352 Treynor Ratio 0.252 Total Fees $4.30 Estimated Strategy Capacity $960000000.00 Lowest Capacity Asset SPY R735QTJ8XC9X |
from AlgorithmImports import * class RegalyticsDataAlgorithm(QCAlgorithm): negative_sentiment_phrases = ['restrict', 'barrier', 'tariff'] def Initialize(self): ''' Initialise the data and resolution required, as well as the cash and start-end dates for your algorithm. All algorithms must initialized.''' self.SetStartDate(2022, 7, 10) self.SetEndDate(2022, 7, 15) self.SetCash(100000) self.symbol = self.AddEquity("SPY", Resolution.Daily).Symbol # Requesting data self.regalyticsSymbol = self.AddData(RegalyticsRegulatoryArticles, "REG").Symbol # Historical data history = self.History(self.regalyticsSymbol, 7, Resolution.Daily) self.Debug(f"We got {len(history)} items from our history request") def OnData(self, slice): ''' OnData event is the primary entry point for your algorithm. Each new data point will be pumped in here. :param Slice slice: Slice object keyed by symbol containing the stock data ''' data = slice.Get(RegalyticsRegulatoryArticles) if not data: return for articles in data.values(): self.Log(articles.ToString()) if any([p in article.Title.lower() for p in self.negative_sentiment_phrases for article in articles]): self.SetHoldings(self.symbol, -1) else: self.SetHoldings(self.symbol, 1)