Quantopian's community platform is shutting down. Please read this post for more information and download your code.
Back to Community
Inconsistent price and stock split

I am new here and have two simple questions:

  1. It seems the current is different from buying price. For example, my code starts on 08/20/2004 and I asked to all in goog in the very first day. The printed price is 108.32, but the price at transaction is $109.52. So I will have negative cash balance after the transaction

  2. Last month google split its stock, So I see a reduction by factor of two in my portfolio value. How can I handle events like this?

Thanks a lot

Below is the simple code

def initialize(context):
context.goog = sid(26578)
context.max_notional = 1000000.1
context.min_notional = -1000000.0

def handle_data(context, data):
test = context.goog
cash = context.portfolio.cash
price = data[test].price
if context.portfolio.cash > price:
print context.portfolio.cash
print price
print cash/price
order(test, cash/price)

2 responses

Hi Cai,

Welcome to Quantopian! Let me explain how orders get submitted and filled in the backtester.

In general, orders get submitted in one bar and are filled in the next consecutive bar according to the slippage model. By default, your order can account for up to 25% of the bar's trade volume to mimic real-world conditions. Because of this, your order may actually get filled across several bars. When you print the price in the backtest logs, this is the naked price of purchasing the security. When you run a full backtest, the transaction details show the cost basis which is the security price + commission costs. You can also choose to modify the default commission model to one that is more appropriate for your algo.

I would suggest to use more robust ordering methods, such as order_target_percent or order_target. These will scale with your portfolio as it grows. For example, you can use the following to invest your entire portfolio (100%) in Google.

order_target_percent(context.goog, 1)  

As for your second question, we're working to get the charts fixed after the recent Google corporate action. Our data is adjusted for splits and mergers, and we're working to update the backtest charts for Google!

Best,
Alisa

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.

Thanks Alisa for the very clear answer!

Best