#
# QuantConnect Basic Template:
# Fundamentals to using a QuantConnect algorithm.
#
# You can view the QCAlgorithm base class on Github:
# https://github.com/QuantConnect/Lean/tree/master/Algorithm
#
import math
import numpy as np
import pandas as pd
import statistics
from datetime import datetime, timedelta
class BasicTemplateAlgorithm(QCAlgorithm):
def Initialize(self):
# Set the cash we'd like to use for our backtest
# This is ignored in live trading
self.SetCash(10000)
# Start and end dates for the backtest.
# These are ignored in live trading.
self.SetStartDate(2017,1,1)
self.SetEndDate(2017,1,30)
# Add assets you'd like to see
self.spy = self.AddEquity("SPY", Resolution.Daily).Symbol
self.sso = self.AddEquity("SSO", Resolution.Daily).Symbol
self.vix = self.AddSecurity(SecurityType.Option, "VIX", Resolution.Daily)
# Define the Schedules
self.Schedule.On(self.DateRules.EveryDay("SPY"), self.TimeRules.AfterMarketOpen(self.spy, -45),
Action(self.EveryDayBeforeMarketOpen))
self.Schedule.On(self.DateRules.EveryDay("SPY"), self.TimeRules.AfterMarketOpen(self.spy, 90),
Action(self.Balance))
def OnData(self, slice):
# Simple buy and hold template
if not self.Portfolio.Invested:
#self.SetHoldings(self.spy, 1)
#self.Debug("numpy test >>> print numpy.pi: " + str(np.pi))
#self.Log("Hello World!")
self.Log("SSO Close:%s" %self.Securities['SSO'].Close)
#self.Log("VIX Close:%s" %self.Securities['VIX'].Close)
def EveryDayBeforeMarketOpen(self):
self.Log("EveryDayBeforeMarketOpen")
def Balance(self):
self.Log("Balance")