| Overall Statistics |
|
Total Orders 13 Average Win 1.60% Average Loss -0.63% Compounding Annual Return 22.210% Drawdown 2.400% Expectancy 1.030 Start Equity 100000 End Equity 103797.78 Net Profit 3.798% Sharpe Ratio 1.34 Sortino Ratio 1.507 Probabilistic Sharpe Ratio 68.309% Loss Rate 43% Win Rate 57% Profit-Loss Ratio 2.55 Alpha -0.151 Beta 0.819 Annual Standard Deviation 0.074 Annual Variance 0.005 Information Ratio -4.827 Tracking Error 0.043 Treynor Ratio 0.12 Total Fees $12.82 Estimated Strategy Capacity $310000000.00 Lowest Capacity Asset SPY R735QTJ8XC9X Portfolio Turnover 13.30% |
from AlgorithmImports import *
from QuantConnect.DataSource import *
class RegalyticsDataAlgorithm(QCAlgorithm):
negative_sentiment_phrases = ["emergency rule", "proposed rule change", "development of rulemaking"]
def initialize(self) -> None:
self.set_start_date(2024, 4, 25)
self.set_cash(100000)
self.spy = self.add_equity("SPY", Resolution.DAILY).symbol
# Requesting data
self.regalytics_symbol = self.add_data(RegalyticsRegulatoryArticles, "REG").symbol
# Historical data
history = self.history(self.regalytics_symbol, 7, Resolution.DAILY)
self.debug(f"We got {len(history)} items from our history request")
def on_data(self, slice: Slice) -> None:
data = slice.Get(RegalyticsRegulatoryArticles)
if data:
for articles in data.values():
self.log(articles.to_string())
if any([p in article.title.lower() for p in self.negative_sentiment_phrases for article in articles]):
self.set_holdings(self.spy, -1)
else:
self.set_holdings(self.spy, 1)