Overall Statistics |
Total Trades 0 Average Win 0% Average Loss 0% Compounding Annual Return 0% Drawdown 0% Expectancy 0 Net Profit 0% Sharpe Ratio 0 Probabilistic Sharpe Ratio 0% Loss Rate 0% Win Rate 0% Profit-Loss Ratio 0 Alpha 0 Beta 0 Annual Standard Deviation 0 Annual Variance 0 Information Ratio 2.942 Tracking Error 0.222 Treynor Ratio 0 Total Fees $0.00 |
# https://backtest-rookies.com/2018/12/07/quantconnect-working-with-heikin-ashi-data/ # https://www.quantconnect.com/forum/discussion/1017/simple-heikin-ashi-algorithmhttps://www.quantconnect.com/terminal/ # use heiki ashi for indicator : https://www.quantconnect.com/forum/discussion/1456/how-to-set-candlesticks-to-heiken-ashi-as-default/p1 # todo fee model # todo add benchmark import datetime as datetime class DynamicTachyonThrustAssembly(QCAlgorithm): def Initialize(self): self.SetStartDate(2020,5, 10) # Set Start Date self.SetEndDate(2020,5,15) # Set End Date self.SetCash(10000) # Set Strategy Cash self.longStock = "SPXL" self.shortStock = "SPXS" self.AddEquity(self.longStock, Resolution.Minute) self.AddEquity(self.shortStock, Resolution.Minute) self.sma5 = self.SMA(self.longStock, 5) self.sma5.Updated += self.emaUpdate self.emaWin = RollingWindow[IndicatorDataPoint](5) self.ha = self.HeikinAshi(self.longStock, Resolution.Minute) self.ha.Updated += self.haUpdate self.haWin = RollingWindow[TradeBar](5) chart = Chart("chart") chart.AddSeries(Series("Price", SeriesType.Line, 0)) chart.AddSeries(Series("sma5", SeriesType.Line, 0)) self.AddChart(chart) self.lastPrice = 0.0 def emaUpdate(self, sender, updated): self.emaWin.Add(updated) def haUpdate(self, sender, updated): if self.ha.IsReady: self.sma5.Update(updated) tradeBar = TradeBar(self.ha.Current.EndTime, self.longStock, self.ha.Open, self.ha.High, self.ha.Low, self.ha.Close, 0); self.haWin.Add(tradeBar) def OnData(self, data): if data["SPXL"] is None: return if not self.emaWin.IsReady: return # only print log in the last 15 minutes if self.Time.time() > datetime.datetime(2020,5,15,15,45,0).time() and self.Time.time() < datetime.datetime(2020,5,15,15,59,0).time(): self.Debug("--------{}--------<br>".format(self.Time)) sum = 0 slices = self.History(5) for slice in slices: sum = sum + slice.Bars["SPXL"].Close self.Debug("slices time : {}, and close : {}<br>".format(slice.Time, slice.Bars["SPXL"].Close)) self.Debug("the sma 5 based on original close : {}<br>".format(sum/5)) self.Debug("the sma 5 based on Heikin ashi : {}<br>".format(self.sma5.Current.Value)) self.Debug("ha close : {}<br>".format(self.ha.Close)) for i in self.haWin: self.Debug("haWin : {}<br>".format(i.Close)) self.lastPrice = data["SPXL"].Close def OnEndOfDay(self): self.Plot("chart", "Price", self.lastPrice) self.Plot("chart", "sma5", self.sma5.Current.Value)