Quantopian's community platform is shutting down. Please read this post for more information and download your code.
Back to Community
How to set a list of securities as the list of most liquid stocks?

Right now I have

    context.security = [sid(24),sid(42950),sid(28016),sid(39840),sid(45815),sid(5061),sid(5121),sid(19725)]  

But if I wanted to replace this with
context.security=QTradableStocksUS it doesn't work. Im sure i'm missing something? Simply trying to get a list of most liquid 150 stocks (for example) and do an analysis on them.

2 responses

Hey,

You can use the AverageDollarVolume builtin factor

This can also help you in IDE

# Quick ADV_10 Equally Weighted Order Optimal Portfolio

from quantopian.pipeline import Pipeline, factors, filters, classifiers  
from quantopian.algorithm import attach_pipeline, pipeline_output  
import quantopian.optimize as opt  
# ----------------------------------------------------------------  
STK_SET, SIZE, ADV, LEV = filters.QTradableStocksUS(), 10, 126, 1.0  
# ----------------------------------------------------------------  
def initialize(context):  
    schedule_function(trade, date_rules.week_end(), time_rules.market_open())  
    adv_top = factors.AverageDollarVolume(window_length = ADV, mask = STK_SET).rank().top(SIZE)  
    attach_pipeline(Pipeline(screen = adv_top), 'my_pipe')

def trade(context, data):  
    stocks = pipeline_output('my_pipe').assign(wt = LEV/len(pipeline_output('my_pipe').index))  
    order_optimal_portfolio(objective = opt.TargetWeights(stocks.wt),constraints=[opt.MaxGrossExposure(LEV)])    

    record(leverage = context.account.leverage, num_positions = len(context.portfolio.positions))  
    print stocks