| 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 |
import numpy as np
from pprint import pprint
import pandas as pd
from datetime import timedelta
### <summary>
### Basic template algorithm simply initializes the date range and cash. This is a skeleton
### framework you can use for designing an algorithm.
### </summary>
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(2016,10,01) #Set Start Date
self.SetEndDate(2016,11,16) #Set End Date
self.SetCash(25000) #Set Strategy Cash
# Find more symbols here: http://quantconnect.com/data
# self.AddUniverse(self.CoarseSelectionFunction)
self.AddEquity("GOOG", Resolution.Daily)
option = self.AddOption("GOOG", Resolution.Daily)
option.SetFilter(-10, +10, timedelta(0), timedelta(180))
# option.SetFilter(-2, 2, TimeSpan.FromDays(30), TimeSpan.FromDays(180));
# self.Schedule.On(self.DateRules.Every([DayOfWeek.Thursday]), self.TimeRules.BeforeMarketClose("SPY", 45), Action(self.MakeTrades))
def CoarseSelectionFunction(self, coarse):
'''Take the top 5 by dollar volume using coarse'''
# sort descending by daily dollar volume
sortedByDollarVolume = sorted(coarse, \
key=lambda x: x.DollarVolume, reverse=True)
# add Options
# for x in sortedByDollarVolume[:5]:
# self.AddOption(x.Symbol.Value, Resolution.Daily)
# we need to return only the symbol objects
return [ x.Symbol for x in sortedByDollarVolume[:5] ]
def GetOptionTrades(self, data):
'''figure out which trades to make, and trade size as well'''
trades_to_make = []
return trades_to_make
def MakeTrades(self, data):
'''Make Options Trades'''
option_trades = self.GetOptionTrades(data)
def OnData(self,slice):
self.Log("ondata")
for i in slice.OptionChains:
optionchain = i.Value
self.Log("underlying price:" + str(optionchain.Underlying.Price))
df = pd.DataFrame([[x.Right,float(x.Strike),x.Expiry,float(x.BidPrice),float(x.AskPrice)] for x in optionchain],
index=[x.Symbol.Value for x in optionchain],
columns=['type(call 0, put 1)', 'strike', 'expiry', 'ask price', 'bid price'])
self.Log(str(df))