Overall Statistics |
Total Trades 15 Average Win 2.30% Average Loss -23.47% Compounding Annual Return -87.848% Drawdown 79.600% Expectancy -0.634 Net Profit -64.964% Sharpe Ratio -0.852 Probabilistic Sharpe Ratio 1.626% Loss Rate 67% Win Rate 33% Profit-Loss Ratio 0.10 Alpha 0 Beta 0 Annual Standard Deviation 0.942 Annual Variance 0.887 Information Ratio -0.852 Tracking Error 0.942 Treynor Ratio 0 Total Fees $15.00 Estimated Strategy Capacity $5900000.00 Lowest Capacity Asset GME SC72NCBXXAHX |
class ShortAvailabilityDataAlgorithm(QCAlgorithm): def Initialize(self): self.SetStartDate(2021, 1, 1) self.SetEndDate(2021, 7, 1) self.SetCash(1000) self.SetBrokerageModel(InteractiveBrokersBrokerageModelWithShortable()) self.equity = self.AddEquity("GME") self.Schedule.On( self.DateRules.EveryDay(self.equity.Symbol), self.TimeRules.AfterMarketOpen(self.equity.Symbol, 10), self.Rebalance) def Rebalance(self): symbol = self.equity.Symbol; self.Plot('Total Shortable Quantity', symbol, self.equity.TotalShortableQuantity) # First, let's not rebalance if there are no shares to short if self.ShortableQuantity(symbol) < 0: return # Then, test whether we can short the desired quantity quantity = self.CalculateOrderQuantity(symbol, -1) if self.Shortable(symbol, quantity): self.MarketOrder(symbol, quantity) def OnMarginCallWarning(self): self.Liquidate() class InteractiveBrokersBrokerageModelWithShortable(InteractiveBrokersBrokerageModel): def __init__(self): super().__init__() self.ShortableProvider = AtreyuShortableProvider(SecurityType.Equity, Market.USA)