Quantopian's community platform is shutting down. Please read this post for more information and download your code.
Back to Community
Swallowing the Python - a backwards approach to learning the language

I'm an investment guy, not a programmer, though I know VB well for a non-programmer. I want to learn Python for Quantopian. I'm thinking of trying to learn Python by looking at Quantopian algorithms and figuring them out. What do people think of this approach. And what would be good algorithms to start with? Thank you.

4 responses

Hello Rex,

That'll work, with some supplementary material from the web and perhaps an introductory book/e-book.

I've attached a simple algorithm to get you started.

Grant

Rex, welcome to Quantopian!
Several community members have been discussing a new sample algorithm here: https://www.quantopian.com/posts/new-sample-algorithm
The proposal was to greatly streamline the sample so you can see more clearly how the system calls on your algorithm. I think you should start by cloning the new example, and making changes and running short backtests. Play around with just a single stock to start. Learn the simple facilities until you know how to:

  • log info to the console
  • record and plot a value
  • order a stock
  • check your portfolio positions
  • check open orders
  • get the current time in the simulation
  • build control flow with if/elif/else statements

Essentially all the mechanics that you need to make and test an algo.
Once you feel comfortable with one stock, the next logical step is multiple securities:

  • use several hand picked stocks
  • add control flow to loop over all the stocks using for/in
  • use set_universe to sample a cross section of stocks
  • add a for loop over all stocks
  • order several stocks and then loop over all the positions in your portfolio

Once you are comfortable with multiple securities you can start implementing strategies of your own, or you can start reading the code of shared algos on the forums. Be sure to check out the source code for the top shared algos on the right hand side of our forums.

Please feel free to keep asking questions, we are here to help.

Have fun,
fawce

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'm taking you up on your offer to keep asking questions. I'm studying a few algos including Grant's post. My initial questions relate to defaults. For example, I see a benchmark when I do a back-test. How is the benchmark specified? How is portfolio.cash intialized? I'm guessing there are default values and properties in context. How do I find these? I've looked in the help and don't see it. Thanks.

Hello Rex,

There are several discussions regarding the benchmark (SPY):

https://www.quantopian.com/posts/question-regarding-the-benchmark https://www.quantopian.com/posts/benchmark

Cash is initialized in the GUI (right-hand pane, opposite the code editor, near the top of the pane). The default is $1,000,000.

There are other defaults that can be changed, such as the slippage and commissions model settings (see the help page).

[EDIT] It would be nice to be able to print all of the defaults out to the log, e.g. print algo_settings.

Hope this helps.

Grant