Welcome to Quantopian!
These are good questions - you're right to try to get the main jargon right at the beginning. Let me start by saying that we recently launched a new set of documentation for Quantopian which can be found here. The new docs are currently released with an "alpha" label. Soon, we will be promoting it to the official documentation and it will be the only version you can find in the top nav bar.
Now, for your specific questions:
1) Yes, most of the time, when we say "research", we mean the Jupyter notebook environment that we call Research. Sometimes, we will use the term "research" to refer to the process of actually researching an idea. Usually, if we mean the research environment, we'll say something like "do this in research" or "... research environment".
2) Yes, IDE is what we use to refer to the development environment where you can write an Algorithm and backtest it. We also consider the page where you can see the list of all your algorithms part of the IDE. Basically, anything behind the /algorithms
URL.
3) Everything in the quantopian.research
module is only usable in the research environment (Jupyter notebook environment on Q). There are a few methods within the quantopian.research
module that allow you to query data (like get_pricing
), but these are mostly useful for pulling in data for the sake of creating a plot or doing some form of quick analysis. Pipeline is a newer API (~4 years old now, but still newer!) and is now what we consider to be the core API of Quantopian. At a high level, Pipeline is an API that is designed to help you express cross-sectional computations (across assets) over large amounts of data. All data that we build into the platform is done in Pipeline, so my recommendation would be to focus on learning the Pipeline API ahead of the quantopian.research
API. The best resources to do that are the new documentation (Pipeline User Guide & Pipeline API Reference) and the Pipeline Tutorial. Pipeline is available in Research and the IDE, meaning you can iterate on ideas with a Pipeline in a Jupyter notebook, and then load it into an Algorithm later. You can see all the data available in Pipeline in the Data Reference.
4) from quantopian.research import prices
is just a different interface to the same data as get_pricing
.
5) Research is actually the best place to iterate on pipelines, so it's here to stay! We actually suggest that people spend most of their time in research and only move to the IDE once they have an idea they'd like to run through a full backtest. I'd highly recommend checking out the Getting Started Tutorial to get a sense for the typical workflow (which begins in Research and later moves to the IDE).
6) The "magically" available functions are something that we used to do to make it easier for new folks to get started with less code. However, over the years, we have changed our opinion and have come to the realization that magically available functions are probably more confusing than they are helpful. Technically, these functions are being imported for you behind the scenes, but we've been trying to move toward more examples that explicitly import everything that's used (even if it's already imported for you), to try to make it more obvious where everything comes from.
7) Pipeline is the only way to access fundamental data. You're correct that Pipeline delivers data in a walk forward matter. The idea is that whenever you run a pipeline, it delivers data with the knowledge it had of the world on each simulation date. We believe that delivering data in a "point-in-time" fashion like this is crucial to avoiding lookahead bias when researching ideas. That said, based on your earlier questions it sounds like you may not have used Pipeline in research yet. When you run a pipeline in research, you can choose to run it for a date range and work with the entire output at once, which may be what you're looking for. Check out the resources I linked in earlier answers and let me know if working with Pipeline in Research gets you what you're looking for.
8) The Data Reference is your best bet for finding out these sorts of details on any data available on Q. Note that we update data as soon as we get it from our vendors. For many data fields, there's a pretty strict update schedule (e.g. daily pricing), but for others like Earnings, it can depend on when the company reports their earnings as well as when our vendor provides us the data.
Let me know if you find these answers helpful, these are great questions and they highlight the fact that we need to better organize our learning resources to make some of these answers easier to find. We're hoping that the new documentation helps a lot with the learning curve, so if you have any feedback on it (good or bad), we'd love to hear it.
Thanks!