| 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 0 Tracking Error 0 Treynor Ratio 0 Total Fees $0.00 Estimated Strategy Capacity $0 Lowest Capacity Asset Portfolio Turnover 0% |
# region imports
from AlgorithmImports import *
# endregion
import numpy as np
sec = "SPY"
class Consolidatortest(QCAlgorithm):
def Initialize(self):
self.SetStartDate(2013, 10, 7) # Set Start Date
self.SetEndDate(2013, 10, 11) # Set End Date
self.SetCash(100000) # Set Strategy Cash
self.security = self.AddEquity(sec, Resolution.Minute)
# 15 minute consolidator
self.Consolidate(self.security.Symbol, timedelta(minutes=15), self.OnDataConsolidated15)
# Manual 24x 15min SMA (not updated automatically)
self.SMA15 = SimpleMovingAverage(self.security.Symbol,24)
# RollingWindow of 15min SMA conolidated data
self.SMAWin15 = RollingWindow[IndicatorDataPoint](24)
self.SetWarmUp(timedelta(days = 1))
def OnDataConsolidated15(self, bar):
if self.IsWarmingUp: return
# manually update the SMA15 with the close price & endtime of the current bar
self.SMA15.Update(bar.EndTime, bar.Close)
# manually update the SMA15 rollingwindow with the latest SMA15 value
if self.SMA15.IsReady:
self.SMAWin15.Add(self.SMA15)
def OnData(self, data: Slice):
#check if SMA is ready, if not, exit
if not self.SMAWin15.IsReady:
return
if not self.Portfolio.Invested:
if self.SMAWin15[0] > self.SMAWin15[23]:
self.Debug(str(self.SMAWin15[23]))