Quantopian's community platform is shutting down. Please read this post for more information and download your code.
Back to Community
NameError: name 'query' is not defined

Hi Everyone,

I'm new to algo trading and I met with some problem when I wanted to use query() to run the programming.

This is error message:

NameError Traceback (most recent call last)
in ()
----> 1 my_query = query(Fundamentals.market_cap)

NameError: name 'query' is not defined

Thanks for your assistance!

Best regards,

Evan

4 responses

There is no python or built-in method called. query. That is what's causing the error. Fundamentals.market_cap is BoundColumn and is used to define a pipeline. There is information on how to set up and use pipelines in the documentation (https://www.quantopian.com/docs/user-guide/tools/pipeline).

What is it that you are trying to do? Perhaps attach a notebook or algo to your reply.

Disclaimer

The material on this website is provided for informational purposes only and does not constitute an offer to sell, a solicitation to buy, or a recommendation or endorsement for any security or strategy, nor does it constitute an offer to provide investment advisory services by Quantopian. In addition, the material offers no opinion with respect to the suitability of any security or specific investment. No information contained herein should be regarded as a suggestion to engage in or refrain from any investment-related course of action as none of Quantopian nor any of its affiliates is undertaking to provide investment advice, act as an adviser to any plan or entity subject to the Employee Retirement Income Security Act of 1974, as amended, individual retirement account or individual retirement annuity, or give advice in a fiduciary capacity with respect to the materials presented herein. If you are an individual retirement or other investor, contact your financial advisor or other fiduciary unrelated to Quantopian about whether any given investment idea, strategy, product or service described herein may be appropriate for your circumstances. All investments involve risk, including loss of principal. Quantopian makes no guarantees as to the accuracy or completeness of the views expressed in the website. The views are subject to change, and may have become unreliable for various reasons, including changes in market conditions or economic circumstances.

I want to grab the market_cap information of stock. Below is my code, thank you so much!

Market Cap

my_query = query(fundamentals.valuation.market_cap)

my_funds = get_fundamentals(my_query,'2017-01-01')

my_funds.info()

Basically just returns the market cap of everything

for 2017-01-01

my_funds.head()


The get_fundamentals and associated query method have been deprecated. The current approach to fetch data is to use 'pipeline'. So, to get the market cap one would do something like this

# Imports for pipeline  
from quantopian.pipeline import Pipeline  
from quantopian.research import run_pipeline

# Import any required datasets  
from quantopian.pipeline.data.morningstar import Fundamentals

# Import any required built in filters and factors  
from quantopian.pipeline.filters import StaticAssets, QTradableStocksUS

# Function to create a pipeline definition  
def make_pipeline():  
    # create a filter for the universe of stocks one wants to look at  
    universe = QTradableStocksUS()  

    # Define factors or data we want  
    market_cap = Fundamentals.market_cap.latest

    return Pipeline(columns={ "market_cap": market_cap}, screen = universe) 

# Run the pipeline over desired days  
result = run_pipeline(make_pipeline(), '2017-01-01', '2017-02-01')  
# Display first few rows of the results  
result.head(15)

Attached is a notebook showing how to do this. The approach would be similar in an algo but the dataframe returned by pipeline would be a single index for the current day (not a multi index containing multiple days).

Got it! Thank you so much.

I wish you all the best in the future, you're so kind:)