Overall Statistics |
Total Trades 400 Average Win 3.22% Average Loss -1.04% Compounding Annual Return 236.071% Drawdown 19.200% Expectancy 0.651 Net Profit 286.373% Sharpe Ratio 5.737 Probabilistic Sharpe Ratio 97.121% Loss Rate 60% Win Rate 40% Profit-Loss Ratio 3.11 Alpha 2.539 Beta 0.838 Annual Standard Deviation 0.482 Annual Variance 0.233 Information Ratio 6.176 Tracking Error 0.404 Treynor Ratio 3.302 Total Fees $465.00 |
from datetime import datetime, timedelta import decimal import pandas as pd class BasicTemplateAlgorithm(QCAlgorithm): def Initialize(self): self.SetStartDate(2020,1,1) #self.SetEndDate(2020,1,1) self.SetEndDate(datetime.now()) self.SetCash(10000) self.SetBenchmark("SPY") # Set SPY as benchmark self.SetTimeZone(TimeZones.NewYork) self.SetWarmUp(30) self.sma = {} self.symbols = ["TQQQ", "TNA"] for symbol in self.symbols: self.AddEquity(symbol, Resolution.Hour) self.Securities[symbol].SetLeverage(1.0) self.sma[symbol] = self.SMA(symbol, 20, Resolution.Hour) def OnData(self,data): if self.IsWarmingUp: return # Make sure all the data we need is in place for symbol in self.symbols: if self.Securities[symbol].Price > self.sma[symbol].Current.Value: if self.Portfolio[symbol].Invested == False and self.Securities[symbol].Price > self.sma[symbol].Current.Value: self.SetHoldings(symbol, 0.45) #self.Debug(self.sma[symbol]) #print SMA price for symbol in self.symbols: #Close position if price is below SMA if self.Securities[symbol].Price < self.sma[symbol].Current.Value and self.Portfolio[symbol].IsLong: self.Liquidate(symbol)