Overall Statistics |
Total Trades 1 Average Win 0% Average Loss 0% Compounding Annual Return 32.587% Drawdown 38.600% Expectancy 0 Net Profit 76.066% Sharpe Ratio 1.207 Probabilistic Sharpe Ratio 53.471% Loss Rate 0% Win Rate 0% Profit-Loss Ratio 0 Alpha 0.312 Beta -0.116 Annual Standard Deviation 0.248 Annual Variance 0.061 Information Ratio 0.666 Tracking Error 0.29 Treynor Ratio -2.583 Total Fees $12.07 |
import decimal as d from datetime import timedelta from Alphas.RsiAlphaModel import RsiAlphaModel class ParticleCalibratedRadiator(QCAlgorithm): def Initialize(self): '''Initialise the data and resolution required, as well as the cash and start-end dates for your algorithm. All algorithms must initialized.''' self.SetStartDate(2018, 1, 1) #Set Start Date self.SetEndDate(2019, 12, 31) #Set End Date self.SetCash(100000) #Set Strategy Cash self.symbol = 'AAPL' self.previous = None self.AddSecurity(SecurityType.Equity, self.symbol, Resolution.Daily) self.slow = self.SMA(self.symbol, 50, Resolution.Daily) self.fast = self.SMA(self.symbol, 30, Resolution.Daily) #self.rsi = self.RSI(self.symbol, 14) self.atr = self.ATR(self.symbol, 20) #elf.window = RollingWindow self.SetWarmUp(timedelta(days=50)) def OnData(self, data): if not (self.slow.IsReady and self.fast.IsReady): return if not self.atr.IsReady: return if self.previous is not None and self.previous.date() == self.Time.date(): return tolerance = 0.00015 holdings = self.Portfolio[self.symbol].Quantity if holdings <=0: #finna long if holdings <=0: if self.fast.Current.Value > self.slow.Current.Value: if data[self.symbol].Close < (self.slow.Current.Value + self.atr.Current.Value * 0.5): self.Log("Buy >> {0}".format(self.Securities[self.symbol].Price)) self.SetHoldings(self.symbol, 1.0) #finna short if holdings > 0 and self.fast.Current.Value < self.slow.Current.Value: if data[self.symbol].Close < (self.slow.Current.Value + self.atr.Current.Value * 2.0): self.Log("SELL >> {0}".format(self.Securities[self.symbol].Price)) self.Liquidate(self.symbol) self.previous = self.Time