| Overall Statistics |
|
Total Trades 1 Average Win 0% Average Loss 0% Compounding Annual Return 0.053% Drawdown 0.000% Expectancy 0 Net Profit 0.053% Sharpe Ratio 1.947 Probabilistic Sharpe Ratio 86.642% Loss Rate 0% Win Rate 0% Profit-Loss Ratio 0 Alpha 0 Beta 0.001 Annual Standard Deviation 0 Annual Variance 0 Information Ratio -2.102 Tracking Error 0.104 Treynor Ratio 0.278 Total Fees $1.00 Estimated Strategy Capacity $110000000000.00 Lowest Capacity Asset MSFT R735QTJ8XC9X |
from AlgorithmImports import *
class ExtractAlphaEstimizeAlgorithm(QCAlgorithm):
def Initialize(self) -> None:
self.SetStartDate(2018, 12, 29)
self.SetEndDate(2020, 1, 1)
self.SetCash(100000)
self.aapl = self.AddEquity("MSFT", Resolution.Daily).Symbol
estimize_consensus_symbol = self.AddData(EstimizeConsensus, self.aapl).Symbol
estimize_estimate_symbol = self.AddData(EstimizeEstimate, self.aapl).Symbol
estimize_release_symbol = self.AddData(EstimizeRelease, self.aapl).Symbol
def OnData(self, slice: Slice) -> None:
self.vale = []
release = slice.Get(EstimizeRelease)
for symbol, value in release.items():
self.Log(f"""Symbol: {symbol} - Time: {self.Time}, Release Date: {value.ReleaseDate}""")
self.Debug("quantity: " + str(len(release.items())) +"- Time :" + str(self.Time))
#val = (value.ReleaseDate - timedelta(days=30))
#self.vale.append(val)
#self.Log(self.vale)
if self.Time >= (value.ReleaseDate - timedelta(days=30)) and self.Time < value.ReleaseDate:
if self.Portfolio.Invested:
return
elif not self.Portfolio.Invested:
self.Log("Bought" +str(self.Time) )
self.Buy(self.aapl, 1)
if self.Time < (value.ReleaseDate - timedelta(days=30)) and self.Time > value.ReleaseDate:
if not self.Portfolio.Invested:
return
elif self.Portfolio.Invested:
self.Log("Sold" +str(self.Time) )
self.Sell(self.aapl, 1)