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
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
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(2018,1,1)  #Set Start Date
        self.SetEndDate(2018,1,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 = self.MIDPRICE('SPY',1,Resolution.Daily)
        self.vwap = self.VWAP('SPY',2,Resolution.Daily)
        self.SetWarmUp(20)
        self.SetBenchmark("SPY")

    def OnData(self, data):
        if self.IsWarmingUp: return
      
        VWAP = self.midprice.Current.Value
        Mid = self.vwap.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")