import datetime
def dateMatch(d, refdate):
refdate = datetime.datetime.strptime(refdate, '%Y-%m-%d %H:%M:%S')
return d >= refdate and d < refdate + datetime.timedelta(0, 60)
class ReproAlpha:
# This alpha just tries to recreate a buggy trade
def __init__(self):
pass
def Update(self, algorithm, slice):
insights = []
if dateMatch(algorithm.Time, "2012-10-18 09:58:00") :
insights.append(Insight.Price("BRK.A", timedelta(
1), InsightDirection.Up, None, None, None, 0.45))
elif dateMatch(algorithm.Time, "2007-02-27 09:31:00") :
insights.append(Insight.Price("B", timedelta(
1), InsightDirection.Up, None, None, None, 0.45))
else:
# insights.append(Insight.Price("BRKA", timedelta(
# 1), InsightDirection.Flat, None, None, None, 0.45))
pass
return insights
def OnSecuritiesChanged(self, algorithm, changes):
pass
class SleepyRedSnake(QCAlgorithm):
def Initialize(self):
self.SetStartDate(2012, 10, 16) # Set Start Date
self.SetEndDate(2012, 10, 20) # Set Start Date
self.SetCash(100000) # Set Strategy Cash
self.AddAlpha(ReproAlpha())
self.SetExecution(ImmediateExecutionModel())
self.SetPortfolioConstruction(InsightWeightingPortfolioConstructionModel())
self.UniverseSettings.Resolution = Resolution.Minute
# self.AddEquity("SPY", Resolution.Minute)
symbols = [ Symbol.Create("BRK.A", SecurityType.Equity, Market.USA),
Symbol.Create("B", SecurityType.Equity, Market.USA)]
self.SetUniverseSelection( ManualUniverseSelectionModel(symbols) )
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
'''
# if not self.Portfolio.Invested:
# self.SetHoldings("SPY", 1)