Overall Statistics |
Total Trades 1 Average Win 0% Average Loss 0% Compounding Annual Return 100.352% Drawdown 0.300% Expectancy 0 Net Profit 0.764% Sharpe Ratio 9.101 Probabilistic Sharpe Ratio 0% Loss Rate 0% Win Rate 0% Profit-Loss Ratio 0 Alpha 0 Beta 0 Annual Standard Deviation 0.093 Annual Variance 0.009 Information Ratio 9.692 Tracking Error 0.093 Treynor Ratio 0 Total Fees $1.00 Estimated Strategy Capacity $580000000.00 Lowest Capacity Asset MSFT R735QTJ8XC9X Portfolio Turnover 9.02% |
# region imports from AlgorithmImports import * # endregion import datetime as dt class Test(QCAlgorithm): def Initialize(self): self.SetStartDate(2023, 11, 7) self.SetEndDate(2023, 11, 11) self.SetCash(100000) self.SetBrokerageModel(BrokerageName.InteractiveBrokersBrokerage, AccountType.Margin) self.AddEquity('SPY', Resolution.Daily) self.Schedule.On(self.DateRules.EveryDay('SPY'), self.TimeRules.AfterMarketOpen('SPY', -10), self.__BeforeOpen) self.RemoveSecurity('SPY') self.UniverseSettings.Resolution = Resolution.Daily self.AddUniverse(self.__SelectCoarse, self.__SelectFine) self.count = 0 def OnEndOfAlgorithm(self): self.AddEquity('MSFT', Resolution.Daily) BarList = self.History[TradeBar](self.Symbol('MSFT'), dt.datetime(2023,11,7), self.Time, Resolution.Daily) for bar in BarList: self.Debug('{:s}: Open = {:.4f}'.format(bar.Time.strftime('%m-%d-%Y %H:%M'), bar.Open)) def __BeforeOpen(self): self. count += 1 for sym in self.ActiveSecurities.Keys: if self.count == 1: self.Debug('{:s}: MarketOnOpenOrder for 100 shares of {:s}'.format(self.Time.strftime('%m-%d-%Y %H:%M'), sym.Value)) ticket = self.MarketOnOpenOrder(sym, 100) def OnOrderEvent(self, orderEvent: OrderEvent): self.Debug('{:s} OnOrdrEvent: Symbol={:s}, filled={:.2f} for ${:.4f} per share'.format(self.Time.strftime('%m-%d-%Y %H:%M'), orderEvent.Symbol.Value, orderEvent.FillQuantity, orderEvent.FillPrice)) def __SelectCoarse(self, coarse: List[CoarseFundamental]) -> List[Symbol]: if self.count == 0: C = [c.Symbol for c in coarse if c.Symbol.Value == 'MSFT'] else: C = [] return C def __SelectFine(self, fine: List[FineFundamental]) -> List[Symbol]: List = [f.Symbol for f in fine] return List