Quantopian's community platform is shutting down. Please read this post for more information and download your code.
Back to Community
How to access fetched data using `context` and `data` inside `handle_data` ?

Hi everyone,

I can't find detailed instruction on how to understand the use of context and data in handle_data to access fetched data.

I have some specific questions related to the following example below:

def initialize(context):  
    # a signal Fetcher  
    fetch_csv('http://priceoftea.com/', symbol='tea')  
    # a security info Fetcher  
    fetch_csv('http://insiderselling.com')

why does not use the following code here?
context.stock = symbol('XYZ')

def handle_data(context, data):  
    # guard against being called before the first trade of a security  
    if symbol('XYZ') in data:  
        # guard against trades happening before the first insider selling event  
        if 'insider' in data[symbol('XYZ')]:  
            if data[symbol('XYZ')]['insider'] > 10.0:  
                order(symbol('XYZ'), -100)

    # signal data will pass a blank place holder if the first event has not been sent yet.  
    # So, you can just guard against missing properties  
    if 'price' in data['tea']:  
        record(price_of_tea=data['tea']['price'])

does symbol('XYZ') data come from site 'http://insiderselling.com'?

how context and data differentiate from each other?
what are the jobs of context and data?
how do they complete their jobs differently?
also, data can not be used to calculate custom indicator, we have to use context.stock, is it right?

1 response

Hi Kenny,

Take a look at these tutorial videos to get a sense of how context and data work. As well, take a look at this one for an example algorithm that uses Fetcher.

These should help you get a sense of how the symbol() method works as well as what's in data and context.

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.