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 5.8 Tracking Error 0.145 Treynor Ratio 0 Total Fees $0.00 Estimated Strategy Capacity $0 Lowest Capacity Asset |
from AlgorithmImports import * # endregion class SquareYellowGreenCaterpillar(QCAlgorithm): def Initialize(self): self.SetStartDate(datetime.now()-timedelta(days=10)) # Set Start Date self.SetCash(100000) # Set Strategy Cash self.ir = self.AddData(Fred, Fred.CommercialPaper.ThreeMonthCommercialPaperMinusFederalFundsRate, Resolution.Daily).Symbol # Historical data history = self.History(self.ir, 60, Resolution.Daily) self.Debug(f"We got {len(history)} items from our history request") def OnData(self, data: Slice): if data.ContainsKey(self.ir): ir = data.Get(Fred, self.ir).Value #self.Debug(ir)
#region imports from AlgorithmImports import * #endregion # ------------------------------------------------------------------------------ # Business days # ------------------------------------------------------------------------------ from datetime import timedelta #, date from pandas.tseries.holiday import (AbstractHolidayCalendar, # inherit from this to create your calendar Holiday, nearest_workday, # to custom some holidays # USMartinLutherKingJr, # already defined holidays USPresidentsDay, # " " " " " " GoodFriday, USMemorialDay, # " " " " " " USLaborDay, USThanksgivingDay # " " " " " " ) class USTradingCalendar(AbstractHolidayCalendar): rules = [ Holiday('NewYearsDay', month=1, day=1, observance=nearest_workday), USMartinLutherKingJr, USPresidentsDay, GoodFriday, USMemorialDay, Holiday('USIndependenceDay', month=7, day=4, observance=nearest_workday), USLaborDay, USThanksgivingDay, Holiday('Christmas', month=12, day=25, observance=nearest_workday) ] # TODO: to be tested def last_trading_day(expiry): # American options cease trading on the third Friday, at the close of business # - Weekly options expire the same day as their last trading day, which will usually be a Friday (PM-settled), [or Mondays? & Wednesdays?] # # SPX cash index options (and other cash index options) expire on the Saturday following the third Friday of the expiration month. # However, the last trading day is the Thursday before that third Friday. Settlement price Friday morning opening (AM-settled). # http://www.daytradingbias.com/?p=84847 dd = expiry # option.ID.Date.date() # if expiry on a Saturday (standard options), then last trading day is 1d earlier if dd.weekday() == 5: dd -= timedelta(days=1) # dd -= 1 * BDay() # check that Friday is not an holiday (e.g. Good Friday) and loop back while USTradingCalendar().holidays(dd, dd).tolist(): # if list empty (dd is not an holiday) -> False dd -= timedelta(days=1) return dd