| 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
### <summary>
### Basic template algorithm simply initializes the date range and cash. This is a skeleton
### framewo
class Fundamentals(QCAlgorithm):
def Initialize(self):
self.SetStartDate(2013,10, 7) #Set Start Date
self.SetEndDate(2013,10,11) #Set End Date
self.SetCash(100000) #Set Strategy Cash
self.UniverseSettings.Resolution = Resolution.Daily
self.AddUniverse(self.SelectCoarse, self.SelectFine)
def SelectCoarse(self, coarse):
sorted_coarse = sorted(coarse, key=lambda x: x.DollarVolume, reverse=True)
return [i.Symbol for i in sorted_coarse[:300]]
def SelectFine(self, fine):
# The company's headquarter must in the U.S.
# The stock must be traded on either the NYSE or NASDAQ
# The stock's market cap must be greater than 500 million
selected = [x for x in fine if x.CompanyReference.CountryId == "USA"
and x.ValuationRatios.FCFYield > 0
and x.EarningReports.BasicAverageShares.ThreeMonths * \
x.EarningReports.BasicEPS.TwelveMonths * x.ValuationRatios.PERatio > 5e8]
self.top = [i.Symbol for i in selected[:int(0.1*len(selected))]]
self.bottom = [i.Symbol for i in selected[-int(0.1*len(selected)):]]
return self.bottom+self.top