# I cannot figure out what I am doing wrong. All I want is the Algo to buy within set parameters of 6 cents above midprice and 6 cents below midprice. 

#I created the algo below to see if I can get the program to buy when price(current) is equal to midprice and above 2day VWAP. Ideally, in an intraday action, I would like this to buy or sell anytime those parameters are met. Yet every freaking time I try to this, I blow up the algo. I have been trying for over two hours. Any guidance is greatly appreciated.

 

 

from QuantConnect.Indicators import *

class BasicTemplateAlgorithm(QCAlgorithm):
    '''Basic template algorithm simply initializes the date range and cash'''

    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(2015,9,1)  #Set Start Date
        self.SetEndDate(2018,5,15)    #Set End Date
        self.SetCash(10000)           #Set Strategy Cash
        # Find more symbols here: http://quantconnect.com/data
        self.AddEquity("SPY", Resolution.Daily)
        self.MIDPRICE('SPY',1,Resolution.Daily)
        self.VWAP('SPY',2,Resolution.Daily)
        self.SetWarmUp(20)
        self.SetBenchmark("SPY")

    def OnData(self, data):
      
        VWAP = self.VWAP.Current.Value
        Mid = self.MIDPRICE.Current.Value
      
        current = data["SPY"].Close

        
        #need to check when to go long
        if not self.Portfolio.Invested:
            if current = Mid and current > VWAP: 
                self.SetHoldings("SPY", 1)
            if current = Mid and current < VWAP: 
                self.SetHoldings("SPY", -1)
            
        if self.Portfolio.Invested:
            if self.Portfolio["SPY"].IsLong:
                if current < Mid and current < VWAP:
                    self.Liquidate("SPY")
            if self.Portfolio["SPY"].IsShort:
                if current > Mid and current > VWAP:
                    self.Liquidate("SPY")