Overall Statistics |
Total Trades 16 Average Win 0.66% Average Loss 0% Compounding Annual Return 13.599% Drawdown 1.000% Expectancy 0 Net Profit 6.566% Sharpe Ratio 3.473 Probabilistic Sharpe Ratio 96.440% Loss Rate 0% Win Rate 100% Profit-Loss Ratio 0 Alpha 0.112 Beta -0.027 Annual Standard Deviation 0.03 Annual Variance 0.001 Information Ratio -1.647 Tracking Error 0.104 Treynor Ratio -3.939 Total Fees $16.00 |
class ParticleTachyonCompensator(QCAlgorithm): def Initialize(self): self.SetStartDate(2019, 8, 17) # Set Start Date self.SetCash(100000) # Set Strategy Cash self.AddEquity("AAPL", Resolution.Daily) self.entryTicket = None self.stoplossTicket = None self.profit1Ticket = None self.profit2Ticket = None def OnData(self, data): if self.entryTicket == None: self.stopBuyPrice = data["AAPL"].Close + 3 self.stopLossPrice = self.stopBuyPrice - 10 self.profitTarget1 = self.stopBuyPrice + 10 self.profitTarget2 = self.stopBuyPrice + 20 self.entryTicket = self.StopMarketOrder("AAPL", 100, self.stopBuyPrice) def OnOrderEvent(self, orderevent): if orderevent.Status != OrderStatus.Filled: return if self.entryTicket != None and self.entryTicket.OrderId == orderevent.OrderId: # Enter stop loss order self.stoplossTicket = self.StopMarketOrder("AAPL",-100,self.stopLossPrice) # Enter limit order 1 self.profit1Ticket = self.LimitOrder("AAPL",-50,self.profitTarget1) # Enter limit order 2 self.profit2Ticket = self.LimitOrder("AAPL",-50,self.profitTarget2) if self.profit1Ticket != None and self.profit1Ticket.OrderId == orderevent.OrderId: self.stoplossTicket.UpdateQuantity(-50) if self.stoplossTicket != None and self.stoplossTicket.OrderId == orderevent.OrderId: self.profit1Ticket.Cancel() self.profit2Ticket.Cancel() self.entryTicket = None if self.profit2Ticket != None and self.profit2Ticket.OrderId == orderevent.OrderId: self.stoplossTicket.Cancel() self.entryTicket = None