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
3.901
Tracking Error
0.126
Treynor Ratio
0
Total Fees
$0.00
from clr import AddReference
AddReference("System")
AddReference("QuantConnect.Algorithm")
AddReference("QuantConnect.Common")

from System import *
from QuantConnect import *
from QuantConnect.Algorithm import *
from QuantConnect.Data.Consolidators import *
from datetime import timedelta


class VerticalParticleEngine(QCAlgorithm):

    def Initialize(self):
        self.SetStartDate(2020, 7, 20)  # Set Start Date
        self.SetCash(100000)  # Set Strategy Cash
        # self.AddEquity("SPY", Resolution.Minute)

        #self.cryptoSymbol = self.AddCrypto("BTCUSD", Resolution.Hour, Market.GDAX).Symbol
        
        self.security = self.AddEquity("SPY", Resolution.Hour, Market.USA).Symbol
        
        
        HourlyConsolidator = TradeBarConsolidator(timedelta(hours=24))
        HourlyConsolidator.DataConsolidated += self.HourlyConsolidator
        #self.SubscriptionManager.AddConsolidator(self.cryptoSymbol, HourlyConsolidator)
        
        self.SubscriptionManager.AddConsolidator(self.security, HourlyConsolidator)
        
        
        self.window = RollingWindow[TradeBar](2)
        self.daily = RollingWindow[TradeBar](2)
        
    def HourlyConsolidator(self, sender, bar):
        self.daily.Add(bar)
        self.bar = bar
    
    
    def OnData(self, data):
        '''OnData event is the primary entry point for your algorithm. Each new data point will be pumped in here.
            Arguments:
                data: Slice object keyed by symbol containing the stock data
        '''

        self.window.Add(data["SPY"])
        if not (self.window.IsReady and self.daily.IsReady): return
    
        currBar = self.window[0].Close
        
        
        
        yesterdayc = self.daily[1].Close
        
        current_close_price = self.window[0].Close
        
        b_cond_upper = self.daily[1].High
        b_cond_low = self.daily[1].Low
        prev_close = self.daily[1].Close
        prev_open = self.daily[1].Open
        
        self.Debug("current close price: {} , upper boundary: {} , lower boundary: {}, previous close price: {}, previous open price: {} ".\
        format(current_close_price, b_cond_upper, b_cond_low, prev_close, prev_open ))
        
        
        #self.Debug("current Bar: {} previous Bar: {}".format(currBar,yesterdayc))
        # if not self.Portfolio.Invested:
        #    self.SetHoldings("SPY", 1)