Overall Statistics |
Total Trades 0 Average Win 0% Average Loss 0% Compounding Annual Return 0% Drawdown 0% Expectancy 0 Net Profit 0% Sharpe Ratio 0 Probabilistic Sharpe Ratio 0% Loss Rate 0% Win Rate 0% Profit-Loss Ratio 0 Alpha 0 Beta 0 Annual Standard Deviation 0 Annual Variance 0 Information Ratio -0.776 Tracking Error 0.165 Treynor Ratio 0 Total Fees $0.00 Estimated Strategy Capacity $0 |
from convertdate import utils class TradeTwoTimesPerYear(QCAlgorithm): def Initialize(self): self.SetStartDate(2015, 1, 1) # Set Start Date self.SetCash(100000) # Set Strategy Cash # self.AddEquity("SPY", Resolution.Minute) self.AddEquity("SPY", Resolution.Daily) self.time_to_trade = False # At market open, everyday we check if we can trade self.Schedule.On(self.DateRules.EveryDay("SPY"), self.TimeRules.At(9,30), self.CheckTimeToTrade) # At 1 min of market open, we trade if the timing is per our condition self.Schedule.On(self.DateRules.EveryDay("SPY"), self.TimeRules.At(9,31), self.ExecuteTrade) # Function to check if we can trade today def CheckTimeToTrade(self): # Check for January: if self.Time.month == 1: # If January 2nd is Tuesday to Friday: if ((self.Time.day == 2) and ((self.Time.weekday() >= 1) and (self.Time.weekday() <= 4))): self.time_to_trade = True return # If January 2nd is Monday, we can trade only on January 3rd, which is Tuesday if (self.Time.day == 3 and (self.Time.weekday() == 1)): self.time_to_trade = True return # If January 2nd is Saturday, we can trade only of January 4th, which is Monday if (self.Time.day == 4 and (self.Time.weekday() == 0)): self.time_to_trade = True return # Check for July: if self.Time.month == 7: # If July 1st is Monday to Friday: if ((self.Time.day == 1) and ((self.Time.weekday() >= 0) and (self.Time.weekday() <= 4))): self.time_to_trade = True return # If July 1st is Saturday, we can trade only on July 3rd, which is Monday if (self.Time.day == 3 and (self.Time.weekday() == 0)): self.time_to_trade = True return # If July 1st is Sunday, we can trade only of July 2nd, which is Monday if (self.Time.day == 2 and (self.Time.weekday() == 0)): self.time_to_trade = True return def ExecuteTrade(self): # We check if we are OK to trade if self.time_to_trade: date = self.Time.strftime("%A %d. %B %Y") self.Debug(f"Execute trade at Date: {date}") ########################### ## ## ## Your Trading Strategy ## ## ## ########################### # Once we trade, we reset the trigger and wait for the next trading period self.time_to_trade = False 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)