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.Data.UniverseSelection import * import pandas as pd class BasicTemplateAlgorithm(QCAlgorithm): def Initialize(context): # Set the initial cash, start, and end dates for backtesting context.SetCash(100000) context.SetStartDate(2016,5,1) context.SetEndDate(2016,5,10) # Subscribe to data for securities returned in my universe context.UniverseSettings.Resolution = Resolution.Daily context.UniverseSettings.MinimumTimeInUniverse = 0 context.AddUniverse(context.universe_filter_course) def universe_filter_course(context, coarse_data): # First convert the 'course' data to a pandas dataframe. # Use coerce parameter = True to convert data objects to numbers symbols = [stock.Symbol for stock in coarse_data ] data = [( stock.DollarVolume, stock.Price, stock.HasFundamentalData) for stock in coarse_data] column_names = ['dollar_volume', 'price', 'has_fundamentals'] data_df = pd.DataFrame.from_records( data, index=symbols, columns=column_names, coerce_float=True) # Use pandas methods to select the assets we want # First find the values of dollar_volume at our desired bounds lower_percent = data_df.dollar_volume.quantile(.85) upper_percent = data_df.dollar_volume.quantile(1.0) # Now simply query using those values # Filter for has_fundamentals to remove ETFs my_universe = (data_df. query('has_fundamentals & (dollar_volume >= @lower_percent) & (dollar_volume <= @upper_percent)')) # See how many securities are found in our universe context.Log("{} securities found ". format(my_universe.shape[0])) context.Log("top 3 securities: {}". format(my_universe.nlargest(3, 'dollar_volume').dollar_volume)) context.Log("bottom 3 securities: {}". format(my_universe.nsmallest(3, 'dollar_volume').dollar_volume)) # Expects a list of symbols returned return my_universe.index.tolist() def OnData(context, data): pass