| Overall Statistics |
|
Total Trades 1 Average Win 0% Average Loss 0% Compounding Annual Return 8.340% Drawdown 33.800% Expectancy 0 Net Profit 50.401% Sharpe Ratio 0.55 Probabilistic Sharpe Ratio 14.460% Loss Rate 0% Win Rate 0% Profit-Loss Ratio 0 Alpha 0.001 Beta 0.998 Annual Standard Deviation 0.187 Annual Variance 0.035 Information Ratio 0.278 Tracking Error 0.001 Treynor Ratio 0.103 Total Fees $2.66 |
class MultidimensionalVentralCoil(QCAlgorithm):
def Initialize(self):
self.SetStartDate(2015, 3, 30) # Set Start Date
self.SetCash(100000) # Set Strategy Cash
self.spy = self.AddEquity("SPY", Resolution.Minute).Symbol
thirtyMinuteConsolidator = TradeBarConsolidator(timedelta(minutes=30))
self.SubscriptionManager.AddConsolidator(self.spy, thirtyMinuteConsolidator)
thirtyMinuteConsolidator.DataConsolidated += self.OnThirtyMinuteBar
self.barWindow = RollingWindow[TradeBar](2)
# self.Schedule.On(self.DateRules.EveryDay(), self.TimeRules.BeforeMarketClose("SPY", 0), self.ClosingBar)
def OnThirtyMinuteBar(self, sender, bar):
self.barWindow.Add(bar)
if not self.barWindow.IsReady:
return
currentBar = self.barWindow[0]
previousBar = self.barWindow[1]
currentHigh = currentBar.High
currentLow = currentBar.Low
currentClose=currentBar.Close
previousHigh = previousBar.High
previousLow = previousBar.Low
previousClose=previousBar.Close
if bar.EndTime.hour == 10 and bar.EndTime.minute == 30:
# self.Debug("timmmme:"+ str(self.Time))
# self.Debug("startingtimmmmeeeeeee:"+ str(previousBar.EndTime))
# self.Debug("timmmmeeeeeee:"+ str(currentBar.EndTime))
if not self.Portfolio.Invested:
if currentBar.Close > previousHigh:
self.SetHoldings("SPY", 1)
if currentBar.Close < previousLow:
self.SetHoldings("SPY", 0)
if self.Time.hour==3 and self.Time.minute==59:
self.Liquidate()
self.Plot("My Custom Chart", "High", currentHigh)
self.Plot("My Custom Chart", "Low", currentLow)
self.Debug("Bar_high_low_till_time :" + str(self.Time) + "currentHigh :" + str(currentHigh) + "PreviousHigh:" + str(previousHigh) )
# def ClosingBar(self):
# self.Liquidate()
# self.Debug(str(self.Time))